diff --git a/plugins/channelrx/demoddatv/datvdemod.cpp b/plugins/channelrx/demoddatv/datvdemod.cpp index d0bcbdb3d..92e820325 100644 --- a/plugins/channelrx/demoddatv/datvdemod.cpp +++ b/plugins/channelrx/demoddatv/datvdemod.cpp @@ -1427,27 +1427,24 @@ void DATVDemod::applySettings(const DATVDemodSettings& settings, bool force) } } + if ((m_settings.m_rfBandwidth != settings.m_rfBandwidth) + || force) + { + + //Bandpass filter shaping + Real fltLowCut = -((float) settings.m_rfBandwidth / 2.0) / (float) m_sampleRate; + Real fltHiCut = ((float) settings.m_rfBandwidth / 2.0) / (float) m_sampleRate; + m_objRFFilter->create_filter(fltLowCut, fltHiCut); + } + + if ((m_settings.m_centerFrequency != settings.m_centerFrequency) + || force) + { + m_objNCO.setFreq(-(float) settings.m_centerFrequency, (float) m_sampleRate); + } + if (m_settings.isDifferent(settings) || force) { - //m_objSettingsMutex.lock(); - - if ((m_settings.m_rfBandwidth != settings.m_rfBandwidth) - || force) - { - - //Bandpass filter shaping - Real fltLowCut = -((float) settings.m_rfBandwidth / 2.0) / (float) m_sampleRate; - Real fltHiCut = ((float) settings.m_rfBandwidth / 2.0) / (float) m_sampleRate; - m_objRFFilter->create_filter(fltLowCut, fltHiCut); - } - - if ((m_settings.m_centerFrequency != settings.m_centerFrequency) - || force) - { - m_objNCO.setFreq(-(float) settings.m_centerFrequency, (float) m_sampleRate); - } - - //m_objSettingsMutex.unlock(); m_blnNeedConfigUpdate = true; } diff --git a/plugins/channelrx/demoddatv/datvdemodsettings.cpp b/plugins/channelrx/demoddatv/datvdemodsettings.cpp index 58bc1aa44..0037c8395 100644 --- a/plugins/channelrx/demoddatv/datvdemodsettings.cpp +++ b/plugins/channelrx/demoddatv/datvdemodsettings.cpp @@ -182,8 +182,6 @@ void DATVDemodSettings::debug(const QString& msg) const bool DATVDemodSettings::isDifferent(const DATVDemodSettings& other) { return ((m_allowDrift != other.m_allowDrift) - || (m_rfBandwidth != other.m_rfBandwidth) - || (m_centerFrequency != other.m_centerFrequency) || (m_fastLock != other.m_fastLock) || (m_hardMetric != other.m_hardMetric) || (m_filter != other.m_filter) diff --git a/plugins/channelrx/demoddatv/datvdemodsettings.h b/plugins/channelrx/demoddatv/datvdemodsettings.h index 4cca83f07..6dfa186a5 100644 --- a/plugins/channelrx/demoddatv/datvdemodsettings.h +++ b/plugins/channelrx/demoddatv/datvdemodsettings.h @@ -100,7 +100,7 @@ struct DATVDemodSettings QByteArray serialize() const; bool deserialize(const QByteArray& data); void debug(const QString& msg) const; - bool isDifferent(const DATVDemodSettings& other); + bool isDifferent(const DATVDemodSettings& other); // true if a change of settings should trigger DVB framework config update void validateSystemConfiguration(); static DATVModulation getModulationFromStr(const QString& str);