diff --git a/mopidy/frontends/mpris.py b/mopidy/frontends/mpris.py index 0f682a31..b2726138 100644 --- a/mopidy/frontends/mpris.py +++ b/mopidy/frontends/mpris.py @@ -153,6 +153,12 @@ class MprisFrontend(ThreadingActor, BackendListener): 'Volume': self.mpris_object.Get(PLAYER_IFACE, 'Volume'), }, []) + def seeked(self): + logger.debug(u'Received seeked event') + if self.mpris_object is None: + return + self.mpris_object.Seeked(PLAYER_IFACE, self.mpris_object.Get(PLAYER_IFACE, 'Position')) + class MprisObject(dbus.service.Object): """Implements http://www.mpris.org/2.1/spec/""" diff --git a/tests/frontends/mpris/events_test.py b/tests/frontends/mpris/events_test.py index 3b87bc88..3e2f0560 100644 --- a/tests/frontends/mpris/events_test.py +++ b/tests/frontends/mpris/events_test.py @@ -57,3 +57,10 @@ class BackendEventsTest(unittest.TestCase): self.mpris_object.PropertiesChanged.assert_called_with( PLAYER_IFACE, {'Volume': 1.0}, []) + def test_seeked_event_causes_mpris_seeked_event(self): + self.mpris_object.Get.return_value = 31000000 + self.mpris_frontend.seeked() + self.assertListEqual(self.mpris_object.Get.call_args_list, [ + ((PLAYER_IFACE, 'Position'), {}), + ]) + self.mpris_object.Seeked.assert_called_with( PLAYER_IFACE, 31000000)