Adds audio in Core

This commit is contained in:
Alexandre Petitjean 2015-01-20 20:01:54 +01:00
parent eeed2973f1
commit ef950a5e15
2 changed files with 11 additions and 11 deletions

View File

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

View File

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