package Audio::SuperTag::Plugin;

use base qw/Exporter/;
use strict;

sub new {
  my $file = shift;
  return bless {} => __PACKAGE__;
}

sub file {
  my $self = shift;
  return $self->unimplemented();
}

sub filetype {
  my $self = shift;
  return $self->unimplemented();
}

sub get_tags {
  my $self = shift;
  return $self->unimplemented();
}

sub set_tags {
  my $self = shift;
  my $tags = shift;
  return $self->unimplemented();
}

sub get_audio_info {
  my $self = shift;
  return $self->unimplemented();
}

sub get_codec_info {
  my $self = shift;
  return $self->unimplemented();
}

sub unimplemented {
  my $self = shift;
  my $class = ref $self;
  my $caller = [ caller 1 ];
  my $subname = (split /::/, $caller->[3])[-1];

  die "plugin error: $class does not define $subname()";
}

1;