From ef950a5e15c97eb1445a283afbc6760eb2ec7f73 Mon Sep 17 00:00:00 2001 From: Alexandre Petitjean Date: Tue, 20 Jan 2015 20:01:54 +0100 Subject: [PATCH] Adds audio in Core --- mopidy/commands.py | 6 +++--- mopidy/core/actor.py | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/mopidy/commands.py b/mopidy/commands.py index fecabe98..d9b4ce0e 100644 --- a/mopidy/commands.py +++ b/mopidy/commands.py @@ -279,7 +279,7 @@ class RootCommand(Command): mixer = self.start_mixer(config, mixer_class) audio = self.start_audio(config, mixer) backends = self.start_backends(config, backend_classes, audio) - core = self.start_core(mixer, backends) + core = self.start_core(mixer, backends, audio) self.start_frontends(config, frontend_classes, core) loop.run() except (exceptions.BackendError, @@ -360,9 +360,9 @@ class RootCommand(Command): return backends - def start_core(self, mixer, backends): + def start_core(self, mixer, backends, audio): logger.info('Starting Mopidy core') - return Core.start(mixer=mixer, backends=backends).proxy() + return Core.start(mixer=mixer, backends=backends, audio=audio).proxy() def start_frontends(self, config, frontend_classes, core): logger.info( diff --git a/mopidy/core/actor.py b/mopidy/core/actor.py index dbcfc9a1..60de442a 100644 --- a/mopidy/core/actor.py +++ b/mopidy/core/actor.py @@ -42,7 +42,7 @@ class Core( """The tracklist controller. An instance of :class:`mopidy.core.TracklistController`.""" - def __init__(self, mixer=None, backends=None): + def __init__(self, mixer=None, backends=None, audio=None): super(Core, self).__init__() self.backends = Backends(backends) @@ -59,6 +59,8 @@ class Core( self.tracklist = TracklistController(core=self) + self.audio = audio + def get_uri_schemes(self): futures = [b.uri_schemes for b in self.backends] results = pykka.get_all(futures) @@ -105,20 +107,18 @@ class Core( CoreListener.send('mute_changed', mute=mute) def tags_changed(self, tags): - # Should return only one audio instance - audios = pykka.ActorRegistry.get_by_class(audio.Audio) - # Validity checks - if audios is None or len(audios) != 1: + if not self.audio: return if self.playback.current_tl_track is None: return - audio_proxy = audios[0].proxy() + tags = self.audio.get_current_tags().get() + if not tags: + return # Request available metadata and set a track - future = audio_proxy.get_current_tags() - mt_track = convert_tags_to_track(future.get()) + mt_track = convert_tags_to_track(tags) # Merge current_tl_track with metadata in current_md_track c_track = self.playback.current_tl_track.track