mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-06-24 13:05:21 -04:00
NFM demod: force apply settings on start
This commit is contained in:
parent
72b1bb8ac5
commit
9dc6fac63e
@ -340,6 +340,7 @@ void NFMDemod::start()
|
|||||||
{
|
{
|
||||||
m_audioFifo.clear();
|
m_audioFifo.clear();
|
||||||
m_phaseDiscri.reset();
|
m_phaseDiscri.reset();
|
||||||
|
apply(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NFMDemod::stop()
|
void NFMDemod::stop()
|
||||||
@ -398,16 +399,16 @@ bool NFMDemod::handleMessage(const Message& cmd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void NFMDemod::apply()
|
void NFMDemod::apply(bool force)
|
||||||
{
|
{
|
||||||
if ((m_config.m_inputFrequencyOffset != m_running.m_inputFrequencyOffset) ||
|
if ((m_config.m_inputFrequencyOffset != m_running.m_inputFrequencyOffset) ||
|
||||||
(m_config.m_inputSampleRate != m_running.m_inputSampleRate))
|
(m_config.m_inputSampleRate != m_running.m_inputSampleRate) || force)
|
||||||
{
|
{
|
||||||
m_nco.setFreq(-m_config.m_inputFrequencyOffset, m_config.m_inputSampleRate);
|
m_nco.setFreq(-m_config.m_inputFrequencyOffset, m_config.m_inputSampleRate);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((m_config.m_inputSampleRate != m_running.m_inputSampleRate) ||
|
if ((m_config.m_inputSampleRate != m_running.m_inputSampleRate) ||
|
||||||
(m_config.m_rfBandwidth != m_running.m_rfBandwidth))
|
(m_config.m_rfBandwidth != m_running.m_rfBandwidth) || force)
|
||||||
{
|
{
|
||||||
m_settingsMutex.lock();
|
m_settingsMutex.lock();
|
||||||
m_interpolator.create(16, m_config.m_inputSampleRate, m_config.m_rfBandwidth / 2.2);
|
m_interpolator.create(16, m_config.m_inputSampleRate, m_config.m_rfBandwidth / 2.2);
|
||||||
@ -417,13 +418,13 @@ void NFMDemod::apply()
|
|||||||
m_settingsMutex.unlock();
|
m_settingsMutex.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_config.m_fmDeviation != m_running.m_fmDeviation)
|
if ((m_config.m_fmDeviation != m_running.m_fmDeviation) || force)
|
||||||
{
|
{
|
||||||
m_phaseDiscri.setFMScaling((8.0f*m_config.m_rfBandwidth) / (float) m_config.m_fmDeviation); // integrate 4x factor
|
m_phaseDiscri.setFMScaling((8.0f*m_config.m_rfBandwidth) / (float) m_config.m_fmDeviation); // integrate 4x factor
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((m_config.m_afBandwidth != m_running.m_afBandwidth) ||
|
if ((m_config.m_afBandwidth != m_running.m_afBandwidth) ||
|
||||||
(m_config.m_audioSampleRate != m_running.m_audioSampleRate))
|
(m_config.m_audioSampleRate != m_running.m_audioSampleRate) || force)
|
||||||
{
|
{
|
||||||
m_settingsMutex.lock();
|
m_settingsMutex.lock();
|
||||||
m_lowpass.create(301, m_config.m_audioSampleRate, 250.0);
|
m_lowpass.create(301, m_config.m_audioSampleRate, 250.0);
|
||||||
@ -431,14 +432,14 @@ void NFMDemod::apply()
|
|||||||
m_settingsMutex.unlock();
|
m_settingsMutex.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_config.m_squelchGate != m_running.m_squelchGate)
|
if ((m_config.m_squelchGate != m_running.m_squelchGate) || force)
|
||||||
{
|
{
|
||||||
m_squelchGate = 480 * m_config.m_squelchGate; // gate is given in 10s of ms at 48000 Hz audio sample rate
|
m_squelchGate = 480 * m_config.m_squelchGate; // gate is given in 10s of ms at 48000 Hz audio sample rate
|
||||||
m_squelchCount = 0; // reset squelch open counter
|
m_squelchCount = 0; // reset squelch open counter
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((m_config.m_squelch != m_running.m_squelch) ||
|
if ((m_config.m_squelch != m_running.m_squelch) ||
|
||||||
(m_config.m_deltaSquelch != m_running.m_deltaSquelch))
|
(m_config.m_deltaSquelch != m_running.m_deltaSquelch) || force)
|
||||||
{
|
{
|
||||||
if (m_config.m_deltaSquelch)
|
if (m_config.m_deltaSquelch)
|
||||||
{ // input is a value in negative millis
|
{ // input is a value in negative millis
|
||||||
|
@ -243,7 +243,7 @@ private:
|
|||||||
|
|
||||||
PhaseDiscriminators m_phaseDiscri;
|
PhaseDiscriminators m_phaseDiscri;
|
||||||
|
|
||||||
void apply();
|
void apply(bool force = false);
|
||||||
|
|
||||||
float smootherstep(float x)
|
float smootherstep(float x)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user