From 811d95c7bc9b56367f17b9d5cb23389f86e0f817 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Mon, 19 Sep 2022 18:46:11 +0200 Subject: [PATCH 1/4] fifisdr fixes --- CHANGELOG.md | 4 ++++ debian/changelog | 7 +++++++ owrx/source/__init__.py | 5 ++++- owrx/source/direct.py | 16 ++++++++++++---- owrx/source/fifi_sdr.py | 14 ++++++++++++++ 5 files changed, 41 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 962d2cd..19dd2d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +**1.2.1** +- FifiSDR support fixed (pipeline formats now line up correctly) +- Added "Device" input for FifiSDR devices for sound card selection + **1.2.0** - Major rewrite of all demodulation components to make use of the new csdr/pycsdr and digiham/pydigiham demodulator modules diff --git a/debian/changelog b/debian/changelog index 0425bbe..f5db2fe 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +openwebrx (1.2.1) bullseye jammy; urgency=low + + * FifiSDR support fixed (pipeline formats now line up correctly) + * Added "Device" input for FifiSDR devices for sound card selection + + -- Jakob Ketterl Thu, 16 Jun 2022 21:47:00 +0000 + openwebrx (1.2.0) bullseye jammy; urgency=low * Major rewrite of all demodulation components to make use of the new diff --git a/owrx/source/__init__.py b/owrx/source/__init__.py index ae790be..618d773 100644 --- a/owrx/source/__init__.py +++ b/owrx/source/__init__.py @@ -249,10 +249,13 @@ class SdrSource(ABC): def getPort(self): return self.port + def _getTcpSourceFormat(self): + return Format.COMPLEX_FLOAT + def _getTcpSource(self): with self.modificationLock: if self.tcpSource is None: - self.tcpSource = TcpSource(self.port, Format.COMPLEX_FLOAT) + self.tcpSource = TcpSource(self.port, self._getTcpSourceFormat()) return self.tcpSource def getBuffer(self): diff --git a/owrx/source/direct.py b/owrx/source/direct.py index e4a5eaf..e8c2025 100644 --- a/owrx/source/direct.py +++ b/owrx/source/direct.py @@ -11,6 +11,10 @@ logger = logging.getLogger(__name__) class DirectSource(SdrSource, metaclass=ABCMeta): + def __init__(self, id, props): + self._conversion = None + super().__init__(id, props) + def onPropertyChange(self, changes): logger.debug("restarting sdr source due to property changes: {0}".format(changes)) self.stop() @@ -48,6 +52,10 @@ class DirectSource(SdrSource, metaclass=ABCMeta): def getFormatConversion(self) -> Optional[Chain]: return None + def _getTcpSourceFormat(self): + conversion = self.getFormatConversion() + return Format.COMPLEX_FLOAT if conversion is None else conversion.getInputFormat() + # override this in subclasses, if necessary def sleepOnRestart(self): pass @@ -57,12 +65,12 @@ class DirectSource(SdrSource, metaclass=ABCMeta): source = self._getTcpSource() buffer = Buffer(source.getOutputFormat()) source.setWriter(buffer) - conversion = self.getFormatConversion() - if conversion is not None: - conversion.setReader(buffer.getReader()) + self._conversion = self.getFormatConversion() + if self._conversion is not None: + self._conversion.setReader(buffer.getReader()) # this one must be COMPLEX_FLOAT buffer = Buffer(Format.COMPLEX_FLOAT) - conversion.setWriter(buffer) + self._conversion.setWriter(buffer) self.buffer = buffer return self.buffer diff --git a/owrx/source/fifi_sdr.py b/owrx/source/fifi_sdr.py index 660c65f..e3999b3 100644 --- a/owrx/source/fifi_sdr.py +++ b/owrx/source/fifi_sdr.py @@ -4,6 +4,8 @@ from subprocess import Popen from csdr.chain import Chain from pycsdr.modules import Convert, Gain from pycsdr.types import Format +from typing import List +from owrx.form.input import Input, TextInput import logging @@ -49,3 +51,15 @@ class FifiSdrDeviceDescription(DirectSourceDeviceDescription): def supportsPpm(self): # not currently mapped, and it's unclear how this should be sent to the device return False + + def getInputs(self) -> List[Input]: + return super().getInputs() + [ + TextInput( + "device", + "Device identifier", + infotext="Alsa audio device identifier", + ), + ] + + def getDeviceOptionalKeys(self): + return super().getDeviceOptionalKeys() + ["device"] From 94269e211e806ce14f820c869cc7b6eb040ce4f1 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Tue, 20 Sep 2022 18:01:43 +0200 Subject: [PATCH 2/4] fix changelog timestamp --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index f5db2fe..57ddc0d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,7 +3,7 @@ openwebrx (1.2.1) bullseye jammy; urgency=low * FifiSDR support fixed (pipeline formats now line up correctly) * Added "Device" input for FifiSDR devices for sound card selection - -- Jakob Ketterl Thu, 16 Jun 2022 21:47:00 +0000 + -- Jakob Ketterl Tue, 20 Sep 2022 16:01:00 +0000 openwebrx (1.2.0) bullseye jammy; urgency=low From 6c01d484934e3204ab4610b35ef8c83acfbdb863 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Tue, 20 Sep 2022 18:06:03 +0200 Subject: [PATCH 3/4] update version --- owrx/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/owrx/version.py b/owrx/version.py index a939c77..063c62f 100644 --- a/owrx/version.py +++ b/owrx/version.py @@ -1,5 +1,5 @@ from distutils.version import LooseVersion -_versionstring = "1.2.0" +_versionstring = "1.2.1" looseversion = LooseVersion(_versionstring) openwebrx_version = "v{0}".format(looseversion) From e20d94e24129fa2326ced5e6eb318b14bc0ae069 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Tue, 20 Sep 2022 18:51:09 +0200 Subject: [PATCH 4/4] update dependencies for docker --- docker/scripts/install-owrx-tools.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/scripts/install-owrx-tools.sh b/docker/scripts/install-owrx-tools.sh index 7292a50..24217f2 100755 --- a/docker/scripts/install-owrx-tools.sh +++ b/docker/scripts/install-owrx-tools.sh @@ -31,11 +31,11 @@ popd rm -rf js8py git clone https://github.com/jketterl/csdr.git -cmakebuild csdr 0.18.0 +cmakebuild csdr 0.18.1 git clone https://github.com/jketterl/pycsdr.git cd pycsdr -git checkout 0.18.0 +git checkout 0.18.1 ./setup.py install install_headers cd .. rm -rf pycsdr