+sub flacinfo{
+ my $file=$_[0];
+ my $flac=Audio::FLAC::Header->new($file);
+
+ freeze +{
+ format => 'FLAC',
+ title => $flac->tags('TITLE') // '?',
+ artist => $flac->tags('ARTIST') // '?',
+ year => $flac->tags('DATE') // '?',
+ album => $flac->tags('ALBUM') // '?',
+ tracknumber => $flac->tags('TRACKNUMBER') // '?',
+ tracktotal => $flac->tags('TRACKTOTAL') // '?',
+ genre => $flac->tags('GENRE') // '?',
+ file => scalar fileparse $file,
+ }
+}
+
+sub mp3info{
+ my $file=$_[0];
+ my %tag = map { encode 'UTF-8', $_ } %{get_mp3tag $file};
+ my @trkn = split '/', $tag{TRACKNUM} // '';
+
+ freeze +{
+ format => 'MP3',
+ title => $tag{TITLE} || '?',
+ artist => $tag{ARTIST} || '?',
+ year => $tag{YEAR} || '?',
+ album => $tag{ALBUM} || '?',
+ tracknumber => $trkn[0] || '?',
+ tracktotal => $trkn[1] || '?',
+ genre => $tag{GENRE} || '?',
+ file => scalar fileparse $file,
+ }
+}