my $self={};
bless($self,$class);
- my $path=shift;
- my $ext=($path=~/.*\.(.*)/)[0];
+ $self->{path}=shift;
+ my $ext=($self->{path}=~/.*\.(.*)/)[0];
return undef unless($ext);
my $me=shift;
$ext=lc($ext);
if($ext eq "mp3")
{
- $self->{audiofile}=ID3FS::AudioFile::Mp3->new($path);
+ $self->{audiofile}=ID3FS::AudioFile::Mp3->new($self->{path});
}
elsif($ext eq "ogg")
{
- $self->{audiofile}=ID3FS::AudioFile::Ogg->new($path);
+ $self->{audiofile}=ID3FS::AudioFile::Ogg->new($self->{path});
}
elsif($ext eq "flac")
{
- $self->{audiofile}=ID3FS::AudioFile::Flac->new($path);
+ $self->{audiofile}=ID3FS::AudioFile::Flac->new($self->{path});
}
else
{
- print("$me: $path: Unknown extension: $ext\n");
+ print("$me: $self->{path}: Unknown extension: $ext\n");
return undef;
}
return $self;
sub track { return(shift->set("track", @_)); }
sub tracknum { return(shift->set("tracknum", @_)); }
sub v1genre { return(shift->set("v1genre", @_)); }
+sub genre { return(shift->set("genre", @_)); }
sub comment { return(shift->set("comment", @_)); }
sub audiotype { return(shift->set("audiotype")); }
sub haspic { return(shift->set("haspic")); }
+sub path { return(shift->{path}); }
sub delete_artist { shift->{audiofile}->delete_artist(); }
sub delete_album { shift->{audiofile}->delete_album(); }
sub delete_comment { shift->{audiofile}->delete_comment(); }
sub delete_all { shift->{audiofile}->delete_all(); }
sub delete_genre { shift->{audiofile}->delete_genre(); }
-sub delete_tags { shift->{audiofile}->delete_tags(); }
+sub delete_tags { shift->{audiofile}->delete_tags(@_); }
+sub channels { shift->{audiofile}->channels(); }
+sub bitrate { shift->{audiofile}->bitrate(); }
+sub samplerate { shift->{audiofile}->samplerate(@_); }
sub year
{
return $year;
}
-
sub add_tags
{
my($self, $tags)=@_;
- die("FIXME: implement add_tags()\n");
+ my @tags=split(/\s*,\s*/, $tags);
+ $self->{audiofile}->add_tags(@tags);
}
sub tags
return @outtags;
}
+sub write
+{
+ shift->{audiofile}->write();
+}
+
sub sanitise
{
my ($self, $text)=@_;