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
+
-