From 2d27235769e880fa03156722fb59e00b061d6191 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 14 Oct 2017 07:13:57 +0200 Subject: [PATCH] HackRF output: force settings at startup and on deserialize --- plugins/samplesink/hackrfoutput/hackrfoutput.cpp | 2 +- plugins/samplesink/hackrfoutput/hackrfoutput.h | 11 +++++++---- plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp | 5 ++++- plugins/samplesink/hackrfoutput/hackrfoutputgui.h | 1 + .../samplesink/hackrfoutput/hackrfoutputplugin.cpp | 2 +- 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/plugins/samplesink/hackrfoutput/hackrfoutput.cpp b/plugins/samplesink/hackrfoutput/hackrfoutput.cpp index 3ec4170ef..08842acea 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutput.cpp +++ b/plugins/samplesink/hackrfoutput/hackrfoutput.cpp @@ -183,7 +183,7 @@ bool HackRFOutput::handleMessage(const Message& message) MsgConfigureHackRF& conf = (MsgConfigureHackRF&) message; qDebug() << "HackRFOutput::handleMessage: MsgConfigureHackRF"; - bool success = applySettings(conf.getSettings(), false); + bool success = applySettings(conf.getSettings(), conf.getForce()); if (!success) { diff --git a/plugins/samplesink/hackrfoutput/hackrfoutput.h b/plugins/samplesink/hackrfoutput/hackrfoutput.h index 649896c65..cc5db5c76 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutput.h +++ b/plugins/samplesink/hackrfoutput/hackrfoutput.h @@ -36,18 +36,21 @@ public: public: const HackRFOutputSettings& getSettings() const { return m_settings; } + bool getForce() const { return m_force; } - static MsgConfigureHackRF* create(const HackRFOutputSettings& settings) + static MsgConfigureHackRF* create(const HackRFOutputSettings& settings, bool force) { - return new MsgConfigureHackRF(settings); + return new MsgConfigureHackRF(settings, force); } private: HackRFOutputSettings m_settings; + bool m_force; - MsgConfigureHackRF(const HackRFOutputSettings& settings) : + MsgConfigureHackRF(const HackRFOutputSettings& settings, bool force) : Message(), - m_settings(settings) + m_settings(settings), + m_force(force) { } }; diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp b/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp index 8d342ab92..d2dd767a0 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp +++ b/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp @@ -36,6 +36,7 @@ HackRFOutputGui::HackRFOutputGui(DeviceSinkAPI *deviceAPI, QWidget* parent) : QWidget(parent), ui(new Ui::HackRFOutputGui), m_deviceAPI(deviceAPI), + m_forceSettings(true), m_settings(), m_deviceSampleSink(0), m_lastEngineState((DSPDeviceSinkEngine::State)-1), @@ -110,6 +111,7 @@ bool HackRFOutputGui::deserialize(const QByteArray& data) if(m_settings.deserialize(data)) { displaySettings(); + m_forceSettings = true; sendSettings(); return true; } @@ -322,8 +324,9 @@ void HackRFOutputGui::updateHardware() if (m_doApplySettings) { qDebug() << "HackRFOutputGui::updateHardware"; - HackRFOutput::MsgConfigureHackRF* message = HackRFOutput::MsgConfigureHackRF::create(m_settings); + HackRFOutput::MsgConfigureHackRF* message = HackRFOutput::MsgConfigureHackRF::create(m_settings, m_forceSettings); m_deviceSampleSink->getInputMessageQueue()->push(message); + m_forceSettings = true; m_updateTimer.stop(); } } diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputgui.h b/plugins/samplesink/hackrfoutput/hackrfoutputgui.h index b5ced5931..0db322c29 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutputgui.h +++ b/plugins/samplesink/hackrfoutput/hackrfoutputgui.h @@ -65,6 +65,7 @@ private: Ui::HackRFOutputGui* ui; DeviceSinkAPI* m_deviceAPI; + bool m_forceSettings; HackRFOutputSettings m_settings; QTimer m_updateTimer; QTimer m_statusTimer; diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp b/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp index a65a24218..a6cd9f63d 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp +++ b/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp @@ -29,7 +29,7 @@ const PluginDescriptor HackRFOutputPlugin::m_pluginDescriptor = { QString("HackRF Output"), - QString("3.5.5"), + QString("3.7.4"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true,