Example #1
0
 def test_broadcast_sends_message_to_all_actors_of_given_class_name(self):
     ActorRegistry.broadcast({'command': 'foo'}, target_class='AnActor')
     for actor_ref in ActorRegistry.get_by_class(self.AnActor):
         received_messages = actor_ref.proxy().received_messages.get()
         self.assert_({'command': 'foo'} in received_messages)
     for actor_ref in ActorRegistry.get_by_class(self.BeeActor):
         received_messages = actor_ref.proxy().received_messages.get()
         self.assert_({'command': 'foo'} not in received_messages)
Example #2
0
    def setup(self):
        audio_refs = ActorRegistry.get_by_class(audio.Audio)
        assert len(audio_refs) == 1, \
            'Expected exactly one running Audio instance.'
        self.audio = audio_refs[0].proxy()

        backend_refs = ActorRegistry.get_by_class(Backend)
        assert len(backend_refs) == 1, 'Expected exactly one running backend.'
        self.backend = backend_refs[0].proxy()
Example #3
0
    def setup(self):
        gstreamer_refs = ActorRegistry.get_by_class(GStreamer)
        assert len(gstreamer_refs) == 1, \
            'Expected exactly one running gstreamer.'
        self.gstreamer = gstreamer_refs[0].proxy()

        backend_refs = ActorRegistry.get_by_class(Backend)
        assert len(backend_refs) == 1, 'Expected exactly one running backend.'
        self.backend = backend_refs[0].proxy()
Example #4
0
 def backend(self):
     if self._backend is None:
         backend_refs = ActorRegistry.get_by_class(Backend)
         assert len(backend_refs) == 1, \
             'Expected exactly one running backend.'
         self._backend = backend_refs[0].proxy()
     return self._backend
Example #5
0
    def on_start(self):
        gstreamer_refs = ActorRegistry.get_by_class(GStreamer)
        assert len(gstreamer_refs) == 1, 'Expected exactly one running gstreamer.'
        self.gstreamer = gstreamer_refs[0].proxy()

        logger.info(u'Mopidy uses SPOTIFY(R) CORE')
        self.spotify = self._connect()
Example #6
0
 def _notify_backend_of_eos(self):
     backend_refs = ActorRegistry.get_by_class(Backend)
     assert len(backend_refs) <= 1, 'Expected at most one running backend.'
     if backend_refs:
         logger.debug(u'Notifying backend of end-of-stream.')
         backend_refs[0].proxy().playback.on_end_of_track()
     else:
         logger.debug(u'No backend to notify of end-of-stream found.')
Example #7
0
    def on_start(self):
        audio_refs = ActorRegistry.get_by_class(audio.Audio)
        assert len(audio_refs) == 1, \
            'Expected exactly one running Audio instance.'
        self.audio = audio_refs[0].proxy()

        logger.info(u'Mopidy uses SPOTIFY(R) CORE')
        self.spotify = self._connect()
Example #8
0
 def backend(self):
     """
     The backend. An instance of :class:`mopidy.backends.base.Backend`.
     """
     if self._backend is None:
         backend_refs = ActorRegistry.get_by_class(Backend)
         assert len(backend_refs) == 1, 'Expected exactly one running backend.'
         self._backend = backend_refs[0].proxy()
     return self._backend
Example #9
0
 def mixer(self):
     """
     The mixer. An instance of :class:`mopidy.mixers.base.BaseMixer`.
     """
     if self._mixer is None:
         mixer_refs = ActorRegistry.get_by_class(BaseMixer)
         assert len(mixer_refs) == 1, 'Expected exactly one running mixer.'
         self._mixer = mixer_refs[0].proxy()
     return self._mixer
Example #10
0
 def backend(self):
     """
     The backend. An instance of :class:`mopidy.backends.base.Backend`.
     """
     if self._backend is None:
         backend_refs = ActorRegistry.get_by_class(Backend)
         assert len(
             backend_refs) == 1, 'Expected exactly one running backend.'
         self._backend = backend_refs[0].proxy()
     return self._backend
Example #11
0
    def _trigger_started_playing_event(self):
        """
        Notifies frontends that a track has started playing.

        For internal use only. Should be called by the backend directly after a
        track has started playing.
        """
        if self.current_track is None:
            return
        frontend_refs = ActorRegistry.get_by_class(BaseFrontend)
        for frontend_ref in frontend_refs:
            frontend_ref.send_one_way({
                'command': 'started_playing',
                'track': self.current_track,
            })
Example #12
0
    def _trigger_stopped_playing_event(self):
        """
        Notifies frontends that a track has stopped playing.

        For internal use only. Should be called by the backend before a track
        is stopped playing, e.g. at the next, previous, and stop actions and at
        end-of-track.
        """
        if self.current_track is None:
            return
        frontend_refs = ActorRegistry.get_by_class(BaseFrontend)
        for frontend_ref in frontend_refs:
            frontend_ref.send_one_way({
                'command': 'stopped_playing',
                'track': self.current_track,
                'stop_position': self.time_position,
            })
Example #13
0
 def on_start(self):
     audio_refs = ActorRegistry.get_by_class(audio.Audio)
     assert len(audio_refs) == 1, \
         'Expected exactly one running Audio instance.'
     self.audio = audio_refs[0].proxy()
Example #14
0
def stop_actors_by_class(klass):
    actors = ActorRegistry.get_by_class(klass)
    logger.debug(u'Stopping %d instance(s) of %s', len(actors), klass.__name__)
    for actor in actors:
        actor.stop()
Example #15
0
 def number_of_connections(self):
     return len(ActorRegistry.get_by_class(self.protocol))
Example #16
0
 def test_actors_may_be_looked_up_by_superclass(self):
     result = ActorRegistry.get_by_class(AnActor)
     for a_actor in self.a_actors:
         self.assert_(a_actor in result)
     for b_actor in self.b_actors:
         self.assert_(b_actor not in result)
Example #17
0
 def on_start(self):
     gstreamer_refs = ActorRegistry.get_by_class(GStreamer)
     assert len(gstreamer_refs) == 1, \
         'Expected exactly one running GStreamer.'
     self.gstreamer = gstreamer_refs[0].proxy()
Example #18
0
 def mixer(self):
     if self._mixer is None:
         mixer_refs = ActorRegistry.get_by_class(BaseMixer)
         assert len(mixer_refs) == 1, 'Expected exactly one running mixer.'
         self._mixer = mixer_refs[0].proxy()
     return self._mixer
Example #19
0
 def on_start(self):
     audio_refs = ActorRegistry.get_by_class(audio.Audio)
     assert len(audio_refs) == 1, \
         'Expected exactly one running Audio instance.'
     self.audio = audio_refs[0].proxy()
Example #20
0
 def on_start(self):
     output_refs = ActorRegistry.get_by_class(GStreamer)
     assert len(output_refs) == 1, 'Expected exactly one running output.'
     self.output = output_refs[0].proxy()
Example #21
0
 def _get_backend(self):
     backend_refs = ActorRegistry.get_by_class(Backend)
     assert len(backend_refs) == 1, 'Expected exactly one running backend.'
     return backend_refs[0].proxy()
Example #22
0
 def test_actors_may_be_looked_up_by_superclass(self):
     result = ActorRegistry.get_by_class(AnActorSuperclass)
     for a_actor in self.a_actors:
         self.assert_(a_actor in result)
     for b_actor in self.b_actors:
         self.assert_(b_actor not in result)
Example #23
0
 def on_start(self):
     output_refs = ActorRegistry.get_by_class(GStreamer)
     assert len(output_refs) == 1, 'Expected exactly one running output.'
     self.output = output_refs[0].proxy()
Example #24
0
 def number_of_connections(self):
     return len(ActorRegistry.get_by_class(self.protocol))