From fe39c2712dfe2e67b56c087d1a9ff3115b25af06 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Tue, 26 Nov 2019 20:10:26 +0100 Subject: [PATCH] keep the output_rate on sdr change --- htdocs/openwebrx.js | 7 +++++-- owrx/connection.py | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/htdocs/openwebrx.js b/htdocs/openwebrx.js index 8d13b43..93d3c2c 100644 --- a/htdocs/openwebrx.js +++ b/htdocs/openwebrx.js @@ -1419,10 +1419,13 @@ function on_ws_opened() { } reconnect_timeout = false; ws.send(JSON.stringify({ - "type": "dspcontrol", - "action": "start", + "type": "connectionproperties", "params": {"output_rate": audioEngine.getOutputRate()} })); + ws.send(JSON.stringify({ + "type": "dspcontrol", + "action": "start" + })); } var was_error = 0; diff --git a/owrx/connection.py b/owrx/connection.py index af98964..a6e1624 100644 --- a/owrx/connection.py +++ b/owrx/connection.py @@ -79,6 +79,7 @@ class OpenWebRxReceiverClient(Client): self.dsp = None self.sdr = None self.configSub = None + self.connectionProperties = {} ClientRegistry.getSharedInstance().addClient(self) @@ -123,17 +124,23 @@ class OpenWebRxReceiverClient(Client): params = message["params"] self.setDspProperties(params) - if message["type"] == "config": + elif message["type"] == "config": if "params" in message: self.setParams(message["params"]) - if message["type"] == "setsdr": + elif message["type"] == "setsdr": if "params" in message: self.setSdr(message["params"]["sdr"]) - if message["type"] == "selectprofile": + elif message["type"] == "selectprofile": if "params" in message and "profile" in message["params"]: profile = message["params"]["profile"].split("|") self.setSdr(profile[0]) self.sdr.activateProfile(profile[1]) + elif message["type"] == "connectionproperties": + if "params" in message: + self.connectionProperties = message["params"] + if self.dsp: + self.setDspProperties(self.connectionProperties) + else: logger.warning("received message without type: {0}".format(message)) @@ -161,6 +168,8 @@ class OpenWebRxReceiverClient(Client): self.startDsp() # send initial config + self.setDspProperties(self.connectionProperties) + configProps = ( self.sdr.getProps() .collect(*OpenWebRxReceiverClient.config_keys)