X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2FID3FS%2FAudioFile%2FFlac.pm;h=72b2dbd4c55764a57eec1792540d9bdf70926a7b;hb=e8f49e1011e1360f104ff998ccd2e2f61c946cc8;hp=308b8a0cc8be559a6da123e916a746a1ce607661;hpb=5ba51e7f6ceaab64abedce8f7c954aaa529d274d;p=id3fs.git diff --git a/lib/ID3FS/AudioFile/Flac.pm b/lib/ID3FS/AudioFile/Flac.pm index 308b8a0..72b2dbd 100644 --- a/lib/ID3FS/AudioFile/Flac.pm +++ b/lib/ID3FS/AudioFile/Flac.pm @@ -1,3 +1,19 @@ +# id3fs - a FUSE-based filesystem for browsing audio metadata +# Copyright (C) 2010 Ian Beckwith +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + package ID3FS::AudioFile::Flac; use strict; @@ -19,7 +35,7 @@ sub new sub get { - my ($self, $tag, $complain)=@_; + my ($self, $tag)=@_; for my $key (keys %{$self->{tags}}) { if($key =~ /$tag/i && @@ -27,33 +43,18 @@ sub get 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 { @@ -70,25 +71,7 @@ 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; - $tags->{$tagname}=$tagval; - } - else - { - $tags->{$tag}=undef; - } - } - return $tags; + return(@tags); } 1; -