Add util method for emitting PropertiesChanged

This commit is contained in:
Stein Magnus Jodal 2011-07-28 00:34:44 +02:00
parent d0c8f89ffd
commit 3c1ba51580
2 changed files with 15 additions and 33 deletions

View File

@ -106,51 +106,33 @@ class MprisFrontend(ThreadingActor, BackendListener):
self.indicate_server.show() self.indicate_server.show()
logger.debug(u'Startup notification sent') logger.debug(u'Startup notification sent')
def track_playback_paused(self, track, time_position): def _emit_properties_changed(self, *changed_properties):
logger.debug(u'Received track playback paused event')
if self.mpris_object is None: if self.mpris_object is None:
return return
self.mpris_object.PropertiesChanged(PLAYER_IFACE, { props_with_new_values = [(p, self.mpris_object.Get(PLAYER_IFACE, p))
'PlaybackStatus': for p in changed_properties]
self.mpris_object.Get(PLAYER_IFACE, 'PlaybackStatus'), self.mpris_object.PropertiesChanged(PLAYER_IFACE,
}, []) dict(props_with_new_values), [])
def track_playback_paused(self, track, time_position):
logger.debug(u'Received track playback paused event')
self._emit_properties_changed('PlaybackStatus')
def track_playback_resumed(self, track, time_position): def track_playback_resumed(self, track, time_position):
logger.debug(u'Received track playback resumed event') logger.debug(u'Received track playback resumed event')
if self.mpris_object is None: self._emit_properties_changed('PlaybackStatus')
return
self.mpris_object.PropertiesChanged(PLAYER_IFACE, {
'PlaybackStatus':
self.mpris_object.Get(PLAYER_IFACE, 'PlaybackStatus'),
}, [])
def track_playback_started(self, track): def track_playback_started(self, track):
logger.debug(u'Received track playback started event') logger.debug(u'Received track playback started event')
if self.mpris_object is None: self._emit_properties_changed('PlaybackStatus', 'Metadata')
return
self.mpris_object.PropertiesChanged(PLAYER_IFACE, {
'Metadata': self.mpris_object.Get(PLAYER_IFACE, 'Metadata'),
'PlaybackStatus':
self.mpris_object.Get(PLAYER_IFACE, 'PlaybackStatus'),
}, [])
def track_playback_ended(self, track, time_position): def track_playback_ended(self, track, time_position):
logger.debug(u'Received track playback ended event') logger.debug(u'Received track playback ended event')
if self.mpris_object is None: self._emit_properties_changed('PlaybackStatus', 'Metadata')
return
self.mpris_object.PropertiesChanged(PLAYER_IFACE, {
'Metadata': self.mpris_object.Get(PLAYER_IFACE, 'Metadata'),
'PlaybackStatus':
self.mpris_object.Get(PLAYER_IFACE, 'PlaybackStatus'),
}, [])
def volume_changed(self): def volume_changed(self):
logger.debug(u'Received volume changed event') logger.debug(u'Received volume changed event')
if self.mpris_object is None: self._emit_properties_changed('Volume')
return
self.mpris_object.PropertiesChanged(PLAYER_IFACE, {
'Volume': self.mpris_object.Get(PLAYER_IFACE, 'Volume'),
}, [])
def seeked(self): def seeked(self):
logger.debug(u'Received seeked event') logger.debug(u'Received seeked event')

View File

@ -32,8 +32,8 @@ class BackendEventsTest(unittest.TestCase):
self.mpris_object.Get.return_value = '...' self.mpris_object.Get.return_value = '...'
self.mpris_frontend.track_playback_started(Track()) self.mpris_frontend.track_playback_started(Track())
self.assertListEqual(self.mpris_object.Get.call_args_list, [ self.assertListEqual(self.mpris_object.Get.call_args_list, [
((PLAYER_IFACE, 'Metadata'), {}),
((PLAYER_IFACE, 'PlaybackStatus'), {}), ((PLAYER_IFACE, 'PlaybackStatus'), {}),
((PLAYER_IFACE, 'Metadata'), {}),
]) ])
self.mpris_object.PropertiesChanged.assert_called_with( self.mpris_object.PropertiesChanged.assert_called_with(
PLAYER_IFACE, {'Metadata': '...', 'PlaybackStatus': '...'}, []) PLAYER_IFACE, {'Metadata': '...', 'PlaybackStatus': '...'}, [])
@ -42,8 +42,8 @@ class BackendEventsTest(unittest.TestCase):
self.mpris_object.Get.return_value = '...' self.mpris_object.Get.return_value = '...'
self.mpris_frontend.track_playback_ended(Track(), 0) self.mpris_frontend.track_playback_ended(Track(), 0)
self.assertListEqual(self.mpris_object.Get.call_args_list, [ self.assertListEqual(self.mpris_object.Get.call_args_list, [
((PLAYER_IFACE, 'Metadata'), {}),
((PLAYER_IFACE, 'PlaybackStatus'), {}), ((PLAYER_IFACE, 'PlaybackStatus'), {}),
((PLAYER_IFACE, 'Metadata'), {}),
]) ])
self.mpris_object.PropertiesChanged.assert_called_with( self.mpris_object.PropertiesChanged.assert_called_with(
PLAYER_IFACE, {'Metadata': '...', 'PlaybackStatus': '...'}, []) PLAYER_IFACE, {'Metadata': '...', 'PlaybackStatus': '...'}, [])