Add track_info to audio service connection

pull/433/head
Åke Forslund 2016-12-09 16:54:25 +01:00
parent f596992a88
commit 717c6fa49b
2 changed files with 22 additions and 1 deletions

View File

@ -1,12 +1,25 @@
import time
from mycroft.messagebus.message import Message
class AudioService():
def __init__(self, emitter):
self.emitter = emitter
self.emitter.on('MycroftAudioServiceTrackInfoReply', self._track_info)
self.info = None
def _track_info(self, message=None):
self.info = message.metadata
def play(self, tracks=[], utterance=''):
self.emitter.emit(Message('MycroftAudioServicePlay',
metadata={'tracks': tracks,
'utterance': utterance}))
def track_info(self):
self.info = None
self.emitter.emit(Message('MycroftAudioServiceTrackInfo'))
while self.info is None:
time.sleep(0.1)
return self.info

View File

@ -83,7 +83,7 @@ class Mpg123Service():
pass
def track_info(self):
pass
return {}
class PlaybackControlSkill(MediaSkill):
@ -108,6 +108,7 @@ class PlaybackControlSkill(MediaSkill):
logger.info('starting Mpg123 service')
self.service.append(Mpg123Service(self.emitter))
self.emitter.on('MycroftAudioServicePlay', self._play)
self.emitter.on('MycroftAudioServiceTrackInfo', self._track_info)
def play(self, tracks):
logger.info('play')
@ -183,6 +184,13 @@ class PlaybackControlSkill(MediaSkill):
self.speak_dialog('currently_playing', data)
time.sleep(6)
def _track_info(self, message):
if self.current:
track_info = self.current.track_info
else:
track_info = {}
self.emitter.emit(Message('MycroftAudioServiceTrackInfoReply',
metadata=track_info))
def create_skill():
return PlaybackControlSkill()