Refactor play/pause

This commit is contained in:
badaix 2022-07-19 12:01:25 +02:00
parent 65d1e3873a
commit 62d2d78584

View file

@ -155,6 +155,14 @@ class LibrespotControl(object):
return metadata return metadata
def updateProperties(self):
res = self.send_request('player/current')
if res.status_code / 100 == 2:
self._metadata = self.getMetaData(res.text)
self._properties['metadata'] = self._metadata
send({"jsonrpc": "2.0", "method": "Plugin.Stream.Player.Properties",
"params": self._properties})
def on_ws_message(self, ws, message): def on_ws_message(self, ws, message):
# TODO: error handling # TODO: error handling
logger.debug(f'Snapcast RPC websocket message received: {message}') logger.debug(f'Snapcast RPC websocket message received: {message}')
@ -173,14 +181,9 @@ class LibrespotControl(object):
if 'event' in jmsg: if 'event' in jmsg:
event = jmsg['event'] event = jmsg['event']
logger.info(f"Event: {event}, msg: {jmsg}") logger.info(f"Event: {event}, msg: {jmsg}")
if event == 'metadataAvailable': # if event == 'metadataAvailable':
# 'trackChanged': # 'trackChanged':
res = self.send_request('player/current') self.updateProperties()
if res.status_code / 100 == 2:
self._metadata = self.getMetaData(res.text)
self._properties['metadata'] = self._metadata
send({"jsonrpc": "2.0", "method": "Plugin.Stream.Player.Properties",
"params": self._properties})
def on_ws_error(self, ws, error): def on_ws_error(self, ws, error):
logger.error("Snapcast RPC websocket error") logger.error("Snapcast RPC websocket error")
@ -229,10 +232,12 @@ class LibrespotControl(object):
self.send_request("player/pause") self.send_request("player/pause")
self._properties['playbackStatus'] = 'paused' self._properties['playbackStatus'] = 'paused'
elif command == 'playPause': elif command == 'playPause':
self.send_request("player/play-pause") # self.send_request("player/play-pause")
if self._properties['playbackStatus'] == 'playing': if self._properties['playbackStatus'] == 'playing':
self.send_request("player/pause")
self._properties['playbackStatus'] = 'paused' self._properties['playbackStatus'] = 'paused'
else: else:
self.send_request("player/resume")
self._properties['playbackStatus'] = 'playing' self._properties['playbackStatus'] = 'playing'
elif command == 'stop': elif command == 'stop':
self.send_request("player/pause") self.send_request("player/pause")
@ -247,6 +252,7 @@ class LibrespotControl(object):
logger.debug("todo: not implemented") logger.debug("todo: not implemented")
# self.send_request( # self.send_request(
# "core.playback.get_time_position", None, self.onGetTimePositionResponse) # "core.playback.get_time_position", None, self.onGetTimePositionResponse)
# self.updateProperties()
elif cmd == 'SetProperty': elif cmd == 'SetProperty':
property = request['params'] property = request['params']
logger.debug(f'SetProperty: {property}') logger.debug(f'SetProperty: {property}')
@ -272,6 +278,7 @@ class LibrespotControl(object):
# self._properties['mute'] = False # self._properties['mute'] = False
# self.send_request("core.mixer.set_mute", { # self.send_request("core.mixer.set_mute", {
# "mute": property['mute']}) # "mute": property['mute']})
# self.updateProperties()
elif cmd == 'GetProperties': elif cmd == 'GetProperties':
res = self.send_request('player/current') res = self.send_request('player/current')
# if res.status_code / 100 == 2: # if res.status_code / 100 == 2: