From 9fd3e93cb6fa8438cc54c0115bd8c393e8c353b0 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Fri, 28 Sep 2012 00:15:47 +0200 Subject: [PATCH] MPRIS: Use core actor passed to frontend --- mopidy/frontends/mpris/__init__.py | 3 ++- mopidy/frontends/mpris/objects.py | 22 +++++-------------- .../frontends/mpris/player_interface_test.py | 3 +-- tests/frontends/mpris/root_interface_test.py | 2 +- 4 files changed, 10 insertions(+), 20 deletions(-) diff --git a/mopidy/frontends/mpris/__init__.py b/mopidy/frontends/mpris/__init__.py index 769f2e84..1a8797f2 100644 --- a/mopidy/frontends/mpris/__init__.py +++ b/mopidy/frontends/mpris/__init__.py @@ -57,12 +57,13 @@ class MprisFrontend(ThreadingActor, core.CoreListener): def __init__(self, core): super(MprisFrontend, self).__init__() + self.core = core self.indicate_server = None self.mpris_object = None def on_start(self): try: - self.mpris_object = objects.MprisObject() + self.mpris_object = objects.MprisObject(self.core) self._send_startup_notification() except Exception as e: logger.error(u'MPRIS frontend setup failed (%s)', e) diff --git a/mopidy/frontends/mpris/objects.py b/mopidy/frontends/mpris/objects.py index cb1e73eb..7c8b6f5a 100644 --- a/mopidy/frontends/mpris/objects.py +++ b/mopidy/frontends/mpris/objects.py @@ -1,8 +1,6 @@ import logging import os -logger = logging.getLogger('mopidy.frontends.mpris') - try: import dbus import dbus.mainloop.glib @@ -12,12 +10,13 @@ except ImportError as import_error: from mopidy import OptionalDependencyError raise OptionalDependencyError(import_error) -from pykka.registry import ActorRegistry - -from mopidy import core, settings +from mopidy import settings from mopidy.core import PlaybackState from mopidy.utils.process import exit_process + +logger = logging.getLogger('mopidy.frontends.mpris') + # Must be done before dbus.SessionBus() is called gobject.threads_init() dbus.mainloop.glib.threads_init() @@ -33,8 +32,8 @@ class MprisObject(dbus.service.Object): properties = None - def __init__(self): - self._core = None + def __init__(self, core): + self.core = core self.properties = { ROOT_IFACE: self._get_root_iface_properties(), PLAYER_IFACE: self._get_player_iface_properties(), @@ -83,15 +82,6 @@ class MprisObject(dbus.service.Object): logger.info(u'Connected to D-Bus') return bus_name - @property - def core(self): - if self._core is None: - core_refs = ActorRegistry.get_by_class(core.Core) - assert len(core_refs) == 1, \ - 'Expected exactly one running core instance.' - self._core = core_refs[0].proxy() - return self._core - def _get_track_id(self, cp_track): return '/com/mopidy/track/%d' % cp_track.cpid diff --git a/tests/frontends/mpris/player_interface_test.py b/tests/frontends/mpris/player_interface_test.py index 236ec645..403d05c7 100644 --- a/tests/frontends/mpris/player_interface_test.py +++ b/tests/frontends/mpris/player_interface_test.py @@ -27,8 +27,7 @@ class PlayerInterfaceTest(unittest.TestCase): objects.MprisObject._connect_to_dbus = mock.Mock() self.backend = dummy.DummyBackend.start(audio=None).proxy() self.core = core.Core.start(backend=self.backend).proxy() - self.mpris = objects.MprisObject() - self.mpris._core = self.core + self.mpris = objects.MprisObject(core=self.core) def tearDown(self): ActorRegistry.stop_all() diff --git a/tests/frontends/mpris/root_interface_test.py b/tests/frontends/mpris/root_interface_test.py index b84b70c3..847ed2de 100644 --- a/tests/frontends/mpris/root_interface_test.py +++ b/tests/frontends/mpris/root_interface_test.py @@ -22,7 +22,7 @@ class RootInterfaceTest(unittest.TestCase): objects.MprisObject._connect_to_dbus = mock.Mock() self.backend = dummy.DummyBackend.start(audio=None).proxy() self.core = core.Core.start(backend=self.backend).proxy() - self.mpris = objects.MprisObject() + self.mpris = objects.MprisObject(core=self.core) def tearDown(self): ActorRegistry.stop_all()