mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-09-02 13:17:48 -04:00
Multi device support: completely removed direct access to DSP device engine from DSP engine
This commit is contained in:
parent
2b036e2212
commit
7053d3775c
@ -50,7 +50,7 @@ AirspyGui::AirspyGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
m_rates = ((AirspyInput*) m_sampleSource)->getSampleRates();
|
m_rates = ((AirspyInput*) m_sampleSource)->getSampleRates();
|
||||||
displaySampleRates();
|
displaySampleRates();
|
||||||
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
||||||
DSPEngine::instance()->setSource(m_sampleSource);
|
m_pluginAPI->setSource(m_sampleSource);
|
||||||
|
|
||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||||
|
@ -60,7 +60,7 @@ BladerfGui::BladerfGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
displaySettings();
|
displaySettings();
|
||||||
|
|
||||||
m_sampleSource = new BladerfInput(m_pluginAPI);
|
m_sampleSource = new BladerfInput(m_pluginAPI);
|
||||||
DSPEngine::instance()->setSource(m_sampleSource);
|
m_pluginAPI->setSource(m_sampleSource);
|
||||||
|
|
||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||||
|
@ -141,7 +141,7 @@ FCDProGui::FCDProGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
displaySettings();
|
displaySettings();
|
||||||
|
|
||||||
m_sampleSource = new FCDProInput(m_pluginAPI);
|
m_sampleSource = new FCDProInput(m_pluginAPI);
|
||||||
DSPEngine::instance()->setSource(m_sampleSource);
|
m_pluginAPI->setSource(m_sampleSource);
|
||||||
|
|
||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||||
|
@ -59,7 +59,7 @@ FCDProPlusGui::FCDProPlusGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
displaySettings();
|
displaySettings();
|
||||||
|
|
||||||
m_sampleSource = new FCDProPlusInput(m_pluginAPI);
|
m_sampleSource = new FCDProPlusInput(m_pluginAPI);
|
||||||
DSPEngine::instance()->setSource(m_sampleSource);
|
m_pluginAPI->setSource(m_sampleSource);
|
||||||
|
|
||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||||
|
@ -67,7 +67,7 @@ FileSourceGui::FileSourceGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
|
|
||||||
m_sampleSource = new FileSourceInput(m_pluginAPI->getMainWindow()->getMasterTimer());
|
m_sampleSource = new FileSourceInput(m_pluginAPI->getMainWindow()->getMasterTimer());
|
||||||
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
||||||
DSPEngine::instance()->setSource(m_sampleSource);
|
m_pluginAPI->setSource(m_sampleSource);
|
||||||
|
|
||||||
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,7 @@ HackRFGui::HackRFGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
displaySampleRates();
|
displaySampleRates();
|
||||||
displayBandwidths();
|
displayBandwidths();
|
||||||
|
|
||||||
DSPEngine::instance()->setSource(m_sampleSource);
|
m_pluginAPI->setSource(m_sampleSource);
|
||||||
|
|
||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||||
|
@ -53,7 +53,7 @@ RTLSDRGui::RTLSDRGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
|
|
||||||
m_sampleSource = new RTLSDRInput(m_pluginAPI);
|
m_sampleSource = new RTLSDRInput(m_pluginAPI);
|
||||||
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
||||||
DSPEngine::instance()->setSource(m_sampleSource);
|
m_pluginAPI->setSource(m_sampleSource);
|
||||||
|
|
||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||||
|
@ -90,7 +90,7 @@ SDRdaemonGui::SDRdaemonGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
|
|
||||||
m_sampleSource = new SDRdaemonInput(m_pluginAPI->getMainWindow()->getMasterTimer(), m_pluginAPI);
|
m_sampleSource = new SDRdaemonInput(m_pluginAPI->getMainWindow()->getMasterTimer(), m_pluginAPI);
|
||||||
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
||||||
DSPEngine::instance()->setSource(m_sampleSource);
|
m_pluginAPI->setSource(m_sampleSource);
|
||||||
|
|
||||||
displaySettings();
|
displaySettings();
|
||||||
ui->applyButton->setEnabled(false);
|
ui->applyButton->setEnabled(false);
|
||||||
|
@ -91,30 +91,6 @@ void DSPEngine::stopAudio()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSPEngine::setSource(SampleSource* source, uint deviceIndex)
|
|
||||||
{
|
|
||||||
qDebug("DSPEngine::setSource(%d)", deviceIndex);
|
|
||||||
m_deviceEngines[deviceIndex]->setSource(source);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DSPEngine::setSourceSequence(int sequence, uint deviceIndex)
|
|
||||||
{
|
|
||||||
qDebug("DSPEngine::setSource(%d)", deviceIndex);
|
|
||||||
m_deviceEngines[deviceIndex]->setSourceSequence(sequence);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DSPEngine::addSink(SampleSink* sink, uint deviceIndex)
|
|
||||||
{
|
|
||||||
qDebug("DSPEngine::setSource(%d)", deviceIndex);
|
|
||||||
m_deviceEngines[deviceIndex]->addSink(sink);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DSPEngine::removeSink(SampleSink* sink, uint deviceIndex)
|
|
||||||
{
|
|
||||||
qDebug("DSPEngine::removeSink(%d)", deviceIndex);
|
|
||||||
m_deviceEngines[deviceIndex]->removeSink(sink);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DSPEngine::addAudioSink(AudioFifo* audioFifo)
|
void DSPEngine::addAudioSink(AudioFifo* audioFifo)
|
||||||
{
|
{
|
||||||
qDebug("DSPEngine::addAudioSink");
|
qDebug("DSPEngine::addAudioSink");
|
||||||
|
@ -46,12 +46,6 @@ public:
|
|||||||
void startAudio();
|
void startAudio();
|
||||||
void stopAudio();
|
void stopAudio();
|
||||||
|
|
||||||
void setSource(SampleSource* source, uint deviceIndex = 0); //!< Set the sample source type
|
|
||||||
void setSourceSequence(int sequence, uint deviceIndex = 0); //!< Set the sample source sequence in type
|
|
||||||
|
|
||||||
void addSink(SampleSink* sink, uint deviceIndex = 0); //!< Add a sample sink
|
|
||||||
void removeSink(SampleSink* sink, uint deviceIndex = 0); //!< Remove a sample sink
|
|
||||||
|
|
||||||
DSPDeviceEngine *getDeviceEngineByIndex(uint deviceIndex) { return m_deviceEngines[deviceIndex]; }
|
DSPDeviceEngine *getDeviceEngineByIndex(uint deviceIndex) { return m_deviceEngines[deviceIndex]; }
|
||||||
DSPDeviceEngine *getDeviceEngineByUID(uint uid);
|
DSPDeviceEngine *getDeviceEngineByUID(uint uid);
|
||||||
|
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
#include <QOpenGLFunctions>
|
#include <QOpenGLFunctions>
|
||||||
#include <QSurface>
|
#include <QSurface>
|
||||||
#include "gui/glscope.h"
|
#include "gui/glscope.h"
|
||||||
#include "dsp/dspengine.h"
|
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
@ -54,8 +53,6 @@ GLScope::GLScope(QWidget* parent) :
|
|||||||
m_amp2(1.0),
|
m_amp2(1.0),
|
||||||
m_ofs1(0.0),
|
m_ofs1(0.0),
|
||||||
m_ofs2(0.0),
|
m_ofs2(0.0),
|
||||||
m_dspEngine(NULL),
|
|
||||||
m_scopeVis(NULL),
|
|
||||||
//m_amp(1.0),
|
//m_amp(1.0),
|
||||||
//m_ofs(0.0),
|
//m_ofs(0.0),
|
||||||
m_timeBase(1),
|
m_timeBase(1),
|
||||||
@ -88,21 +85,6 @@ GLScope::GLScope(QWidget* parent) :
|
|||||||
GLScope::~GLScope()
|
GLScope::~GLScope()
|
||||||
{
|
{
|
||||||
cleanup();
|
cleanup();
|
||||||
|
|
||||||
if(m_dspEngine != 0)
|
|
||||||
{
|
|
||||||
m_dspEngine->removeSink(m_scopeVis);
|
|
||||||
delete m_scopeVis;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLScope::setDSPEngine(DSPEngine* dspEngine)
|
|
||||||
{
|
|
||||||
if((m_dspEngine == NULL) && (dspEngine != NULL)) {
|
|
||||||
m_dspEngine = dspEngine;
|
|
||||||
m_scopeVis = new ScopeVis(this);
|
|
||||||
m_dspEngine->addSink(m_scopeVis);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLScope::setSampleRate(int sampleRate) {
|
void GLScope::setSampleRate(int sampleRate) {
|
||||||
|
@ -35,7 +35,6 @@
|
|||||||
#include "util/export.h"
|
#include "util/export.h"
|
||||||
#include "util/bitfieldindex.h"
|
#include "util/bitfieldindex.h"
|
||||||
|
|
||||||
class DSPEngine;
|
|
||||||
class ScopeVis;
|
class ScopeVis;
|
||||||
class QPainter;
|
class QPainter;
|
||||||
|
|
||||||
@ -63,7 +62,7 @@ public:
|
|||||||
GLScope(QWidget* parent = NULL);
|
GLScope(QWidget* parent = NULL);
|
||||||
~GLScope();
|
~GLScope();
|
||||||
|
|
||||||
void setDSPEngine(DSPEngine* dspEngine);
|
// void setDSPEngine(DSPEngine* dspEngine);
|
||||||
void setAmp1(Real amp);
|
void setAmp1(Real amp);
|
||||||
void setAmp1Ofs(Real ampOfs);
|
void setAmp1Ofs(Real ampOfs);
|
||||||
void setAmp2(Real amp);
|
void setAmp2(Real amp);
|
||||||
@ -123,10 +122,6 @@ private:
|
|||||||
Real m_ofs1;
|
Real m_ofs1;
|
||||||
Real m_ofs2;
|
Real m_ofs2;
|
||||||
|
|
||||||
// sample sink
|
|
||||||
DSPEngine* m_dspEngine;
|
|
||||||
ScopeVis* m_scopeVis;
|
|
||||||
|
|
||||||
// config
|
// config
|
||||||
int m_timeBase;
|
int m_timeBase;
|
||||||
int m_timeOfsProMill;
|
int m_timeOfsProMill;
|
||||||
|
@ -78,6 +78,11 @@ void PluginAPI::removeThreadedSink(ThreadedSampleSink* sink)
|
|||||||
m_pluginManager->removeThreadedSink(sink);
|
m_pluginManager->removeThreadedSink(sink);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PluginAPI::setSource(SampleSource* source)
|
||||||
|
{
|
||||||
|
m_pluginManager->setSource(source);
|
||||||
|
}
|
||||||
|
|
||||||
bool PluginAPI::initAcquisition()
|
bool PluginAPI::initAcquisition()
|
||||||
{
|
{
|
||||||
return m_pluginManager->initAcquisition();
|
return m_pluginManager->initAcquisition();
|
||||||
|
@ -46,6 +46,7 @@ public:
|
|||||||
void addSink(SampleSink* sink); //!< Add a sample sink to device engine
|
void addSink(SampleSink* sink); //!< Add a sample sink to device engine
|
||||||
void removeSink(SampleSink* sink); //!< Remove a sample sink from device engine
|
void removeSink(SampleSink* sink); //!< Remove a sample sink from device engine
|
||||||
void addThreadedSink(ThreadedSampleSink* sink); //!< Add a sample sink that will run on its own thread to device engine
|
void addThreadedSink(ThreadedSampleSink* sink); //!< Add a sample sink that will run on its own thread to device engine
|
||||||
|
void setSource(SampleSource* source); //!< Set device engine sample source type
|
||||||
void removeThreadedSink(ThreadedSampleSink* sink); //!< Remove a sample sink that runs on its own thread from device engine
|
void removeThreadedSink(ThreadedSampleSink* sink); //!< Remove a sample sink that runs on its own thread from device engine
|
||||||
bool initAcquisition(); //!< Initialize device engine acquisition sequence
|
bool initAcquisition(); //!< Initialize device engine acquisition sequence
|
||||||
bool startAcquisition(); //!< Start device engine acquisition sequence
|
bool startAcquisition(); //!< Start device engine acquisition sequence
|
||||||
|
@ -56,6 +56,7 @@ public:
|
|||||||
void removeSink(SampleSink* sink);
|
void removeSink(SampleSink* sink);
|
||||||
void addThreadedSink(ThreadedSampleSink* sink);
|
void addThreadedSink(ThreadedSampleSink* sink);
|
||||||
void removeThreadedSink(ThreadedSampleSink* sink);
|
void removeThreadedSink(ThreadedSampleSink* sink);
|
||||||
|
void setSource(SampleSource* source) { m_dspDeviceEngine->setSource(source); }; //!< Set device engine sample source type
|
||||||
bool initAcquisition() { return m_dspDeviceEngine->initAcquisition(); } //!< Initialize device engine acquisition sequence
|
bool initAcquisition() { return m_dspDeviceEngine->initAcquisition(); } //!< Initialize device engine acquisition sequence
|
||||||
bool startAcquisition() { return m_dspDeviceEngine->startAcquisition(); } //!< Start device engine acquisition sequence
|
bool startAcquisition() { return m_dspDeviceEngine->startAcquisition(); } //!< Start device engine acquisition sequence
|
||||||
void stopAcquistion() { m_dspDeviceEngine->stopAcquistion(); } //!< Stop device engine acquisition sequence
|
void stopAcquistion() { m_dspDeviceEngine->stopAcquistion(); } //!< Stop device engine acquisition sequence
|
||||||
|
Loading…
x
Reference in New Issue
Block a user