diff options
Diffstat (limited to 'tools/songdb.pl')
-rwxr-xr-x | tools/songdb.pl | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/tools/songdb.pl b/tools/songdb.pl index 88089972d4..fb0118d7e4 100755 --- a/tools/songdb.pl +++ b/tools/songdb.pl | |||
@@ -338,10 +338,22 @@ if($db) { | |||
338 | my $str = $t."\x00" x ($maxalbumlen - length($t)); | 338 | my $str = $t."\x00" x ($maxalbumlen - length($t)); |
339 | print DB $str; | 339 | print DB $str; |
340 | 340 | ||
341 | my $a = $artistcount{$moo[0]} * $artistentrysize; | 341 | my $aoffset = $artistcount{$moo[0]} * $artistentrysize; |
342 | dumpint($a + $artistindex); # pointer to artist of this album | 342 | dumpint($aoffset + $artistindex); # pointer to artist of this album |
343 | |||
344 | my @songlist = keys %{$album2songs{$albumid}}; | ||
345 | my $id3 = $album2songs{$albumid}{$songlist[0]}; | ||
346 | if (defined $id3->{'TRACKNUM'}) { | ||
347 | @songlist = sort { | ||
348 | $album2songs{$albumid}{$a}->{'TRACKNUM'} <=> | ||
349 | $album2songs{$albumid}{$b}->{'TRACKNUM'} | ||
350 | } @songlist; | ||
351 | } | ||
352 | else { | ||
353 | @songlist = sort @songlist; | ||
354 | } | ||
343 | 355 | ||
344 | for (sort keys %{$album2songs{$albumid}}) { | 356 | for (@songlist) { |
345 | my $id3 = $album2songs{$albumid}{$_}; | 357 | my $id3 = $album2songs{$albumid}{$_}; |
346 | dumpint($$id3{'songoffset'}); | 358 | dumpint($$id3{'songoffset'}); |
347 | } | 359 | } |