diff --git a/plugins/channelrx/demodfreedv/freedvdemod.cpp b/plugins/channelrx/demodfreedv/freedvdemod.cpp index 8b22fa3ac..f8a8c8a4b 100644 --- a/plugins/channelrx/demodfreedv/freedvdemod.cpp +++ b/plugins/channelrx/demodfreedv/freedvdemod.cpp @@ -454,6 +454,10 @@ void FreeDVDemod::applyFreeDVMode(FreeDVDemodSettings::FreeDVMode mode) switch(mode) { + case FreeDVDemodSettings::FreeDVMode700C: + fdv_mode = FREEDV_MODE_700C; + m_scaleFactor = SDR_RX_SCALEF / 3.2f; + break; case FreeDVDemodSettings::FreeDVMode700D: fdv_mode = FREEDV_MODE_700D; m_scaleFactor = SDR_RX_SCALEF / 3.2f; diff --git a/plugins/channelrx/demodfreedv/freedvdemodgui.ui b/plugins/channelrx/demodfreedv/freedvdemodgui.ui index 0408f5ae1..9d3ec4217 100644 --- a/plugins/channelrx/demodfreedv/freedvdemodgui.ui +++ b/plugins/channelrx/demodfreedv/freedvdemodgui.ui @@ -192,6 +192,11 @@ 800XA + + + 700C + + 700D diff --git a/plugins/channelrx/demodfreedv/freedvdemodsettings.cpp b/plugins/channelrx/demodfreedv/freedvdemodsettings.cpp index 8cd2792df..381930b48 100644 --- a/plugins/channelrx/demodfreedv/freedvdemodsettings.cpp +++ b/plugins/channelrx/demodfreedv/freedvdemodsettings.cpp @@ -162,9 +162,10 @@ int FreeDVDemodSettings::getHiCutoff(FreeDVMode freeDVMode) case FreeDVMode800XA: // C4FM NB return 2400.0; break; + case FreeDVMode700C: // OFDM case FreeDVMode700D: // OFDM case FreeDVMode1600: // OFDM - return 2200.0; + return 2400.0; break; case FreeDVMode2400A: // C4FM WB default: @@ -180,9 +181,10 @@ int FreeDVDemodSettings::getLowCutoff(FreeDVMode freeDVMode) case FreeDVMode800XA: // C4FM NB return 400.0; break; + case FreeDVMode700C: // OFDM case FreeDVMode700D: // OFDM case FreeDVMode1600: // OFDM - return 800.0; + return 600.0; break; case FreeDVMode2400A: // C4FM WB default: diff --git a/plugins/channelrx/demodfreedv/freedvdemodsettings.h b/plugins/channelrx/demodfreedv/freedvdemodsettings.h index 1fe8ef4a9..6da8782ef 100644 --- a/plugins/channelrx/demodfreedv/freedvdemodsettings.h +++ b/plugins/channelrx/demodfreedv/freedvdemodsettings.h @@ -30,7 +30,8 @@ struct FreeDVDemodSettings FreeDVMode2400A, FreeDVMode1600, FreeDVMode800XA, - FreeDVMode700D + FreeDVMode700C, + FreeDVMode700D, } FreeDVMode; qint32 m_inputFrequencyOffset; diff --git a/plugins/channeltx/modfreedv/freedvmod.cpp b/plugins/channeltx/modfreedv/freedvmod.cpp index 0d9ea01d5..2fe60d526 100644 --- a/plugins/channeltx/modfreedv/freedvmod.cpp +++ b/plugins/channeltx/modfreedv/freedvmod.cpp @@ -648,6 +648,10 @@ void FreeDVMod::applyFreeDVMode(FreeDVModSettings::FreeDVMode mode) switch(mode) { + case FreeDVModSettings::FreeDVMode700C: + fdv_mode = FREEDV_MODE_700C; + m_scaleFactor = SDR_TX_SCALEF / 3.2f; + break; case FreeDVModSettings::FreeDVMode700D: fdv_mode = FREEDV_MODE_700D; m_scaleFactor = SDR_TX_SCALEF / 3.2f; diff --git a/plugins/channeltx/modfreedv/freedvmodgui.cpp b/plugins/channeltx/modfreedv/freedvmodgui.cpp index 2b052e2f7..a7628c0cb 100644 --- a/plugins/channeltx/modfreedv/freedvmodgui.cpp +++ b/plugins/channeltx/modfreedv/freedvmodgui.cpp @@ -114,7 +114,7 @@ bool FreeDVModGUI::handleMessage(const Message& message) } else if (DSPConfigureAudio::match(message)) { - qDebug("FreeDVModGUI::handleMessage: DSPConfigureAudio: %d", m_freeDVMod->getAudioSampleRate()); + qDebug("FreeDVModGUI::handleMessage: DSPConfigureAudio: %d", m_freeDVMod->getModemSampleRate()); applyBandwidths(5 - ui->spanLog2->value()); // will update spectrum details with new sample rate return true; } @@ -464,14 +464,11 @@ void FreeDVModGUI::displaySettings() // Prevent uncontrolled triggering of applyBandwidths ui->spanLog2->blockSignals(true); - ui->spanLog2->setValue(5 - m_settings.m_spanLog2); - ui->gaugeInput->setChecked(m_settings.m_gaugeInputElseModem); - - QString s = QString::number(m_freeDVMod->getHiCutoff()/1000.0, 'f', 1); - ui->spanLog2->blockSignals(false); + ui->gaugeInput->setChecked(m_settings.m_gaugeInputElseModem); + // The only one of the four signals triggering applyBandwidths will trigger it once only with all other values // set correctly and therefore validate the settings and apply them to dependent widgets diff --git a/plugins/channeltx/modfreedv/freedvmodgui.ui b/plugins/channeltx/modfreedv/freedvmodgui.ui index 3e5cb1830..7f5f3db0d 100644 --- a/plugins/channeltx/modfreedv/freedvmodgui.ui +++ b/plugins/channeltx/modfreedv/freedvmodgui.ui @@ -405,6 +405,11 @@ 800XA + + + 700C + + 700D diff --git a/plugins/channeltx/modfreedv/freedvmodsettings.cpp b/plugins/channeltx/modfreedv/freedvmodsettings.cpp index 295d3d11d..1eb84be47 100644 --- a/plugins/channeltx/modfreedv/freedvmodsettings.cpp +++ b/plugins/channeltx/modfreedv/freedvmodsettings.cpp @@ -178,9 +178,10 @@ int FreeDVModSettings::getHiCutoff(FreeDVMode freeDVMode) case FreeDVModSettings::FreeDVMode800XA: // C4FM NB return 2400.0; break; + case FreeDVModSettings::FreeDVMode700C: // OFDM case FreeDVModSettings::FreeDVMode700D: // OFDM case FreeDVModSettings::FreeDVMode1600: // OFDM - return 2200.0; + return 2400.0; break; case FreeDVModSettings::FreeDVMode2400A: // C4FM WB default: @@ -196,9 +197,10 @@ int FreeDVModSettings::getLowCutoff(FreeDVMode freeDVMode) case FreeDVModSettings::FreeDVMode800XA: // C4FM NB return 400.0; break; + case FreeDVModSettings::FreeDVMode700C: // OFDM case FreeDVModSettings::FreeDVMode700D: // OFDM case FreeDVModSettings::FreeDVMode1600: // OFDM - return 800.0; + return 600.0; break; case FreeDVModSettings::FreeDVMode2400A: // C4FM WB default: diff --git a/plugins/channeltx/modfreedv/freedvmodsettings.h b/plugins/channeltx/modfreedv/freedvmodsettings.h index 7d0b340b1..3bbfc28f7 100644 --- a/plugins/channeltx/modfreedv/freedvmodsettings.h +++ b/plugins/channeltx/modfreedv/freedvmodsettings.h @@ -39,6 +39,7 @@ struct FreeDVModSettings FreeDVMode2400A, FreeDVMode1600, FreeDVMode800XA, + FreeDVMode700C, FreeDVMode700D } FreeDVMode;