]> kaliko git repositories - mpd-sima.git/blobdiff - sima/core.py
Enhanced queuing behavior in random mode (Closes #16)
[mpd-sima.git] / sima / core.py
index 8519e5da8abee6f821564b820979e85e4c15b63a..ce1b0782ef0e682e0c30a99dcbe2a6d3542877dc 100644 (file)
@@ -73,10 +73,10 @@ class Sima(Daemon):
 
     def foreach_plugin(self, method, *args, **kwds):
         """Plugin's callbacks dispatcher"""
+        self.log.trace('dispatching %s to plugins', method)  # pylint: disable=no-member
         for plugin in self.core_plugins:
             getattr(plugin, method)(*args, **kwds)
         for plugin in self.plugins:
-            #self.log.debug('dispatching {0} to {1}'.format(method, plugin))
             getattr(plugin, method)(*args, **kwds)
 
     @property
@@ -93,9 +93,13 @@ class Sima(Daemon):
         if not self.enabled:
             self.log.debug('Queueing disabled!')
             return False
-        queue = self.player.queue
         queue_trigger = self.config.getint('sima', 'queue_length')
-        self.log.debug('Currently %s track(s) ahead. (target %s)', len(queue), queue_trigger)
+        if self.player.playmode.get('random'):
+            queue = self.player.playlist
+            self.log.debug('Currently %s track(s) in the playlist. (target %s)', len(queue), queue_trigger)
+        else:
+            queue = self.player.queue
+            self.log.debug('Currently %s track(s) ahead. (target %s)', len(queue), queue_trigger)
         if len(queue) < queue_trigger:
             return True
         return False