From f31032426ab656df7afa7acac394f49cd4305201 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 14 Oct 2017 06:36:29 +0200 Subject: [PATCH] BladeRF input: force settings at startup and on deserialize --- plugins/samplesource/bladerfinput/bladerfinput.cpp | 2 +- plugins/samplesource/bladerfinput/bladerfinput.h | 11 +++++++---- plugins/samplesource/bladerfinput/bladerfinputgui.cpp | 5 ++++- plugins/samplesource/bladerfinput/bladerfinputgui.h | 1 + 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/plugins/samplesource/bladerfinput/bladerfinput.cpp b/plugins/samplesource/bladerfinput/bladerfinput.cpp index 1abc397f2..443399c45 100644 --- a/plugins/samplesource/bladerfinput/bladerfinput.cpp +++ b/plugins/samplesource/bladerfinput/bladerfinput.cpp @@ -221,7 +221,7 @@ bool BladerfInput::handleMessage(const Message& message) MsgConfigureBladerf& conf = (MsgConfigureBladerf&) message; qDebug() << "BladerfInput::handleMessage: MsgConfigureBladerf"; - if (!applySettings(conf.getSettings(), false)) + if (!applySettings(conf.getSettings(), conf.getForce())) { qDebug("BladeRF config error"); } diff --git a/plugins/samplesource/bladerfinput/bladerfinput.h b/plugins/samplesource/bladerfinput/bladerfinput.h index 14d4b6761..5276ad418 100644 --- a/plugins/samplesource/bladerfinput/bladerfinput.h +++ b/plugins/samplesource/bladerfinput/bladerfinput.h @@ -37,18 +37,21 @@ public: public: const BladeRFInputSettings& getSettings() const { return m_settings; } + bool getForce() const { return m_force; } - static MsgConfigureBladerf* create(const BladeRFInputSettings& settings) + static MsgConfigureBladerf* create(const BladeRFInputSettings& settings, bool force) { - return new MsgConfigureBladerf(settings); + return new MsgConfigureBladerf(settings, force); } private: BladeRFInputSettings m_settings; + bool m_force; - MsgConfigureBladerf(const BladeRFInputSettings& settings) : + MsgConfigureBladerf(const BladeRFInputSettings& settings, bool force) : Message(), - m_settings(settings) + m_settings(settings), + m_force(force) { } }; diff --git a/plugins/samplesource/bladerfinput/bladerfinputgui.cpp b/plugins/samplesource/bladerfinput/bladerfinputgui.cpp index a753326a6..5812e3504 100644 --- a/plugins/samplesource/bladerfinput/bladerfinputgui.cpp +++ b/plugins/samplesource/bladerfinput/bladerfinputgui.cpp @@ -32,6 +32,7 @@ BladerfInputGui::BladerfInputGui(DeviceSourceAPI *deviceAPI, QWidget* parent) : QWidget(parent), ui(new Ui::BladerfInputGui), m_deviceAPI(deviceAPI), + m_forceSettings(true), m_settings(), m_sampleSource(NULL), m_sampleRate(0), @@ -110,6 +111,7 @@ bool BladerfInputGui::deserialize(const QByteArray& data) { if(m_settings.deserialize(data)) { displaySettings(); + m_forceSettings = true; sendSettings(); return true; } else { @@ -359,8 +361,9 @@ void BladerfInputGui::on_record_toggled(bool checked) void BladerfInputGui::updateHardware() { qDebug() << "BladerfGui::updateHardware"; - BladerfInput::MsgConfigureBladerf* message = BladerfInput::MsgConfigureBladerf::create( m_settings); + BladerfInput::MsgConfigureBladerf* message = BladerfInput::MsgConfigureBladerf::create(m_settings, m_forceSettings); m_sampleSource->getInputMessageQueue()->push(message); + m_forceSettings = false; m_updateTimer.stop(); } diff --git a/plugins/samplesource/bladerfinput/bladerfinputgui.h b/plugins/samplesource/bladerfinput/bladerfinputgui.h index 0d75c6ab9..ca2cd4db1 100644 --- a/plugins/samplesource/bladerfinput/bladerfinputgui.h +++ b/plugins/samplesource/bladerfinput/bladerfinputgui.h @@ -54,6 +54,7 @@ private: Ui::BladerfInputGui* ui; DeviceSourceAPI* m_deviceAPI; + bool m_forceSettings; BladeRFInputSettings m_settings; QTimer m_updateTimer; QTimer m_statusTimer;