diff --git a/owrx/source/sdrplay.py b/owrx/source/sdrplay.py index a3ae14c..5cf5587 100644 --- a/owrx/source/sdrplay.py +++ b/owrx/source/sdrplay.py @@ -1,6 +1,7 @@ from owrx.source.soapy import SoapyConnectorSource, SoapyConnectorDeviceDescription -from owrx.form import Input +from owrx.form import Input, CheckboxInput, DropdownInput, DropdownEnum from owrx.form.device import BiasTeeInput +from owrx.form.converter import OptionalConverter, EnumConverter from typing import List @@ -22,9 +23,44 @@ class SdrplaySource(SoapyConnectorSource): return "sdrplay" +class IfModeOptions(DropdownEnum): + IFMODE_ZERO_IF = "Zero-IF" + IFMODE_450 = "450kHz" + IFMODE_1620 = "1620kHz" + IFMODE_2048 = "2048kHz" + + def __str__(self): + return self.value + + class SdrplayDeviceDescription(SoapyConnectorDeviceDescription): def getGainStages(self): return ["RFGR", "IFGR"] def getInputs(self) -> List[Input]: - return self.mergeInputs(super().getInputs(), [BiasTeeInput()]) + return self.mergeInputs( + super().getInputs(), + [ + BiasTeeInput(), + CheckboxInput( + "rf_notch", + "", + checkboxText="Enable RF notch filter", + converter=OptionalConverter(defaultFormValue=True), + ), + CheckboxInput( + "dab_notch", + "", + checkboxText="Enable DAB notch filter", + converter=OptionalConverter(defaultFormValue=True), + ), + DropdownInput( + "if_mode", + "IF Mode", + IfModeOptions, + converter=OptionalConverter( + EnumConverter(IfModeOptions), defaultFormValue=IfModeOptions.IFMODE_ZERO_IF.name + ), + ), + ], + )