Add playback state changed event

This commit is contained in:
Thomas Adamcik 2011-07-19 02:43:48 +02:00
parent 215ed61b0b
commit 1e5a5fb7d0
2 changed files with 15 additions and 1 deletions

View File

@ -276,6 +276,9 @@ class PlaybackController(object):
def state(self, new_state):
(old_state, self._state) = (self.state, new_state)
logger.debug(u'Changing state: %s -> %s', old_state, new_state)
self._trigger_playback_state_changed()
# FIXME play_time stuff assumes backend does not have a better way of
# handeling this stuff :/
if (old_state in (self.PLAYING, self.STOPPED)
@ -387,7 +390,6 @@ class PlaybackController(object):
self.resume()
if cp_track is not None:
self.state = self.STOPPED
self.current_cp_track = cp_track
self.state = self.PLAYING
if not self.provider.play(cp_track.track):
@ -475,6 +477,10 @@ class PlaybackController(object):
track=self.current_track,
time_position=self.time_position)
def _trigger_playback_state_changed(self):
logger.debug(u'Triggering playback state change event')
BackendListener.send('playback_state_changed')
class BasePlaybackProvider(object):
"""

View File

@ -44,3 +44,11 @@ class BackendListener(object):
:type time_position: int
"""
pass
def playback_state_changed(self):
"""
Called whenever playback state is changed.
*MAY* be implemented by actor.
"""
pass