diff -aur server.orig/HTML/EN/html/docs/cli-api.html server/HTML/EN/html/docs/cli-api.html --- server.orig/HTML/EN/html/docs/cli-api.html 2007-05-12 23:57:52.000000000 -0500 +++ server/HTML/EN/html/docs/cli-api.html 2007-05-13 00:39:49.278255787 -0500 @@ -885,7 +885,8 @@
  • composerInArtists, conductorInArtists, - bandInArtists: contributors considered artists. Affects the + bandInArtists, contributorInArtists: + contributors considered artists. Affects the "info total artists ?" query.
  • @@ -3764,6 +3765,16 @@ + + + contributor + + + Contributor name. Only if known. + + + + l diff -aur server.orig/HTML/EN/html/docs/skins.html server/HTML/EN/html/docs/skins.html --- server.orig/HTML/EN/html/docs/skins.html 2007-05-12 23:57:52.000000000 -0500 +++ server/HTML/EN/html/docs/skins.html 2007-05-13 00:45:12.635237552 -0500 @@ -1088,6 +1088,7 @@
    composer
    conductor
    +
    contributor
    title
    filelength
    duration
    diff -aur server.orig/HTML/xml/html/slimserver_xml.dtd server/HTML/xml/html/slimserver_xml.dtd --- server.orig/HTML/xml/html/slimserver_xml.dtd 2007-05-12 23:57:50.000000000 -0500 +++ server/HTML/xml/html/slimserver_xml.dtd 2007-05-13 00:34:48.037568332 -0500 @@ -178,6 +178,7 @@ (band_id, band, band_browse_url)?, (composer_id, composer, composer_browse_url)?, (conductor_id, conductor, conductor_browse_url)?, + (contributor_id, contributor, contributor_browse_url)?, (album_id, album, album_browse_url)?, track?, type?, @@ -292,6 +293,7 @@ (band_id, band, band_browse_url)?, (composer_id, composer, composer_browse_url)?, (conductor_id, conductor, conductor_browse_url)?, + (contributor_id, contributor, contributor_browse_url)?, (album_id, album, album_browse_url)?, track?, type?, @@ -423,6 +425,7 @@ (band_id, band, band_browse_url)?, (composer_id, composer, composer_browse_url)?, (conductor_id, conductor, conductor_browse_url)?, + (contributor_id, contributor, contributor_browse_url)?, (album_id, album, album_browse_url)?, track?, type?, @@ -465,6 +468,8 @@ + + @@ -512,6 +517,7 @@ (band_id, band, band_browse_url)?, (composer_id, composer, composer_browse_url)?, (conductor_id, conductor, conductor_browse_url)?, + (contributor_id, contributor, contributor_browse_url)?, (album_id, album, album_browse_url)?, track?, type?, diff -aur server.orig/Slim/Control/Queries.pm server/Slim/Control/Queries.pm --- server.orig/Slim/Control/Queries.pm 2007-05-12 23:58:14.000000000 -0500 +++ server/Slim/Control/Queries.pm 2007-05-13 01:40:02.272994557 -0500 @@ -1965,6 +1965,7 @@ 'b' => ['band', 'band'], #->contributors 'c' => ['composer', 'composer'], #->contributors 'h' => ['conductor', 'conductor'], #->contributors + # '.' => ['contributor', 'contributor'], #->contributors 's' => ['artist_id', 'artist', 'id'], #->contributors 'l' => ['album', 'album', 'title'], #->album.title diff -aur server.orig/Slim/Formats/MP3.pm server/Slim/Formats/MP3.pm --- server.orig/Slim/Formats/MP3.pm 2007-05-12 23:58:15.000000000 -0500 +++ server/Slim/Formats/MP3.pm 2007-05-13 00:56:32.541686544 -0500 @@ -89,7 +89,13 @@ # get conductors $MP3::Info::v2_to_v1_names{'TP3'} = 'CONDUCTOR'; $MP3::Info::v2_to_v1_names{'TPE3'} = 'CONDUCTOR'; - + + # get contributors + $MP3::Info::v2_to_v1_names{'IPL'} = 'CONTRIBUTOR'; + $MP3::Info::v2_to_v1_names{'TIPL'} = 'CONTRIBUTOR'; + $MP3::Info::v2_to_v1_names{'IPLS'} = 'CONTRIBUTOR'; + $MP3::Info::v2_to_v2_names{'TMCL'} = 'CONTRIBUTOR'; + $MP3::Info::v2_to_v1_names{'TBP'} = 'BPM'; $MP3::Info::v2_to_v1_names{'TBPM'} = 'BPM'; diff -aur server.orig/Slim/Formats/Playlists/CUE.pm server/Slim/Formats/Playlists/CUE.pm --- server.orig/Slim/Formats/Playlists/CUE.pm 2007-05-12 23:58:15.000000000 -0500 +++ server/Slim/Formats/Playlists/CUE.pm 2007-05-13 00:06:24.704421184 -0500 @@ -115,7 +115,7 @@ } elsif (defined $currtrack and - $line =~ /^(?:\s+REM )?\s*(TITLE|YEAR|GENRE|COMMENT|COMPOSER|CONDUCTOR|BAND|DISC|DISCC)\s+\"(.*)\"/i) { + $line =~ /^(?:\s+REM )?\s*(TITLE|YEAR|GENRE|COMMENT|COMPOSER|CONDUCTOR|CONTRIBUTOR|BAND|DISC|DISCC)\s+\"(.*)\"/i) { $tracks->{$currtrack}->{uc $1} = $2; diff -aur server.orig/Slim/Music/TitleFormatter.pm server/Slim/Music/TitleFormatter.pm --- server.orig/Slim/Music/TitleFormatter.pm 2007-05-12 23:58:14.000000000 -0500 +++ server/Slim/Music/TitleFormatter.pm 2007-05-13 00:42:13.396476672 -0500 @@ -142,7 +142,7 @@ }; # add other contributors - for my $attr (qw(composer conductor band)) { + for my $attr (qw(composer conductor band contributor)) { $parsedFormats{uc($attr)} = sub { diff -aur server.orig/Slim/Schema/Contributor.pm server/Slim/Schema/Contributor.pm --- server.orig/Slim/Schema/Contributor.pm 2007-05-12 23:58:14.000000000 -0500 +++ server/Slim/Schema/Contributor.pm 2007-05-13 00:05:59.743952911 -0500 @@ -15,6 +15,7 @@ 'BAND' => 4, 'ALBUMARTIST' => 5, 'TRACKARTIST' => 6, + 'CONTRIBUTOR' => 7, ); { diff -aur server.orig/Slim/Schema/Track.pm server/Slim/Schema/Track.pm --- server.orig/Slim/Schema/Track.pm 2007-05-12 23:58:14.000000000 -0500 +++ server/Slim/Schema/Track.pm 2007-05-13 00:05:11.651049783 -0500 @@ -149,6 +149,12 @@ return $self->contributorsOfType('BAND')->all; } +sub contributor { + my $self = shift; + + return $self->contributorsOfType('CONTRIBUTOR')->all; +} + sub genre { my $self = shift; diff -aur server.orig/Slim/Web/Setup.pm server/Slim/Web/Setup.pm --- server.orig/Slim/Web/Setup.pm 2007-05-12 23:58:16.000000000 -0500 +++ server/Slim/Web/Setup.pm 2007-05-13 00:52:46.338220171 -0500 @@ -1769,7 +1769,7 @@ }, 'DisplayInArtists' => { - 'PrefOrder' => [qw(composerInArtists conductorInArtists bandInArtists)], + 'PrefOrder' => [qw(composerInArtists conductorInArtists bandInArtists contributorInArtists)], 'GroupHead' => 'SETUP_COMPOSERINARTISTS', 'Suppress_PrefHead' => 1, 'Suppress_PrefSub' => 1, @@ -1874,7 +1874,12 @@ 'PrefChoose' => 'BAND', 'validate' => \&Slim::Utils::Validate::trueFalse, }, + 'contributorInArtists' => { + 'inputTemplate' => 'setup_input_chk.html', + 'PrefChoose' => 'CONTRIBUTOR', + 'validate' => \&Slim::Utils::Validate::trueFalse, + }, 'noGenreFilter' => { 'validate' => \&Slim::Utils::Validate::trueFalse, 'options' => { diff -aur server.orig/strings.txt server/strings.txt --- server.orig/strings.txt 2007-05-12 23:59:45.000000000 -0500 +++ server/strings.txt 2007-05-13 01:44:41.441078635 -0500 @@ -8990,6 +8990,9 @@ SV Grupp/Orkester ZH_CN 乐队 +CONTRIBUTOR + EN Contributor + ALBUM DE Album EN Album