MPRIS: Use core actor passed to frontend
This commit is contained in:
parent
706b6c6d3f
commit
9fd3e93cb6
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user