From d24766675db5faddb67810ca67b37491d49c2313 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 18 Oct 2004 08:08:21 +0000 Subject: present table to the user, easily converted to binary form once we settle on a format git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5303 a1c6a512-1295-4272-9138-f99709370657 --- tools/songdb.pl | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/tools/songdb.pl b/tools/songdb.pl index 64bce440b5..73c8e94c09 100755 --- a/tools/songdb.pl +++ b/tools/songdb.pl @@ -9,6 +9,11 @@ use MP3::Info; my $dir = $ARGV[0]; +my %entries; +my %genres; +my %albums; +my %years; + if(! -d $dir) { print "given argument is not a directory!\n"; exit; @@ -58,7 +63,6 @@ sub singlefile { # for(keys %$hash) { # print "Info: $_ ".$hash->{$_}."\n"; # } - return $hash; # a hash reference } @@ -77,17 +81,67 @@ sub dodir { my $id3 = singlefile("$dir/$f"); - printf "Artist: %s\n", $id3->{'ARTIST'}; + # ARTIST + # COMMENT + # ALBUM + # TITLE + # GENRE + # TRACKNUM + # YEAR + + #printf "Artist: %s\n", $id3->{'ARTIST'}; + $entries{"$dir/$f"}= $id3; + + $artists{$id3->{'ARTIST'}}++ if($id3->{'ARTIST'}); + $genres{$id3->{'GENRE'}}++ if($id3->{'GENRE'}); + $years{$id3->{'YEAR'}}++ if($id3->{'YEAR'}); + + # prepend Artist name to handle duplicate album names from other + # artists + $albums{$id3->{'ARTIST'}."___".$id3->{'ALBUM'}}++ if($id3->{'ALBUM'}); + } # extractdirs filters out only subdirectories from all given entries my @d = extractdirs($dir, @a); for $d (sort @d) { - print "Subdir: $d\n"; + #print "Subdir: $d\n"; dodir("$dir/$d"); } } dodir($dir); + +print "File name table\n"; +for(sort keys %entries) { + printf(" %s\n", $_); +} + +print "\nSong title table\n"; +#for(sort {$entries{$a}->{'TITLE'} cmp $entries{$b}->{'TITLE'}} %entries) { +for(sort {$entries{$a}->{'TITLE'} cmp $entries{$b}->{'TITLE'}} keys %entries) { + printf(" %s\n", $entries{$_}->{'TITLE'} ); +} + +print "\nArtist table\n"; +for(sort keys %artists) { + printf(" %s\n", $_); +} + +print "\nGenre table\n"; +for(sort keys %genres) { + printf(" %s\n", $_); +} + +print "\nYear table\n"; +for(sort keys %years) { + printf(" %s\n", $_); +} + +print "\nAlbum table\n"; +for(sort keys %albums) { + my @moo=split(/___/, $_); + printf(" %s\n", $moo[1]); +} -- cgit v1.2.3