Index: D:/eclipse/trunk/server/Slim/Control/Queries.pm =================================================================== --- D:/eclipse/trunk/server/Slim/Control/Queries.pm (revision 17724) +++ D:/eclipse/trunk/server/Slim/Control/Queries.pm (working copy) @@ -422,8 +422,7 @@ $chunkCount++; } - - ($chunkCount, $totalCount) = _jiveAddToFavorites(start => $start, chunkCount => $chunkCount, listCount => $totalCount, request => $request, loopname => $loopname, favorites => \%favorites, includeArt => 1); + $totalCount = _jiveAddToFavorites(end => $end, count => $totalCount, chunkCount => $chunkCount, request => $request, loopname => $loopname, favorites => \%favorites, includeArt => 1); } if ($totalCount == 0 && $menuMode) { @@ -697,7 +696,7 @@ $chunkCount++; } - ($chunkCount, $totalCount) = _jiveAddToFavorites(start => $start, listCount => $totalCount, chunkCount => $chunkCount, request => $request, loopname => $loopname, favorites => \%favorites); + $totalCount = _jiveAddToFavorites(end => $end, count => $totalCount, chunkCount => $chunkCount, request => $request, loopname => $loopname, favorites => \%favorites); } if ($totalCount == 0 && $menuMode) { @@ -3705,7 +3704,7 @@ # this is a workaround for the fact that a radio stream in the current playlist will # often have a URL for a specific IP rather than a e.g DNS .m3u URL if ($favorites{'url'} =~ /^file/) { - ($chunkCount, $count) = _jiveAddToFavorites(start => $start, chunkCount => $chunkCount, listCount => $count, request => $request, loopname => $loopname, favorites => \%favorites); + $count = _jiveAddToFavorites(end => ($count - 2), count => $count, chunkCount => $chunkCount, request => $request, loopname => $loopname, favorites => \%favorites); } # because of suppression of some items, only now can we add the count @@ -3998,7 +3997,7 @@ ::idleStreams(); } } - ($chunkCount, $totalCount) = _jiveAddToFavorites(start => $start, listCount => $totalCount, chunkCount => $chunkCount, request => $request, loopname => $loopname, favorites => \%favorites); + $totalCount = _jiveAddToFavorites(end => $end, count => $totalCount, chunkCount => $chunkCount, request => $request, loopname => $loopname, favorites => \%favorites); } if ($totalCount == 0 && $menuMode) { @@ -4510,21 +4509,19 @@ my %args = @_; my $chunkCount = $args{'chunkCount'}; - my $listCount = $args{'listCount'}; my $loopname = $args{'loopname'}; my $request = $args{'request'}; my $favorites = $args{'favorites'}; - my $start = $args{'start'}; + my $end = $args{'end'}; + my $count = $args{'count'}; my $includeArt = defined($args{'includeArt'}) ? 1 : 0; - return ($chunkCount, $listCount) unless $loopname && $favorites; + return $count unless $loopname && $favorites; - if ($start == 0) { + # we need %favorites populated or else we don't want this item + return $count unless $favorites->{'title'} && $favorites->{'url'}; - # we need %favorites populated or else we don't want this item - if (!$favorites->{'title'} || !$favorites->{'url'}) { - return ($chunkCount, $listCount); - } + if ($end == $count - 2 || ($end == 0 && $count == 1)) { my $action = 'add'; my $token = 'JIVE_ADD_TO_FAVORITES'; @@ -4555,18 +4552,17 @@ $request->addResultLoop($loopname, $chunkCount, 'actions', $actions); $request->addResultLoop($loopname, $chunkCount, 'style', 'item'); - $request->addResultLoop($loopname, $chunkCount, 'window', { 'titleStyle' => 'favorites' }); + $request->addResultLoop($loopname, $chunkCount, 'window', { 'titleStyle' => 'favorites' }); + if ($includeArt) { $request->addResultLoop($loopname, $chunkCount, 'style', 'albumitem'); - # FIXME, this needs to change to a favorites image after it is provided $request->addResultLoop($loopname, $chunkCount, 'icon', '/html/images/favorites.png'); } $chunkCount++; - $listCount++; } - return($chunkCount, $listCount); + return $count + 1; } sub _songData {