MPRIS: Use core actor passed to frontend

This commit is contained in:
Stein Magnus Jodal 2012-09-28 00:15:47 +02:00
parent 706b6c6d3f
commit 9fd3e93cb6
4 changed files with 10 additions and 20 deletions

View File

@ -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)

View File

@ -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

View File

@ -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()

View File

@ -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()