Index: src/gnupod_addsong.pl =================================================================== RCS file: /sources/gnupod/gnupod/src/gnupod_addsong.pl,v retrieving revision 1.73 diff -u -r1.73 gnupod_addsong.pl --- src/gnupod_addsong.pl 1 Sep 2007 19:13:01 -0000 1.73 +++ src/gnupod_addsong.pl 10 Sep 2007 07:46:29 -0000 @@ -46,7 +46,7 @@ "set-title=s", "set-artist=s", "set-album=s", "set-genre=s", "set-rating=i", "set-playcount=i", "set-bookmarkable", "set-shuffleskip", "set-songnum", "playlist|p=s@", "reencode|e=i", - "min-vol-adj=i", "max-vol-adj=i", "playlist-is-podcast" ); + "min-vol-adj=i", "max-vol-adj=i", "playlist-is-podcast", "set-compilation"); GNUpod::FooBar::GetConfig(\%opts, {'decode'=>'s', mount=>'s', duplicate=>'b', 'disable-v1'=>'b', 'disable-v2'=>'b', 'set-songnum'=>'b', 'min-vol-adj'=>'i', 'max-vol-adj'=>'i', 'automktunes'=>'b' }, @@ -172,6 +172,7 @@ $fh->{album} = $opts{'set-album'} if $opts{'set-album'}; $fh->{genre} = $opts{'set-genre'} if $opts{'set-genre'}; $fh->{rating} = $opts{'set-rating'} if $opts{'set-rating'}; + $fh->{compilation} = 1 if defined($opts{'set-compilation'}); $fh->{bookmarkable} = 1 if defined($opts{'set-bookmarkable'}); $fh->{shuffleskip} = 1 if defined($opts{'set-shuffleskip'}); $fh->{playcount} = $opts{'set-playcount'} if $opts{'set-playcount'}; @@ -541,6 +542,7 @@ --set-songnum Override 'Songnum/Tracknum' field --set-bookmarkable Set this song as bookmarkable (= Remember position) --set-shuffleskip Exclude this file in shuffle-mode + --set-compilation Mark songs as being part of a compilation --min-vol-adj=int Minimum volume adjustment allowed by ID3v2.4 RVA2 tag --max-vol-adj=int Maximum ditto. The volume can be adjusted in the range -100% to +100%. The default for these two options is 0, Index: src/ext/iTunesDB.pm =================================================================== RCS file: /sources/gnupod/gnupod/src/ext/iTunesDB.pm,v retrieving revision 1.88 diff -u -r1.88 iTunesDB.pm --- src/ext/iTunesDB.pm 1 Sep 2007 19:13:02 -0000 1.88 +++ src/ext/iTunesDB.pm 10 Sep 2007 07:46:30 -0000 @@ -340,7 +340,7 @@ $ret .= pack("V", _icl(1)); #Visible? $ret .= pack("V"); #FileType. Should be 'MP3 '. (FIXME: Extension or type?) $ret .= pack("v", 0x100); #cbr = 100, vbr = 101, aac = 0x010 ##FIXME: COrrect? - $ret .= pack("c", (($file_hash{compilation})==0)); #compilation ? + $ret .= pack("c", (($file_hash{compilation})!=0)); #compilation $ret .= pack("c",$file_hash{rating}); #rating $ret .= pack("V", _icl($file_hash{changetime})); #Time changed $ret .= pack("V", _icl($file_hash{filesize})); #filesize @@ -1141,7 +1141,7 @@ $ret{id} = get_int($sum+16,4,$fd); #$ret{rating} = int((get_int($sum+28,4)-256)/oct('0x14000000')) * 20; ##XXX 26-30 are useless for us.. -$ret{compilation}= (get_int($sum+30,1,$fd)==0); +$ret{compilation}= (get_int($sum+30,1,$fd)!=0); $ret{rating} = get_int($sum+31,1,$fd); $ret{changetime} = get_int($sum+32,4,$fd); $ret{filesize} = get_int($sum+36,4,$fd);