Emit signal on volume change

This commit is contained in:
Stein Magnus Jodal 2011-07-27 01:01:34 +02:00
parent db4f2d135f
commit 3c2a944e8a
2 changed files with 18 additions and 0 deletions

View File

@ -145,6 +145,14 @@ class MprisFrontend(ThreadingActor, BackendListener):
self.mpris_object.Get(PLAYER_IFACE, 'PlaybackStatus'),
}, [])
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'),
}, [])
class MprisObject(dbus.service.Object):
"""Implements http://www.mpris.org/2.1/spec/"""

View File

@ -47,3 +47,13 @@ class BackendEventsTest(unittest.TestCase):
])
self.mpris_object.PropertiesChanged.assert_called_with(
PLAYER_IFACE, {'Metadata': '...', 'PlaybackStatus': '...'}, [])
def test_volume_changed_event_changes_volume(self):
self.mpris_object.Get.return_value = 1.0
self.mpris_frontend.volume_changed()
self.assertListEqual(self.mpris_object.Get.call_args_list, [
((PLAYER_IFACE, 'Volume'), {}),
])
self.mpris_object.PropertiesChanged.assert_called_with(
PLAYER_IFACE, {'Volume': 1.0}, [])