[Slim-Checkins] r10103 - /trunk/server/Plugins/RandomPlay/Plugin.pm

dsully at svn.slimdevices.com dsully at svn.slimdevices.com
Fri Sep 29 14:18:21 PDT 2006


Author: dsully
Date: Fri Sep 29 14:18:21 2006
New Revision: 10103

URL: http://svn.slimdevices.com?rev=10103&view=rev
Log:
Bug: N/A
Description: Optimize SQL query for case when either all or none of the genres are selected.

Modified:
    trunk/server/Plugins/RandomPlay/Plugin.pm

Modified: trunk/server/Plugins/RandomPlay/Plugin.pm
URL: http://svn.slimdevices.com/trunk/server/Plugins/RandomPlay/Plugin.pm?rev=10103&r1=10102&r2=10103&view=diff
==============================================================================
--- trunk/server/Plugins/RandomPlay/Plugin.pm (original)
+++ trunk/server/Plugins/RandomPlay/Plugin.pm Fri Sep 29 14:18:21 2006
@@ -282,8 +282,12 @@
 		# Initialize find to only include user's selected genres.  If they've deselected
 		# all genres, this clause will be ignored by find, so all genres will be used.
 		my $filteredGenres = getFilteredGenres($client);
-
-		if (ref($filteredGenres) eq 'ARRAY' && scalar @$filteredGenres > 0) {
+		my $excludedGenres = getFilteredGenres($client, 1);
+
+		# Only look for genre tracks if we have some, but not all
+		# genres selected. Or no genres selected.
+		if ((scalar @$filteredGenres > 0 && scalar @$excludedGenres != 0) || 
+		     scalar @$filteredGenres != 0 && scalar @$excludedGenres > 0) {
 
 			$find->{'genreTracks.genre'} = { 'in' => $filteredGenres };
 		}



More information about the checkins mailing list