-package ID3FS::File::Flac;
+package ID3FS::AudioFile::Flac;
use strict;
use warnings;
sub get
{
- my ($self, $tag, $complain)=@_;
+ my ($self, $tag)=@_;
for my $key (keys %{$self->{tags}})
{
if($key =~ /$tag/i &&
length($self->{tags}->{$key}) &&
$self->{tags}->{$key} =~ /\S+/)
{
- my $val=$self->{tags}->{$key};
- $val =~ s/\//-/g; # drop slashes
- return $val;
+ return $self->{tags}->{$key};
}
}
- warn("$self->{path}: no $tag defined in FLAC comments\n") if($complain);
return undef;
}
-sub artist { shift->get("ARTIST", 1); }
-sub album { shift->get("ALBUM", 1); }
-sub audiotype { return "flac"; }
-sub haspic { return undef; } # FIXME
-sub v1genre { return undef; } # ID3 only
-
-# We don't care if year is not set
-sub year
-{
- my ($self)=@_;
- my $date=shift->get("DATE", 0);
- return undef unless($date);
- if($date =~/(\d\d\d\d)/)
- {
- $date=$1;
- }
- return $date;
-}
+sub artist { shift->get("ARTIST"); }
+sub album { shift->get("ALBUM"); }
+sub audiotype { return "flac"; }
+sub haspic { return undef; } # FIXME
+sub v1genre { return undef; } # ID3 only
+sub year { shift->get("DATE"); }
sub tags
{
push(@tags, $self->{tags}->{$key});
}
}
- # combine then split on commas
- # so multiple comma-delimited tags will work
- @tags=split(/\s*,\s*/, join(', ', @tags));
- for my $tag (@tags)
- {
- if($tag=~/([^\/]+)\/(.*)/)
- {
- my $tagname=$1;
- my $tagval=$2;
- $tagval=~s/\//-/g;
- $self->{tags}->{$tagname}=$tagval;
- }
- else
- {
- $self->{tags}->{$tag}=undef;
- }
- }
- return $self->{tags};
+ return(@tags);
}
1;