From 6bb26de98f62a206c3ec670bf7b209541e2e8eb7 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Wed, 17 Jan 2024 23:40:37 +0100 Subject: [PATCH] rework the way soapy settings are built --- owrx/source/soapy.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/owrx/source/soapy.py b/owrx/source/soapy.py index 38b5e88b..59e9317a 100644 --- a/owrx/source/soapy.py +++ b/owrx/source/soapy.py @@ -74,13 +74,20 @@ class SoapyConnectorSource(ConnectorSource, metaclass=ABCMeta): def onPropertyChange(self, changes): mappings = self.getSoapySettingsMappings() - settings = {} + affectsSettings = False + forward = {} for prop, value in changes.items(): if prop in mappings.keys(): - settings[mappings[prop]] = self.convertSoapySettingsValue(value) - if settings: - changes["settings"] = ",".join("{0}={1}".format(k, v) for k, v in settings.items()) - super().onPropertyChange(changes) + affectsSettings = True + else: + forward[prop] = value + if affectsSettings: + settings = {} + for owrx_key, soapy_key in mappings.items(): + if owrx_key in self.props: + settings[soapy_key] = self.convertSoapySettingsValue(self.props[owrx_key]) + forward["settings"] = ",".join("{0}={1}".format(k, v) for k, v in settings.items()) + super().onPropertyChange(forward) class SoapyConnectorDeviceDescription(ConnectorDeviceDescription):