mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-02-03 09:44:01 -05:00
NFM dempd: light audio mute button in green when the squelch is open
This commit is contained in:
parent
17db3e03b6
commit
2c38a8b9a0
@ -36,6 +36,7 @@ NFMDemod::NFMDemod() :
|
|||||||
m_squelchCount(0),
|
m_squelchCount(0),
|
||||||
m_agcAttack(2400),
|
m_agcAttack(2400),
|
||||||
m_audioMute(false),
|
m_audioMute(false),
|
||||||
|
m_squelchOpen(false),
|
||||||
m_afSquelch(2, afSqTones),
|
m_afSquelch(2, afSqTones),
|
||||||
m_audioFifo(4, 48000),
|
m_audioFifo(4, 48000),
|
||||||
m_fmExcursion(2400),
|
m_fmExcursion(2400),
|
||||||
@ -122,7 +123,6 @@ Real angleDist(Real a, Real b)
|
|||||||
|
|
||||||
void NFMDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst)
|
void NFMDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst)
|
||||||
{
|
{
|
||||||
bool squelchOpen;
|
|
||||||
Complex ci;
|
Complex ci;
|
||||||
|
|
||||||
m_settingsMutex.lock();
|
m_settingsMutex.lock();
|
||||||
@ -162,7 +162,7 @@ void NFMDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto
|
|||||||
}
|
}
|
||||||
|
|
||||||
//squelchOpen = (getMag() > m_squelchLevel);
|
//squelchOpen = (getMag() > m_squelchLevel);
|
||||||
squelchOpen = m_squelchCount == m_agcAttack; // wait for AGC to stabilize
|
m_squelchOpen = m_squelchCount == m_agcAttack; // wait for AGC to stabilize
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (m_afSquelch.analyze(demod))
|
if (m_afSquelch.analyze(demod))
|
||||||
@ -170,7 +170,7 @@ void NFMDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto
|
|||||||
squelchOpen = m_afSquelch.evaluate();
|
squelchOpen = m_afSquelch.evaluate();
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
if ((squelchOpen) && !m_running.m_audioMute)
|
if ((m_squelchOpen) && !m_running.m_audioMute)
|
||||||
//if (m_AGC.getAverage() > m_squelchLevel)
|
//if (m_AGC.getAverage() > m_squelchLevel)
|
||||||
{
|
{
|
||||||
if (m_running.m_ctcssOn)
|
if (m_running.m_ctcssOn)
|
||||||
|
@ -67,6 +67,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
Real getMag() { return m_AGC.getAverage() / (1<<15); }
|
Real getMag() { return m_AGC.getAverage() / (1<<15); }
|
||||||
|
bool getSquelchOpen() const { return m_squelchOpen; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class MsgConfigureNFMDemod : public Message {
|
class MsgConfigureNFMDemod : public Message {
|
||||||
@ -169,6 +170,7 @@ private:
|
|||||||
bool m_audioMute;
|
bool m_audioMute;
|
||||||
|
|
||||||
double m_squelchLevel;
|
double m_squelchLevel;
|
||||||
|
bool m_squelchOpen;
|
||||||
|
|
||||||
Real m_lastArgument;
|
Real m_lastArgument;
|
||||||
//Complex m_m1Sample;
|
//Complex m_m1Sample;
|
||||||
|
@ -240,6 +240,7 @@ NFMDemodGUI::NFMDemodGUI(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
m_channelMarker(this),
|
m_channelMarker(this),
|
||||||
m_basicSettingsShown(false),
|
m_basicSettingsShown(false),
|
||||||
m_doApplySettings(true),
|
m_doApplySettings(true),
|
||||||
|
m_squelchOpen(false),
|
||||||
m_channelPowerDbAvg(20,0)
|
m_channelPowerDbAvg(20,0)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
@ -353,4 +354,16 @@ void NFMDemodGUI::tick()
|
|||||||
Real powDb = CalcDb::dbPower(m_nfmDemod->getMag()) * 2;
|
Real powDb = CalcDb::dbPower(m_nfmDemod->getMag()) * 2;
|
||||||
m_channelPowerDbAvg.feed(powDb);
|
m_channelPowerDbAvg.feed(powDb);
|
||||||
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
ui->channelPower->setText(QString::number(m_channelPowerDbAvg.average(), 'f', 1));
|
||||||
|
bool squelchOpen = m_nfmDemod->getSquelchOpen();
|
||||||
|
|
||||||
|
if (squelchOpen != m_squelchOpen)
|
||||||
|
{
|
||||||
|
m_squelchOpen = squelchOpen;
|
||||||
|
|
||||||
|
if (m_squelchOpen) {
|
||||||
|
ui->audioMute->setStyleSheet("QToolButton { background-color : green; }");
|
||||||
|
} else {
|
||||||
|
ui->audioMute->setStyleSheet("QToolButton { background:rgb(79,79,79); }");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,7 @@ private:
|
|||||||
NFMDemod* m_nfmDemod;
|
NFMDemod* m_nfmDemod;
|
||||||
bool m_ctcssOn;
|
bool m_ctcssOn;
|
||||||
bool m_audioMute;
|
bool m_audioMute;
|
||||||
|
bool m_squelchOpen;
|
||||||
MovingAverage<Real> m_channelPowerDbAvg;
|
MovingAverage<Real> m_channelPowerDbAvg;
|
||||||
|
|
||||||
static const int m_rfBW[];
|
static const int m_rfBW[];
|
||||||
|
Loading…
Reference in New Issue
Block a user