+ def need_tracks(self):
+ 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 {0} track(s) ahead. (target {1})'.format(
+ len(queue), queue_trigger))
+ if len(queue) < queue_trigger:
+ return True
+ return False
+
+ def queue(self):
+ to_add = list()
+ for plugin in self.plugins:
+ pl_callback = getattr(plugin, 'callback_need_track')()
+ if pl_callback:
+ to_add.extend(pl_callback)
+ if not to_add:
+ self.log.warning('Queue plugins returned anything!')
+ for plugin in self.plugins:
+ self.log.info('calling fb for {}'.format(plugin))
+ pl_callback = getattr(plugin, 'callback_need_track_fb')()
+ if pl_callback:
+ to_add.extend(pl_callback)
+ for track in to_add:
+ self.player.add(track)
+