From fc3e9efa8ac595d9580a1cb116a9bdde1f7b2de9 Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 19 Aug 2015 01:45:06 +0200 Subject: [PATCH] Deep redesign: Init sequence review phase #3: Implement sample source input messages handler --- include/dsp/samplesource/samplesource.h | 6 +++++- plugins/samplesource/bladerf/bladerfgui.cpp | 1 + plugins/samplesource/bladerf/bladerfinput.cpp | 4 +++- sdrbase/dsp/samplesource/samplesource.cpp | 14 ++++++++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/include/dsp/samplesource/samplesource.h b/include/dsp/samplesource/samplesource.h index cdd52fa8d..1bf5f76c1 100644 --- a/include/dsp/samplesource/samplesource.h +++ b/include/dsp/samplesource/samplesource.h @@ -24,7 +24,8 @@ #include "util/messagequeue.h" #include "util/export.h" -class SDRANGELOVE_API SampleSource { +class SDRANGELOVE_API SampleSource : public QObject { + Q_OBJECT public: SampleSource(); virtual ~SampleSource(); @@ -43,6 +44,9 @@ public: MessageQueue *getOutputMessageQueue() { return &m_outputMessageQueue; } SampleFifo* getSampleFifo() { return &m_sampleFifo; } +protected slots: + void handleInputMessages(); + protected: SampleFifo m_sampleFifo; MessageQueue m_inputMessageQueue; diff --git a/plugins/samplesource/bladerf/bladerfgui.cpp b/plugins/samplesource/bladerf/bladerfgui.cpp index eeace7080..803aad8d0 100644 --- a/plugins/samplesource/bladerf/bladerfgui.cpp +++ b/plugins/samplesource/bladerf/bladerfgui.cpp @@ -276,6 +276,7 @@ void BladerfGui::on_xb200_currentIndexChanged(int index) void BladerfGui::updateHardware() { + qDebug() << "BladerfGui::updateHardware"; BladerfInput::MsgConfigureBladerf* message = BladerfInput::MsgConfigureBladerf::create( m_settings); m_sampleSource->getInputMessageQueue()->push(message); m_updateTimer.stop(); diff --git a/plugins/samplesource/bladerf/bladerfinput.cpp b/plugins/samplesource/bladerf/bladerfinput.cpp index 8544bdc7c..05ec791d2 100644 --- a/plugins/samplesource/bladerf/bladerfinput.cpp +++ b/plugins/samplesource/bladerf/bladerfinput.cpp @@ -237,9 +237,11 @@ quint64 BladerfInput::getCenterFrequency() const bool BladerfInput::handleMessage(const Message& message) { + qDebug() << "BladerfInput::handleMessage"; + if (MsgConfigureBladerf::match(message)) { - qDebug() << "BladerfInput::handleMessage: MsgConfigureBladerf"; + qDebug() << " - MsgConfigureBladerf"; MsgConfigureBladerf& conf = (MsgConfigureBladerf&) message; diff --git a/sdrbase/dsp/samplesource/samplesource.cpp b/sdrbase/dsp/samplesource/samplesource.cpp index 4c820171e..747134bbd 100644 --- a/sdrbase/dsp/samplesource/samplesource.cpp +++ b/sdrbase/dsp/samplesource/samplesource.cpp @@ -19,8 +19,22 @@ SampleSource::SampleSource() { + connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); } SampleSource::~SampleSource() { } + +void SampleSource::handleInputMessages() +{ + Message* message; + + while ((message = m_inputMessageQueue.pop()) != 0) + { + if (handleMessage(*message)) + { + delete message; + } + } +}