Send old and new state to playback_state_changed listeners

This commit is contained in:
Stein Magnus Jodal 2012-09-14 23:23:58 +02:00
parent b3f3cfe2a0
commit 28e5ed8b2e
4 changed files with 14 additions and 6 deletions

View File

@ -290,7 +290,7 @@ class PlaybackController(object):
(old_state, self._state) = (self.state, new_state)
logger.debug(u'Changing state: %s -> %s', old_state, new_state)
self._trigger_playback_state_changed()
self._trigger_playback_state_changed(old_state, new_state)
# FIXME play_time stuff assumes backend does not have a better way of
# handeling this stuff :/
@ -544,9 +544,10 @@ class PlaybackController(object):
track=self.current_track,
time_position=self.time_position)
def _trigger_playback_state_changed(self):
def _trigger_playback_state_changed(self, old_state, new_state):
logger.debug(u'Triggering playback state change event')
BackendListener.send('playback_state_changed')
BackendListener.send('playback_state_changed',
old_state=old_state, new_state=new_state)
def _trigger_options_changed(self):
logger.debug(u'Triggering options changed event')

View File

@ -51,7 +51,7 @@ class MpdFrontend(actor.ThreadingActor, listeners.BackendListener):
'kwargs': {},
}, target_class=MpdSession)
def playback_state_changed(self):
def playback_state_changed(self, old_state, new_state):
self.send_idle('player')
def playlist_changed(self):

View File

@ -74,11 +74,16 @@ class BackendListener(object):
"""
pass
def playback_state_changed(self):
def playback_state_changed(self, old_state, new_state):
"""
Called whenever playback state is changed.
*MAY* be implemented by actor.
:param old_state: the state before the change
:type old_state: string from :class:`mopidy.core.PlaybackState` field
:param new_state: the state after the change
:type new_state: string from :class:`mopidy.core.PlaybackState` field
"""
pass

View File

@ -1,3 +1,4 @@
from mopidy.core import PlaybackState
from mopidy.listeners import BackendListener
from mopidy.models import Track
@ -21,7 +22,8 @@ class BackendListenerTest(unittest.TestCase):
self.listener.track_playback_ended(Track(), 0)
def test_listener_has_default_impl_for_playback_state_changed(self):
self.listener.playback_state_changed()
self.listener.playback_state_changed(
PlaybackState.STOPPED, PlaybackState.PLAYING)
def test_listener_has_default_impl_for_playlist_changed(self):
self.listener.playlist_changed()