mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-03-30 16:18:50 -04:00
Implemented connection from device sample source/sink to GUI input message queue
This commit is contained in:
parent
2b4f8a0f55
commit
c83b6e61d5
@ -42,7 +42,9 @@ public:
|
||||
virtual bool handleMessage(const Message& message) = 0;
|
||||
|
||||
MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; }
|
||||
MessageQueue *getOutputMessageQueueToGUI() { return &m_outputMessageQueueToGUI; }
|
||||
void setMessageQueueToGUI(MessageQueue *queue) { m_guiMessageQueue = queue; }
|
||||
MessageQueue *getMessageQueueToGUI() { return m_guiMessageQueue; }
|
||||
MessageQueue *getOutputMessageQueueToGUI() { return &m_outputMessageQueueToGUI; } // TODO: remove
|
||||
SampleSourceFifo* getSampleFifo() { return &m_sampleSourceFifo; }
|
||||
|
||||
protected slots:
|
||||
@ -51,7 +53,8 @@ protected slots:
|
||||
protected:
|
||||
SampleSourceFifo m_sampleSourceFifo;
|
||||
MessageQueue m_inputMessageQueue; //!< Input queue to the sink
|
||||
MessageQueue m_outputMessageQueueToGUI; //!< Output queue specialized for the sink GUI
|
||||
MessageQueue *m_guiMessageQueue; //!< Input message queue to the GUI
|
||||
MessageQueue m_outputMessageQueueToGUI; //!< Output queue specialized for the sink GUI // TODO: remove
|
||||
};
|
||||
|
||||
#endif /* SDRBASE_DSP_DEVICESAMPLESINK_H_ */
|
||||
|
@ -1,6 +1,6 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany //
|
||||
// written by Christian Daniel //
|
||||
// Copyright (C) 2015-2017 F4EXB //
|
||||
// written by Edouard Griffiths //
|
||||
// //
|
||||
// This program is free software; you can redistribute it and/or modify //
|
||||
// it under the terms of the GNU General Public License as published by //
|
||||
@ -17,7 +17,8 @@
|
||||
|
||||
#include <dsp/devicesamplesource.h>
|
||||
|
||||
DeviceSampleSource::DeviceSampleSource()
|
||||
DeviceSampleSource::DeviceSampleSource() :
|
||||
m_guiMessageQueue(0)
|
||||
{
|
||||
connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()));
|
||||
}
|
||||
|
@ -42,7 +42,9 @@ public:
|
||||
virtual bool handleMessage(const Message& message) = 0;
|
||||
|
||||
MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; }
|
||||
MessageQueue *getOutputMessageQueueToGUI() { return &m_outputMessageQueueToGUI; }
|
||||
void setMessageQueueToGUI(MessageQueue *queue) { m_guiMessageQueue = queue; }
|
||||
MessageQueue *getMessageQueueToGUI() { return m_guiMessageQueue; }
|
||||
MessageQueue *getOutputMessageQueueToGUI() { return &m_outputMessageQueueToGUI; } // TODO: remove
|
||||
SampleSinkFifo* getSampleFifo() { return &m_sampleFifo; }
|
||||
|
||||
protected slots:
|
||||
@ -51,7 +53,8 @@ protected slots:
|
||||
protected:
|
||||
SampleSinkFifo m_sampleFifo;
|
||||
MessageQueue m_inputMessageQueue; //!< Input queue to the source
|
||||
MessageQueue m_outputMessageQueueToGUI; //!< Output queue specialized for the source GUI
|
||||
MessageQueue *m_guiMessageQueue; //!< Input message queue to the GUI
|
||||
MessageQueue m_outputMessageQueueToGUI; //!< Output queue specialized for the source GUI // TODO: remove
|
||||
};
|
||||
|
||||
#endif // INCLUDE_SAMPLESOURCE_H
|
||||
|
@ -45,6 +45,8 @@
|
||||
#include "dsp/dspengine.h"
|
||||
#include "dsp/spectrumvis.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "dsp/devicesamplesource.h"
|
||||
#include "dsp/devicesamplesink.h"
|
||||
#include "plugin/pluginapi.h"
|
||||
#include "gui/glspectrum.h"
|
||||
#include "gui/glspectrumgui.h"
|
||||
@ -146,6 +148,7 @@ MainWindow::MainWindow(QWidget* parent) :
|
||||
QWidget *gui;
|
||||
PluginInstanceUI *pluginGUI = m_deviceUIs.back()->m_deviceSourceAPI->getPluginInterface()->createSampleSourcePluginInstanceGUI(
|
||||
m_deviceUIs.back()->m_deviceSourceAPI->getSampleSourceId(), &gui, m_deviceUIs.back()->m_deviceSourceAPI);
|
||||
m_deviceUIs.back()->m_deviceSourceAPI->getSampleSource()->setMessageQueueToGUI(pluginGUI->getInputMessageQueue());
|
||||
m_deviceUIs.back()->m_deviceSourceAPI->setSampleSourcePluginInstanceGUI(pluginGUI);
|
||||
setDeviceGUI(0, gui, m_deviceUIs.back()->m_deviceSourceAPI->getSampleSourceDisplayName());
|
||||
|
||||
@ -229,6 +232,7 @@ void MainWindow::addSourceDevice()
|
||||
QWidget *gui;
|
||||
PluginInstanceUI *pluginGUI = m_deviceUIs.back()->m_deviceSourceAPI->getPluginInterface()->createSampleSourcePluginInstanceGUI(
|
||||
m_deviceUIs.back()->m_deviceSourceAPI->getSampleSourceId(), &gui, m_deviceUIs.back()->m_deviceSourceAPI);
|
||||
m_deviceUIs.back()->m_deviceSourceAPI->getSampleSource()->setMessageQueueToGUI(pluginGUI->getInputMessageQueue());
|
||||
m_deviceUIs.back()->m_deviceSourceAPI->setSampleSourcePluginInstanceGUI(pluginGUI);
|
||||
setDeviceGUI(deviceTabIndex, gui, m_deviceUIs.back()->m_deviceSourceAPI->getSampleSourceDisplayName());
|
||||
|
||||
@ -284,6 +288,7 @@ void MainWindow::addSinkDevice()
|
||||
QWidget *gui;
|
||||
PluginInstanceUI *pluginUI = m_deviceUIs.back()->m_deviceSinkAPI->getPluginInterface()->createSampleSinkPluginInstanceGUI(
|
||||
m_deviceUIs.back()->m_deviceSinkAPI->getSampleSinkId(), &gui, m_deviceUIs.back()->m_deviceSinkAPI);
|
||||
m_deviceUIs.back()->m_deviceSinkAPI->getSampleSink()->setMessageQueueToGUI(pluginUI->getInputMessageQueue());
|
||||
m_deviceUIs.back()->m_deviceSinkAPI->setSampleSinkPluginInstanceUI(pluginUI);
|
||||
setDeviceGUI(deviceTabIndex, gui, m_deviceUIs.back()->m_deviceSinkAPI->getSampleSinkDisplayName(), false);
|
||||
}
|
||||
@ -887,6 +892,7 @@ void MainWindow::on_sampleSource_confirmClicked(bool checked __attribute__((unus
|
||||
QWidget *gui;
|
||||
PluginInstanceUI *pluginUI = deviceUI->m_deviceSourceAPI->getPluginInterface()->createSampleSourcePluginInstanceGUI(
|
||||
deviceUI->m_deviceSourceAPI->getSampleSourceId(), &gui, deviceUI->m_deviceSourceAPI);
|
||||
deviceUI->m_deviceSourceAPI->getSampleSource()->setMessageQueueToGUI(pluginUI->getInputMessageQueue());
|
||||
deviceUI->m_deviceSourceAPI->setSampleSourcePluginInstanceGUI(pluginUI);
|
||||
setDeviceGUI(currentSourceTabIndex, gui, deviceUI->m_deviceSourceAPI->getSampleSourceDisplayName());
|
||||
|
||||
@ -964,6 +970,7 @@ void MainWindow::on_sampleSink_confirmClicked(bool checked __attribute__((unused
|
||||
QWidget *gui;
|
||||
PluginInstanceUI *pluginUI = deviceUI->m_deviceSinkAPI->getPluginInterface()->createSampleSinkPluginInstanceGUI(
|
||||
deviceUI->m_deviceSinkAPI->getSampleSinkId(), &gui, deviceUI->m_deviceSinkAPI);
|
||||
deviceUI->m_deviceSinkAPI->getSampleSink()->setMessageQueueToGUI(pluginUI->getInputMessageQueue());
|
||||
deviceUI->m_deviceSinkAPI->setSampleSinkPluginInstanceUI(pluginUI);
|
||||
setDeviceGUI(currentSinkTabIndex, gui, deviceUI->m_deviceSinkAPI->getSampleSinkDisplayName(), false);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user