From c7a5c06624f4bacc3d552b5ebba457e120e46e16 Mon Sep 17 00:00:00 2001 From: Stefan Biereigel Date: Mon, 25 Feb 2019 20:07:20 +0100 Subject: [PATCH] handle ssbmod/ssbmodgui USB/LSB convention inconsistency --- plugins/channeltx/modssb/ssbmodgui.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/plugins/channeltx/modssb/ssbmodgui.cpp b/plugins/channeltx/modssb/ssbmodgui.cpp index b7d41b0c6..5c177fcfd 100644 --- a/plugins/channeltx/modssb/ssbmodgui.cpp +++ b/plugins/channeltx/modssb/ssbmodgui.cpp @@ -120,8 +120,14 @@ bool SSBModGUI::handleMessage(const Message& message) } else if (SSBMod::MsgConfigureSSBMod::match(message)) { + SSBModSettings mod_settings; // different USB/LSB convention between modulator and GUI const SSBMod::MsgConfigureSSBMod& cfg = (SSBMod::MsgConfigureSSBMod&) message; - m_settings = cfg.getSettings(); + mod_settings = cfg.getSettings(); + if (mod_settings.m_usb == false) { + mod_settings.m_bandwidth = -mod_settings.m_bandwidth; + mod_settings.m_lowCutoff = -mod_settings.m_lowCutoff; + } + m_settings = mod_settings; blockApplySettings(true); displaySettings(); blockApplySettings(false); @@ -497,7 +503,17 @@ void SSBModGUI::applySettings(bool force) 48000, m_settings.m_inputFrequencyOffset); m_ssbMod->getInputMessageQueue()->push(msgChan); - SSBMod::MsgConfigureSSBMod *msg = SSBMod::MsgConfigureSSBMod::create(m_settings, force); + SSBModSettings mod_settings; // different USB/LSB convention between modulator and GUI + mod_settings = m_settings; + if (mod_settings.m_bandwidth > 0) { + mod_settings.m_usb = true; + } else { + mod_settings.m_bandwidth = -mod_settings.m_bandwidth; + mod_settings.m_lowCutoff = -mod_settings.m_lowCutoff; + mod_settings.m_usb = false; + } + + SSBMod::MsgConfigureSSBMod *msg = SSBMod::MsgConfigureSSBMod::create(mod_settings, force); m_ssbMod->getInputMessageQueue()->push(msg); } }