mirror of
https://github.com/badaix/snapcast.git
synced 2025-06-13 16:21:47 +02:00
Refactor play/pause
This commit is contained in:
parent
65d1e3873a
commit
62d2d78584
1 changed files with 15 additions and 8 deletions
|
@ -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:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue