diff --git a/plugins/samplesource/sdrplay/sdrplaygui.cpp b/plugins/samplesource/sdrplay/sdrplaygui.cpp index 11365daf3..96e4e8276 100644 --- a/plugins/samplesource/sdrplay/sdrplaygui.cpp +++ b/plugins/samplesource/sdrplay/sdrplaygui.cpp @@ -31,7 +31,8 @@ SDRPlayGui::SDRPlayGui(DeviceSourceAPI *deviceAPI, QWidget* parent) : QWidget(parent), ui(new Ui::SDRPlayGui), - m_deviceAPI(deviceAPI) + m_deviceAPI(deviceAPI), + m_forceSettings(true) { m_sampleSource = (SDRPlayInput*) m_deviceAPI->getSampleSource(); @@ -121,6 +122,7 @@ bool SDRPlayGui::deserialize(const QByteArray& data) if(m_settings.deserialize(data)) { displaySettings(); + m_forceSettings = true; sendSettings(); return true; } @@ -265,8 +267,9 @@ void SDRPlayGui::sendSettings() void SDRPlayGui::updateHardware() { qDebug() << "SDRPlayGui::updateHardware"; - SDRPlayInput::MsgConfigureSDRPlay* message = SDRPlayInput::MsgConfigureSDRPlay::create( m_settings); + SDRPlayInput::MsgConfigureSDRPlay* message = SDRPlayInput::MsgConfigureSDRPlay::create( m_settings, m_forceSettings); m_sampleSource->getInputMessageQueue()->push(message); + m_forceSettings = false; m_updateTimer.stop(); } diff --git a/plugins/samplesource/sdrplay/sdrplaygui.h b/plugins/samplesource/sdrplay/sdrplaygui.h index 8310c01a8..ac1fefc25 100644 --- a/plugins/samplesource/sdrplay/sdrplaygui.h +++ b/plugins/samplesource/sdrplay/sdrplaygui.h @@ -57,6 +57,7 @@ private: Ui::SDRPlayGui* ui; DeviceSourceAPI* m_deviceAPI; + bool m_forceSettings; SDRPlaySettings m_settings; QTimer m_updateTimer; QTimer m_statusTimer; diff --git a/plugins/samplesource/sdrplay/sdrplayinput.cpp b/plugins/samplesource/sdrplay/sdrplayinput.cpp index 9e1224d36..d2ab34756 100644 --- a/plugins/samplesource/sdrplay/sdrplayinput.cpp +++ b/plugins/samplesource/sdrplay/sdrplayinput.cpp @@ -232,7 +232,7 @@ bool SDRPlayInput::handleMessage(const Message& message) // standard changes else { - if (!applySettings(settings, false, false)) + if (!applySettings(settings, false, conf.getForce())) { qDebug("SDRPlayInput::handleMessage: config error"); } diff --git a/plugins/samplesource/sdrplay/sdrplayinput.h b/plugins/samplesource/sdrplay/sdrplayinput.h index 1290d8259..a1bbe8a7c 100644 --- a/plugins/samplesource/sdrplay/sdrplayinput.h +++ b/plugins/samplesource/sdrplay/sdrplayinput.h @@ -35,18 +35,21 @@ public: public: const SDRPlaySettings& getSettings() const { return m_settings; } + bool getForce() const { return m_force; } - static MsgConfigureSDRPlay* create(const SDRPlaySettings& settings) + static MsgConfigureSDRPlay* create(const SDRPlaySettings& settings, bool force) { - return new MsgConfigureSDRPlay(settings); + return new MsgConfigureSDRPlay(settings, force); } private: SDRPlaySettings m_settings; + bool m_force; - MsgConfigureSDRPlay(const SDRPlaySettings& settings) : + MsgConfigureSDRPlay(const SDRPlaySettings& settings, bool force) : Message(), - m_settings(settings) + m_settings(settings), + m_force(force) { } }; diff --git a/plugins/samplesource/sdrplay/sdrplayplugin.cpp b/plugins/samplesource/sdrplay/sdrplayplugin.cpp index 99553ad4b..74a10d17c 100644 --- a/plugins/samplesource/sdrplay/sdrplayplugin.cpp +++ b/plugins/samplesource/sdrplay/sdrplayplugin.cpp @@ -25,7 +25,7 @@ const PluginDescriptor SDRPlayPlugin::m_pluginDescriptor = { QString("SDRPlay RSP1 Input"), - QString("3.5.0"), + QString("3.7.4"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true,