Add track_info to audio service connection
parent
f596992a88
commit
717c6fa49b
|
@ -1,12 +1,25 @@
|
||||||
|
import time
|
||||||
|
|
||||||
from mycroft.messagebus.message import Message
|
from mycroft.messagebus.message import Message
|
||||||
|
|
||||||
|
|
||||||
class AudioService():
|
class AudioService():
|
||||||
def __init__(self, emitter):
|
def __init__(self, emitter):
|
||||||
self.emitter = 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=''):
|
def play(self, tracks=[], utterance=''):
|
||||||
self.emitter.emit(Message('MycroftAudioServicePlay',
|
self.emitter.emit(Message('MycroftAudioServicePlay',
|
||||||
metadata={'tracks': tracks,
|
metadata={'tracks': tracks,
|
||||||
'utterance': utterance}))
|
'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
|
||||||
|
|
|
@ -83,7 +83,7 @@ class Mpg123Service():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def track_info(self):
|
def track_info(self):
|
||||||
pass
|
return {}
|
||||||
|
|
||||||
|
|
||||||
class PlaybackControlSkill(MediaSkill):
|
class PlaybackControlSkill(MediaSkill):
|
||||||
|
@ -108,6 +108,7 @@ class PlaybackControlSkill(MediaSkill):
|
||||||
logger.info('starting Mpg123 service')
|
logger.info('starting Mpg123 service')
|
||||||
self.service.append(Mpg123Service(self.emitter))
|
self.service.append(Mpg123Service(self.emitter))
|
||||||
self.emitter.on('MycroftAudioServicePlay', self._play)
|
self.emitter.on('MycroftAudioServicePlay', self._play)
|
||||||
|
self.emitter.on('MycroftAudioServiceTrackInfo', self._track_info)
|
||||||
|
|
||||||
def play(self, tracks):
|
def play(self, tracks):
|
||||||
logger.info('play')
|
logger.info('play')
|
||||||
|
@ -183,6 +184,13 @@ class PlaybackControlSkill(MediaSkill):
|
||||||
self.speak_dialog('currently_playing', data)
|
self.speak_dialog('currently_playing', data)
|
||||||
time.sleep(6)
|
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():
|
def create_skill():
|
||||||
return PlaybackControlSkill()
|
return PlaybackControlSkill()
|
||||||
|
|
Loading…
Reference in New Issue