Start multiple backends
This commit is contained in:
parent
956655f742
commit
2d92a7a228
@ -54,8 +54,8 @@ def main():
|
||||
check_old_folders()
|
||||
setup_settings(options.interactive)
|
||||
audio = setup_audio()
|
||||
backend = setup_backend(audio)
|
||||
core = setup_core(audio, backend)
|
||||
backends = setup_backends(audio)
|
||||
core = setup_core(audio, backends)
|
||||
setup_frontends(core)
|
||||
loop.run()
|
||||
except exceptions.SettingsError as ex:
|
||||
@ -68,7 +68,7 @@ def main():
|
||||
loop.quit()
|
||||
stop_frontends()
|
||||
stop_core()
|
||||
stop_backend()
|
||||
stop_backends()
|
||||
stop_audio()
|
||||
process.stop_remaining_actors()
|
||||
|
||||
@ -147,16 +147,22 @@ def stop_audio():
|
||||
process.stop_actors_by_class(Audio)
|
||||
|
||||
|
||||
def setup_backend(audio):
|
||||
return importing.get_class(settings.BACKENDS[0]).start(audio=audio).proxy()
|
||||
def setup_backends(audio):
|
||||
backends = []
|
||||
for backend_class_name in settings.BACKENDS:
|
||||
backend_class = importing.get_class(backend_class_name)
|
||||
backend = backend_class.start(audio=audio).proxy()
|
||||
backends.append(backend)
|
||||
return backends
|
||||
|
||||
|
||||
def stop_backend():
|
||||
process.stop_actors_by_class(importing.get_class(settings.BACKENDS[0]))
|
||||
def stop_backends():
|
||||
for backend_class_name in settings.BACKENDS:
|
||||
process.stop_actors_by_class(importing.get_class(backend_class_name))
|
||||
|
||||
|
||||
def setup_core(audio, backend):
|
||||
return Core.start(audio=audio, backend=backend).proxy()
|
||||
def setup_core(audio, backends):
|
||||
return Core.start(audio=audio, backends=backends).proxy()
|
||||
|
||||
|
||||
def stop_core():
|
||||
|
||||
@ -25,25 +25,25 @@ class Core(pykka.ThreadingActor, AudioListener):
|
||||
#: :class:`mopidy.core.StoredPlaylistsController`.
|
||||
stored_playlists = None
|
||||
|
||||
def __init__(self, audio=None, backend=None):
|
||||
def __init__(self, audio=None, backends=None):
|
||||
super(Core, self).__init__()
|
||||
|
||||
self._backend = backend
|
||||
self._backends = backends
|
||||
|
||||
self.current_playlist = CurrentPlaylistController(core=self)
|
||||
|
||||
self.library = LibraryController(backend=backend, core=self)
|
||||
self.library = LibraryController(backend=backends[0], core=self)
|
||||
|
||||
self.playback = PlaybackController(
|
||||
audio=audio, backend=backend, core=self)
|
||||
audio=audio, backend=backends[0], core=self)
|
||||
|
||||
self.stored_playlists = StoredPlaylistsController(
|
||||
backend=backend, core=self)
|
||||
backend=backends[0], core=self)
|
||||
|
||||
@property
|
||||
def uri_schemes(self):
|
||||
"""List of URI schemes we can handle"""
|
||||
return self._backend.uri_schemes.get()
|
||||
return self._backends[0].uri_schemes.get()
|
||||
|
||||
def reached_end_of_stream(self):
|
||||
self.playback.on_end_of_track()
|
||||
|
||||
@ -16,7 +16,7 @@ class CurrentPlaylistControllerTest(object):
|
||||
def setUp(self):
|
||||
self.audio = mock.Mock(spec=audio.Audio)
|
||||
self.backend = self.backend_class.start(audio=self.audio).proxy()
|
||||
self.core = core.Core(audio=audio, backend=self.backend)
|
||||
self.core = core.Core(audio=audio, backends=[self.backend])
|
||||
self.controller = self.core.current_playlist
|
||||
self.playback = self.core.playback
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@ class LibraryControllerTest(object):
|
||||
|
||||
def setUp(self):
|
||||
self.backend = self.backend_class.start(audio=None).proxy()
|
||||
self.core = core.Core(backend=self.backend)
|
||||
self.core = core.Core(backends=[self.backend])
|
||||
self.library = self.core.library
|
||||
|
||||
def tearDown(self):
|
||||
|
||||
@ -18,7 +18,7 @@ class PlaybackControllerTest(object):
|
||||
def setUp(self):
|
||||
self.audio = mock.Mock(spec=audio.Audio)
|
||||
self.backend = self.backend_class.start(audio=self.audio).proxy()
|
||||
self.core = core.Core(backend=self.backend)
|
||||
self.core = core.Core(backends=[self.backend])
|
||||
self.playback = self.core.playback
|
||||
self.current_playlist = self.core.current_playlist
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ class StoredPlaylistsControllerTest(object):
|
||||
|
||||
self.audio = mock.Mock(spec=audio.Audio)
|
||||
self.backend = self.backend_class.start(audio=self.audio).proxy()
|
||||
self.core = core.Core(backend=self.backend)
|
||||
self.core = core.Core(backends=[self.backend])
|
||||
self.stored = self.core.stored_playlists
|
||||
|
||||
def tearDown(self):
|
||||
|
||||
@ -13,7 +13,7 @@ class BackendEventsTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.audio = mock.Mock(spec=audio.Audio)
|
||||
self.backend = dummy.DummyBackend.start(audio=audio).proxy()
|
||||
self.core = core.Core.start(backend=self.backend).proxy()
|
||||
self.core = core.Core.start(backends=[self.backend]).proxy()
|
||||
|
||||
def tearDown(self):
|
||||
pykka.ActorRegistry.stop_all()
|
||||
|
||||
@ -12,7 +12,7 @@ from tests import unittest
|
||||
class MpdDispatcherTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.backend = dummy.DummyBackend.start(audio=None).proxy()
|
||||
self.core = core.Core.start(backend=self.backend).proxy()
|
||||
self.core = core.Core.start(backends=[self.backend]).proxy()
|
||||
self.dispatcher = MpdDispatcher()
|
||||
|
||||
def tearDown(self):
|
||||
|
||||
@ -23,7 +23,7 @@ class MockConnection(mock.Mock):
|
||||
class BaseTestCase(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.backend = dummy.DummyBackend.start(audio=None).proxy()
|
||||
self.core = core.Core.start(backend=self.backend).proxy()
|
||||
self.core = core.Core.start(backends=[self.backend]).proxy()
|
||||
|
||||
self.connection = MockConnection()
|
||||
self.session = session.MpdSession(self.connection, core=self.core)
|
||||
|
||||
@ -21,7 +21,7 @@ STOPPED = PlaybackState.STOPPED
|
||||
class StatusHandlerTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.backend = dummy.DummyBackend.start(audio=None).proxy()
|
||||
self.core = core.Core.start(backend=self.backend).proxy()
|
||||
self.core = core.Core.start(backends=[self.backend]).proxy()
|
||||
self.dispatcher = dispatcher.MpdDispatcher(core=self.core)
|
||||
self.context = self.dispatcher.context
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ class PlayerInterfaceTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
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.core = core.Core.start(backends=[self.backend]).proxy()
|
||||
self.mpris = objects.MprisObject(core=self.core)
|
||||
|
||||
def tearDown(self):
|
||||
|
||||
@ -20,7 +20,7 @@ class RootInterfaceTest(unittest.TestCase):
|
||||
objects.exit_process = mock.Mock()
|
||||
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.core = core.Core.start(backends=[self.backend]).proxy()
|
||||
self.mpris = objects.MprisObject(core=self.core)
|
||||
|
||||
def tearDown(self):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user