diff --git a/htdocs/settings.html b/htdocs/settings.html index 5e4120c..18dcdc3 100644 --- a/htdocs/settings.html +++ b/htdocs/settings.html @@ -24,6 +24,9 @@ ${header}
Bookmark editor
+
+ Demodulation and decoding +
Background decoding
diff --git a/owrx/controllers/settings/decoding.py b/owrx/controllers/settings/decoding.py new file mode 100644 index 0000000..a40edd9 --- /dev/null +++ b/owrx/controllers/settings/decoding.py @@ -0,0 +1,76 @@ +from owrx.controllers.settings import SettingsFormController, Section +from owrx.form import CheckboxInput, NumberInput, DropdownInput, Js8ProfileCheckboxInput, MultiCheckboxInput, Option +from owrx.form.wfm import WfmTauValues +from owrx.form.wsjt import Q65ModeMatrix +from owrx.wsjt import Fst4Profile, Fst4wProfile + + +class DecodingSettingsController(SettingsFormController): + def getTitle(self): + return "Demodulation and decoding" + + def getSections(self): + return [ + Section( + "Demodulator settings", + NumberInput( + "squelch_auto_margin", + "Auto-Squelch threshold", + infotext="Offset to be added to the current signal level when using the auto-squelch", + append="dB", + ), + DropdownInput( + "wfm_deemphasis_tau", + "Tau setting for WFM (broadcast FM) deemphasis", + WfmTauValues, + infotext='See ' + + "this Wikipedia article for more information", + ), + ), + Section( + "Digital voice", + NumberInput( + "digital_voice_unvoiced_quality", + "Quality of unvoiced sounds in synthesized voice", + infotext="Determines the quality, and thus the cpu usage, for the ambe codec used by digital voice" + + "modes.
If you're running on a Raspi (up to 3B+) you should leave this set at 1", + ), + CheckboxInput( + "digital_voice_dmr_id_lookup", + "DMR id lookup", + checkboxText="Enable lookup of DMR ids in the radioid database to show callsigns and names", + ), + ), + Section( + "Digimodes", + CheckboxInput("digimodes_enable", "", checkboxText="Enable Digimodes"), + NumberInput("digimodes_fft_size", "Digimodes FFT size", append="bins"), + ), + Section( + "Decoding settings", + NumberInput("decoding_queue_workers", "Number of decoding workers"), + NumberInput("decoding_queue_length", "Maximum length of decoding job queue"), + NumberInput( + "wsjt_decoding_depth", + "Default WSJT decoding depth", + infotext="A higher decoding depth will allow more results, but will also consume more cpu", + ), + NumberInput( + "js8_decoding_depth", + "Js8Call decoding depth", + infotext="A higher decoding depth will allow more results, but will also consume more cpu", + ), + Js8ProfileCheckboxInput("js8_enabled_profiles", "Js8Call enabled modes"), + MultiCheckboxInput( + "fst4_enabled_intervals", + "Enabled FST4 intervals", + [Option(v, "{}s".format(v)) for v in Fst4Profile.availableIntervals], + ), + MultiCheckboxInput( + "fst4w_enabled_intervals", + "Enabled FST4W intervals", + [Option(v, "{}s".format(v)) for v in Fst4wProfile.availableIntervals], + ), + Q65ModeMatrix("q65_enabled_combinations", "Enabled Q65 Mode combinations"), + ), + ] diff --git a/owrx/controllers/settings/general.py b/owrx/controllers/settings/general.py index 827bc4d..86f0340 100644 --- a/owrx/controllers/settings/general.py +++ b/owrx/controllers/settings/general.py @@ -6,18 +6,11 @@ from owrx.form import ( FloatInput, LocationInput, TextAreaInput, - CheckboxInput, DropdownInput, Option, - ServicesCheckboxInput, - Js8ProfileCheckboxInput, - MultiCheckboxInput, ) from owrx.form.receiverid import ReceiverKeysConverter -from owrx.form.wfm import WfmTauValues -from owrx.form.wsjt import Q65ModeMatrix from owrx.form.gfx import AvatarInput, TopPhotoInput -from owrx.wsjt import Fst4Profile, Fst4wProfile import shutil import os from glob import glob @@ -117,27 +110,6 @@ class GeneralSettingsController(SettingsFormController): ], ), ), - Section( - "Digimodes", - CheckboxInput("digimodes_enable", "", checkboxText="Enable Digimodes"), - NumberInput("digimodes_fft_size", "Digimodes FFT size", append="bins"), - ), - Section( - "Demodulator settings", - NumberInput( - "squelch_auto_margin", - "Auto-Squelch threshold", - infotext="Offset to be added to the current signal level when using the auto-squelch", - append="dB", - ), - DropdownInput( - "wfm_deemphasis_tau", - "Tau setting for WFM (broadcast FM) deemphasis", - WfmTauValues, - infotext='See ' - + "this Wikipedia article for more information", - ), - ), Section( "Display settings", NumberInput( @@ -146,20 +118,6 @@ class GeneralSettingsController(SettingsFormController): infotext="Number of decimal digits to show on the frequency display", ), ), - Section( - "Digital voice", - NumberInput( - "digital_voice_unvoiced_quality", - "Quality of unvoiced sounds in synthesized voice", - infotext="Determines the quality, and thus the cpu usage, for the ambe codec used by digital voice" - + "modes.
If you're running on a Raspi (up to 3B+) you should leave this set at 1", - ), - CheckboxInput( - "digital_voice_dmr_id_lookup", - "DMR id lookup", - checkboxText="Enable lookup of DMR ids in the radioid database to show callsigns and names", - ), - ), Section( "Map settings", TextInput( @@ -176,33 +134,6 @@ class GeneralSettingsController(SettingsFormController): append="s", ), ), - Section( - "Decoding settings", - NumberInput("decoding_queue_workers", "Number of decoding workers"), - NumberInput("decoding_queue_length", "Maximum length of decoding job queue"), - NumberInput( - "wsjt_decoding_depth", - "Default WSJT decoding depth", - infotext="A higher decoding depth will allow more results, but will also consume more cpu", - ), - NumberInput( - "js8_decoding_depth", - "Js8Call decoding depth", - infotext="A higher decoding depth will allow more results, but will also consume more cpu", - ), - Js8ProfileCheckboxInput("js8_enabled_profiles", "Js8Call enabled modes"), - MultiCheckboxInput( - "fst4_enabled_intervals", - "Enabled FST4 intervals", - [Option(v, "{}s".format(v)) for v in Fst4Profile.availableIntervals], - ), - MultiCheckboxInput( - "fst4w_enabled_intervals", - "Enabled FST4W intervals", - [Option(v, "{}s".format(v)) for v in Fst4wProfile.availableIntervals], - ), - Q65ModeMatrix("q65_enabled_combinations", "Enabled Q65 Mode combinations"), - ), ] def handle_image(self, data, image_id): diff --git a/owrx/http.py b/owrx/http.py index 685b988..7e95c8e 100644 --- a/owrx/http.py +++ b/owrx/http.py @@ -9,6 +9,7 @@ from owrx.controllers.settings.general import GeneralSettingsController from owrx.controllers.settings.sdr import SdrSettingsController from owrx.controllers.settings.reporting import ReportingController from owrx.controllers.settings.backgrounddecoding import BackgroundDecodingController +from owrx.controllers.settings.decoding import DecodingSettingsController from owrx.controllers.bookmarks import BookmarksController from owrx.controllers.session import SessionController from owrx.controllers.profile import ProfileController @@ -131,6 +132,10 @@ class Router(object): method="POST", options={"action": "processFormData"}, ), + StaticRoute("/settings/decoding", DecodingSettingsController), + StaticRoute( + "/settings/decoding", DecodingSettingsController, method="POST", options={"action": "processFormData"} + ), StaticRoute("/login", SessionController, options={"action": "loginAction"}), StaticRoute("/login", SessionController, method="POST", options={"action": "processLoginAction"}), StaticRoute("/logout", SessionController, options={"action": "logoutAction"}),