diff --git a/plugins/channelrx/demodatv/atvdemod.cpp b/plugins/channelrx/demodatv/atvdemod.cpp index 7d41a828c..a2e38a0a2 100644 --- a/plugins/channelrx/demodatv/atvdemod.cpp +++ b/plugins/channelrx/demodatv/atvdemod.cpp @@ -636,7 +636,7 @@ void ATVDemod::applySettings() int sampleRate = m_objRFRunning.m_blndecimatorEnable ? m_objRunningPrivate.m_intTVSampleRate : m_objRunning.m_intSampleRate; MsgReportEffectiveSampleRate *report; report = MsgReportEffectiveSampleRate::create(sampleRate, m_objRunningPrivate.m_intNumberSamplePerLine); - getOutputMessageQueue()->push(report); + getMessageQueueToGUI()->push(report); } } diff --git a/plugins/channelrx/demodatv/atvdemodgui.cpp b/plugins/channelrx/demodatv/atvdemodgui.cpp index 15c4976d1..8ad7c80fa 100644 --- a/plugins/channelrx/demodatv/atvdemodgui.cpp +++ b/plugins/channelrx/demodatv/atvdemodgui.cpp @@ -242,7 +242,7 @@ void ATVDemodGUI::handleSourceMessages() { Message* message; - while ((message = m_objATVDemod->getOutputMessageQueue()->pop()) != 0) + while ((message = getInputMessageQueue()->pop()) != 0) { if (handleMessage(*message)) { @@ -285,6 +285,7 @@ ATVDemodGUI::ATVDemodGUI(PluginAPI* objPluginAPI, DeviceSourceAPI *objDeviceAPI, m_objScopeVis = new ScopeVisNG(ui->glScope); m_objATVDemod = new ATVDemod(m_objScopeVis); + m_objATVDemod->setMessageQueueToGUI(getInputMessageQueue()); m_objATVDemod->setATVScreen(ui->screenTV); m_objChannelizer = new DownChannelizer(m_objATVDemod); @@ -337,7 +338,7 @@ ATVDemodGUI::ATVDemodGUI(PluginAPI* objPluginAPI, DeviceSourceAPI *objDeviceAPI, ui->scopeGUI->changeTrigger(0, triggerData); ui->scopeGUI->focusOnTrigger(0); // re-focus to take changes into account in the GUI - connect(m_objATVDemod->getOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages())); + connect(getInputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages())); QChar delta = QChar(0x94, 0x03); ui->fmDeviationLabel->setText(delta); diff --git a/sdrbase/dsp/basebandsamplesink.cpp b/sdrbase/dsp/basebandsamplesink.cpp index dac936700..7887f768d 100644 --- a/sdrbase/dsp/basebandsamplesink.cpp +++ b/sdrbase/dsp/basebandsamplesink.cpp @@ -1,7 +1,8 @@ #include #include "util/message.h" -BasebandSampleSink::BasebandSampleSink() +BasebandSampleSink::BasebandSampleSink() : + m_guiMessageQueue(0) { connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); } diff --git a/sdrbase/dsp/basebandsamplesink.h b/sdrbase/dsp/basebandsamplesink.h index adf47fe9e..9897d280f 100644 --- a/sdrbase/dsp/basebandsamplesink.h +++ b/sdrbase/dsp/basebandsamplesink.h @@ -37,11 +37,12 @@ public: virtual bool handleMessage(const Message& cmd) = 0; //!< Processing of a message. Returns true if message has actually been processed MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } //!< Get the queue for asynchronous inbound communication - MessageQueue *getOutputMessageQueue() { return &m_outputMessageQueue; } //!< Get the queue for asynchronous outbound communication + virtual void setMessageQueueToGUI(MessageQueue *queue) { m_guiMessageQueue = queue; } + MessageQueue *getMessageQueueToGUI() { return m_guiMessageQueue; } protected: MessageQueue m_inputMessageQueue; //!< Queue for asynchronous inbound communication - MessageQueue m_outputMessageQueue; //!< Queue for asynchronous outbound communication + MessageQueue *m_guiMessageQueue; //!< Input message queue to the GUI protected slots: void handleInputMessages(); diff --git a/sdrbase/dsp/threadedbasebandsamplesink.h b/sdrbase/dsp/threadedbasebandsamplesink.h index 416d4d283..93368c6bb 100644 --- a/sdrbase/dsp/threadedbasebandsamplesink.h +++ b/sdrbase/dsp/threadedbasebandsamplesink.h @@ -58,8 +58,6 @@ public: ~ThreadedBasebandSampleSink(); const BasebandSampleSink *getSink() const { return m_basebandSampleSink; } - MessageQueue* getInputMessageQueue() { return m_basebandSampleSink->getInputMessageQueue(); } //!< Return pointer to sample sink's input message queue - MessageQueue* getOutputMessageQueue() { return m_basebandSampleSink->getOutputMessageQueue(); } //!< Return pointer to sample sink's output message queue void start(); //!< this thread start() void stop(); //!< this thread exit() and wait()