1 package ID3FS::AudioFile::Flac;
5 use Audio::FLAC::Header;
10 my $class=ref($proto) || $proto;
15 my $flac=Audio::FLAC::Header->new($self->{path});
16 $self->{tags}=$flac->tags();
22 my ($self, $tag, $complain)=@_;
23 for my $key (keys %{$self->{tags}})
26 defined($self->{tags}->{$key}) &&
27 length($self->{tags}->{$key}) &&
28 $self->{tags}->{$key} =~ /\S+/)
30 return $self->{tags}->{$key};
33 warn("$self->{path}: no $tag defined in FLAC comments\n") if($complain);
37 sub artist { shift->get("ARTIST", 1); }
38 sub album { shift->get("ALBUM", 1); }
39 sub audiotype { return "flac"; }
40 sub haspic { return undef; } # FIXME
41 sub v1genre { return undef; } # ID3 only
42 # We don't care if year is not set
43 sub year { shift->get("DATE", 0); }
50 for my $key (keys %{$self->{tags}})
52 if($key =~ /genre/i &&
53 defined($self->{tags}->{$key}) &&
54 length($self->{tags}->{$key}) &&
55 $self->{tags}->{$key} =~ /\S+/)
57 push(@tags, $self->{tags}->{$key});