Index: trunk/MusicBrainz.pm
===================================================================
--- trunk/MusicBrainz.pm	(revision 4)
+++ trunk/MusicBrainz.pm	(revision 5)
@@ -53,7 +53,10 @@
     # TODO: get release date
 
+    # select the proper medium (important for multidisc releases)
+    my ($medium) = $xpath->findnodes("medium-list/medium[disc-list/disc/\@id='$discid']", $release);
+
     my $ua = LWP::UserAgent->new;
     my $tracknum = 1;
-    for my $track_node ($xpath->findnodes('.//track-list/track', $release)) {
+    for my $track_node ($xpath->findnodes('track-list/track', $medium)) {
         my $prefix = sprintf('TRACK%02d', $tracknum);
         #$info{"$prefix.MB_TRACKID"} = $xpath->findvalue('@id', $track_node);
Index: trunk/flactrack
===================================================================
--- trunk/flactrack	(revision 4)
+++ trunk/flactrack	(revision 5)
@@ -11,4 +11,6 @@
 use File::Path;
 use Audio::FLAC::Header;
+#TODO: put the MusicBrainz lib in a more common location
+use lib qw{/home/peter/projects/flacrip};
 use MusicBrainz;
 
@@ -43,4 +45,5 @@
 if ($ALL) {
     die "Use of --all requires a --directory\n" unless $DIRECTORY;
+    die "No track info found on MusicBrainz for $FLAC_FILE\n" unless $info;
     use YAML;
     my $cuesheet = $flac->cuesheet;
@@ -51,9 +54,14 @@
         $_ => catfile($DIRECTORY, sprintf('%02d.%s', $_, to_filename($info->{TRACKS}[$_]{TITLE})))
     } (1 .. $count);
-    print Dump(\%TRACKS);
+    #print Dump(\%TRACKS);
+    for my $tracknum (sort { $a <=> $b } keys %TRACKS) {
+        printf "%2d: %s\n", $tracknum, $TRACKS{$tracknum};
+    }
     mkpath($DIRECTORY);
 }
 
-while (my ($tracknum, $title) = each %TRACKS) {
+#TODO: all the option of sorting by tracknum or not
+#while (my ($tracknum, $title) = each %TRACKS) {
+for my $tracknum (sort { $a <=> $b } keys %TRACKS) {
     if ($tracknum !~ /^\d+$/) {
 	warn "Don't know what to do with track number '$tracknum'";
@@ -68,5 +76,5 @@
     }
 
-    $title = quotemeta($title);
+    my $title = quotemeta($TRACKS{$tracknum});
     if ($TYPE eq 'mp3') {
         # bitrate of 192
@@ -89,4 +97,5 @@
     #die $cmd;
     system $cmd;
+    die "\nFLAC decoding canceled\n" if ($? & 127);
 
     print "\n" if $SOX_FILTER;
Index: trunk/mbz
===================================================================
--- trunk/mbz	(revision 4)
+++ trunk/mbz	(revision 5)
@@ -41,5 +41,5 @@
 } else {
     for my $key (sort keys %{ $info }) {
-        print "$key=$$info{$key}\n";
+        print "$key=$$info{$key}\n" unless ref $info->{$key};
     }
 }
Index: trunk/use-cases
===================================================================
--- trunk/use-cases	(revision 4)
+++ trunk/use-cases	(revision 5)
@@ -19,2 +19,6 @@
 
 re-encode a mix as an archived flac for quick burning later
+
+submit a CD TOC to MusicBrainz
+    => submiturl
+    => metaflac --extract-cuesheet-to - | cuesheet2tocdata
