diff --git a/plugins/channelrx/demodssb/ssbdemod.cpp b/plugins/channelrx/demodssb/ssbdemod.cpp index 80fa424a1..1a39b0c8e 100644 --- a/plugins/channelrx/demodssb/ssbdemod.cpp +++ b/plugins/channelrx/demodssb/ssbdemod.cpp @@ -84,9 +84,23 @@ void SSBDemod::configure(MessageQueue* messageQueue, bool audioBinaural, bool audioFlipChannel, bool dsb, - bool audioMute) + bool audioMute, + bool agc, + int agcTimeLog2, + int agcPowerThreshold) { - Message* cmd = MsgConfigureSSBDemod::create(Bandwidth, LowCutoff, volume, spanLog2, audioBinaural, audioFlipChannel, dsb, audioMute); + Message* cmd = MsgConfigureSSBDemod::create( + Bandwidth, + LowCutoff, + volume, + spanLog2, + audioBinaural, + audioFlipChannel, + dsb, + audioMute, + agc, + agcTimeLog2, + agcPowerThreshold); messageQueue->push(cmd); } diff --git a/plugins/channelrx/demodssb/ssbdemod.h b/plugins/channelrx/demodssb/ssbdemod.h index 80a2ee004..b8f1b6ace 100644 --- a/plugins/channelrx/demodssb/ssbdemod.h +++ b/plugins/channelrx/demodssb/ssbdemod.h @@ -43,7 +43,10 @@ public: bool audioBinaural, bool audioFlipChannels, bool dsb, - bool audioMute); + bool audioMute, + bool agc, + int agcTimeLog2, + int agcPowerThreshold); virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly); virtual void start(); @@ -76,6 +79,9 @@ private: bool getAudioFlipChannels() const { return m_audioFlipChannels; } bool getDSB() const { return m_dsb; } bool getAudioMute() const { return m_audioMute; } + bool getAGC() const { return m_agc; } + int getAGCTimeLog2() { return m_agcTimeLog2; } + int getAGCPowerThershold() { return m_agcPowerThreshold; } static MsgConfigureSSBDemod* create(Real Bandwidth, Real LowCutoff, @@ -84,9 +90,23 @@ private: bool audioBinaural, bool audioFlipChannels, bool dsb, - bool audioMute) + bool audioMute, + bool agc, + int agcTimeLog2, + int agcPowerThreshold) { - return new MsgConfigureSSBDemod(Bandwidth, LowCutoff, volume, spanLog2, audioBinaural, audioFlipChannels, dsb, audioMute); + return new MsgConfigureSSBDemod( + Bandwidth, + LowCutoff, + volume, + spanLog2, + audioBinaural, + audioFlipChannels, + dsb, + audioMute, + agc, + agcTimeLog2, + agcPowerThreshold); } private: @@ -98,6 +118,9 @@ private: bool m_audioFlipChannels; bool m_dsb; bool m_audioMute; + bool m_agc; + int m_agcTimeLog2; + int m_agcPowerThreshold; MsgConfigureSSBDemod(Real Bandwidth, Real LowCutoff, @@ -106,7 +129,10 @@ private: bool audioBinaural, bool audioFlipChannels, bool dsb, - bool audioMute) : + bool audioMute, + bool agc, + int agcTimeLog2, + int agcPowerThreshold) : Message(), m_Bandwidth(Bandwidth), m_LowCutoff(LowCutoff), @@ -115,7 +141,10 @@ private: m_audioBinaural(audioBinaural), m_audioFlipChannels(audioFlipChannels), m_dsb(dsb), - m_audioMute(audioMute) + m_audioMute(audioMute), + m_agc(agc), + m_agcTimeLog2(agcTimeLog2), + m_agcPowerThreshold(agcPowerThreshold) { } }; diff --git a/plugins/channelrx/demodssb/ssbdemodgui.cpp b/plugins/channelrx/demodssb/ssbdemodgui.cpp index d9c384312..222cdf0c7 100644 --- a/plugins/channelrx/demodssb/ssbdemodgui.cpp +++ b/plugins/channelrx/demodssb/ssbdemodgui.cpp @@ -468,7 +468,10 @@ void SSBDemodGUI::applySettings() m_audioBinaural, m_audioFlipChannels, m_dsb, - ui->audioMute->isChecked()); + ui->audioMute->isChecked(), + ui->agc->isChecked(), + ui->agcTimeLog2->value(), + ui->agcPowerThreshold->value()); } } diff --git a/plugins/channelrx/demodssb/ssbdemodgui.h b/plugins/channelrx/demodssb/ssbdemodgui.h index d4b7394b1..56d732cd5 100644 --- a/plugins/channelrx/demodssb/ssbdemodgui.h +++ b/plugins/channelrx/demodssb/ssbdemodgui.h @@ -48,6 +48,9 @@ private slots: void on_BW_valueChanged(int value); void on_lowCut_valueChanged(int value); void on_volume_valueChanged(int value); + void on_agc_stateChanged(int state); + void on_agcTimeLog2_valueChanged(int value); + void on_agcPowerThreshold_valueChanged(int value); void on_audioMute_toggled(bool checked); void on_spanLog2_valueChanged(int value); void onWidgetRolled(QWidget* widget, bool rollDown); diff --git a/plugins/channelrx/demodssb/ssbdemodgui.ui b/plugins/channelrx/demodssb/ssbdemodgui.ui index df881ecca..c9125c99b 100644 --- a/plugins/channelrx/demodssb/ssbdemodgui.ui +++ b/plugins/channelrx/demodssb/ssbdemodgui.ui @@ -459,7 +459,7 @@ - + AGC @@ -511,6 +511,18 @@ AGC power threshold (dB) + + -99 + + + 0 + + + 1 + + + -40 +