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()
logger.debug(u'Startup notification sent')
def track_playback_paused(self, track, time_position):
logger.debug(u'Received track playback paused event')
def _emit_properties_changed(self, *changed_properties):
if self.mpris_object is None:
return
self.mpris_object.PropertiesChanged(PLAYER_IFACE, {
'PlaybackStatus':
self.mpris_object.Get(PLAYER_IFACE, 'PlaybackStatus'),
}, [])
props_with_new_values = [(p, self.mpris_object.Get(PLAYER_IFACE, p))
for p in changed_properties]
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):
logger.debug(u'Received track playback resumed event')
if self.mpris_object is None:
return
self.mpris_object.PropertiesChanged(PLAYER_IFACE, {
'PlaybackStatus':
self.mpris_object.Get(PLAYER_IFACE, 'PlaybackStatus'),
}, [])
self._emit_properties_changed('PlaybackStatus')
def track_playback_started(self, track):
logger.debug(u'Received track playback started event')
if self.mpris_object is None:
return
self.mpris_object.PropertiesChanged(PLAYER_IFACE, {
'Metadata': self.mpris_object.Get(PLAYER_IFACE, 'Metadata'),
'PlaybackStatus':
self.mpris_object.Get(PLAYER_IFACE, 'PlaybackStatus'),
}, [])
self._emit_properties_changed('PlaybackStatus', 'Metadata')
def track_playback_ended(self, track, time_position):
logger.debug(u'Received track playback ended event')
if self.mpris_object is None:
return
self.mpris_object.PropertiesChanged(PLAYER_IFACE, {
'Metadata': self.mpris_object.Get(PLAYER_IFACE, 'Metadata'),
'PlaybackStatus':
self.mpris_object.Get(PLAYER_IFACE, 'PlaybackStatus'),
}, [])
self._emit_properties_changed('PlaybackStatus', 'Metadata')
def volume_changed(self):
logger.debug(u'Received volume changed event')
if self.mpris_object is None:
return
self.mpris_object.PropertiesChanged(PLAYER_IFACE, {
'Volume': self.mpris_object.Get(PLAYER_IFACE, 'Volume'),
}, [])
self._emit_properties_changed('Volume')
def seeked(self):
logger.debug(u'Received seeked event')

View File

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