audio: Add AudioListener.on_event()
This commit is contained in:
parent
ec66cae784
commit
959bd6cd84
@ -19,7 +19,20 @@ class AudioListener(object):
|
||||
"""Helper to allow calling of audio listener events"""
|
||||
listeners = pykka.ActorRegistry.get_by_class(AudioListener)
|
||||
for listener in listeners:
|
||||
getattr(listener.proxy(), event)(**kwargs)
|
||||
listener.proxy().on_event(event, **kwargs)
|
||||
|
||||
def on_event(self, event, **kwargs):
|
||||
"""
|
||||
Called on all events.
|
||||
|
||||
*MAY* be implemented by actor. By default, this method forwards the
|
||||
event to the specific event methods.
|
||||
|
||||
:param event: the event name
|
||||
:type event: string
|
||||
:param kwargs: any other arguments to the specific event handlers
|
||||
"""
|
||||
getattr(self, event)(**kwargs)
|
||||
|
||||
def reached_end_of_stream(self):
|
||||
"""
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import mock
|
||||
|
||||
from mopidy import audio
|
||||
|
||||
from tests import unittest
|
||||
@ -9,6 +11,15 @@ class AudioListenerTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.listener = audio.AudioListener()
|
||||
|
||||
def test_on_event_forwards_to_specific_handler(self):
|
||||
self.listener.state_changed = mock.Mock()
|
||||
|
||||
self.listener.on_event(
|
||||
'state_changed', old_state='stopped', new_state='playing')
|
||||
|
||||
self.listener.state_changed.assert_called_with(
|
||||
old_state='stopped', new_state='playing')
|
||||
|
||||
def test_listener_has_default_impl_for_reached_end_of_stream(self):
|
||||
self.listener.reached_end_of_stream()
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user