mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-03-11 14:58:47 -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();
|
||||
displaySampleRates();
|
||||
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
||||
DSPEngine::instance()->setSource(m_sampleSource);
|
||||
m_pluginAPI->setSource(m_sampleSource);
|
||||
|
||||
char recFileNameCStr[30];
|
||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||
|
@ -60,7 +60,7 @@ BladerfGui::BladerfGui(PluginAPI* pluginAPI, QWidget* parent) :
|
||||
displaySettings();
|
||||
|
||||
m_sampleSource = new BladerfInput(m_pluginAPI);
|
||||
DSPEngine::instance()->setSource(m_sampleSource);
|
||||
m_pluginAPI->setSource(m_sampleSource);
|
||||
|
||||
char recFileNameCStr[30];
|
||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||
|
@ -141,7 +141,7 @@ FCDProGui::FCDProGui(PluginAPI* pluginAPI, QWidget* parent) :
|
||||
displaySettings();
|
||||
|
||||
m_sampleSource = new FCDProInput(m_pluginAPI);
|
||||
DSPEngine::instance()->setSource(m_sampleSource);
|
||||
m_pluginAPI->setSource(m_sampleSource);
|
||||
|
||||
char recFileNameCStr[30];
|
||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||
|
@ -59,7 +59,7 @@ FCDProPlusGui::FCDProPlusGui(PluginAPI* pluginAPI, QWidget* parent) :
|
||||
displaySettings();
|
||||
|
||||
m_sampleSource = new FCDProPlusInput(m_pluginAPI);
|
||||
DSPEngine::instance()->setSource(m_sampleSource);
|
||||
m_pluginAPI->setSource(m_sampleSource);
|
||||
|
||||
char recFileNameCStr[30];
|
||||
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());
|
||||
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);
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ HackRFGui::HackRFGui(PluginAPI* pluginAPI, QWidget* parent) :
|
||||
displaySampleRates();
|
||||
displayBandwidths();
|
||||
|
||||
DSPEngine::instance()->setSource(m_sampleSource);
|
||||
m_pluginAPI->setSource(m_sampleSource);
|
||||
|
||||
char recFileNameCStr[30];
|
||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||
|
@ -53,7 +53,7 @@ RTLSDRGui::RTLSDRGui(PluginAPI* pluginAPI, QWidget* parent) :
|
||||
|
||||
m_sampleSource = new RTLSDRInput(m_pluginAPI);
|
||||
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
||||
DSPEngine::instance()->setSource(m_sampleSource);
|
||||
m_pluginAPI->setSource(m_sampleSource);
|
||||
|
||||
char recFileNameCStr[30];
|
||||
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);
|
||||
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
||||
DSPEngine::instance()->setSource(m_sampleSource);
|
||||
m_pluginAPI->setSource(m_sampleSource);
|
||||
|
||||
displaySettings();
|
||||
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)
|
||||
{
|
||||
qDebug("DSPEngine::addAudioSink");
|
||||
|
@ -46,12 +46,6 @@ public:
|
||||
void startAudio();
|
||||
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 *getDeviceEngineByUID(uint uid);
|
||||
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include <QOpenGLFunctions>
|
||||
#include <QSurface>
|
||||
#include "gui/glscope.h"
|
||||
#include "dsp/dspengine.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <QDebug>
|
||||
@ -54,8 +53,6 @@ GLScope::GLScope(QWidget* parent) :
|
||||
m_amp2(1.0),
|
||||
m_ofs1(0.0),
|
||||
m_ofs2(0.0),
|
||||
m_dspEngine(NULL),
|
||||
m_scopeVis(NULL),
|
||||
//m_amp(1.0),
|
||||
//m_ofs(0.0),
|
||||
m_timeBase(1),
|
||||
@ -88,21 +85,6 @@ GLScope::GLScope(QWidget* parent) :
|
||||
GLScope::~GLScope()
|
||||
{
|
||||
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) {
|
||||
|
@ -35,7 +35,6 @@
|
||||
#include "util/export.h"
|
||||
#include "util/bitfieldindex.h"
|
||||
|
||||
class DSPEngine;
|
||||
class ScopeVis;
|
||||
class QPainter;
|
||||
|
||||
@ -63,7 +62,7 @@ public:
|
||||
GLScope(QWidget* parent = NULL);
|
||||
~GLScope();
|
||||
|
||||
void setDSPEngine(DSPEngine* dspEngine);
|
||||
// void setDSPEngine(DSPEngine* dspEngine);
|
||||
void setAmp1(Real amp);
|
||||
void setAmp1Ofs(Real ampOfs);
|
||||
void setAmp2(Real amp);
|
||||
@ -123,10 +122,6 @@ private:
|
||||
Real m_ofs1;
|
||||
Real m_ofs2;
|
||||
|
||||
// sample sink
|
||||
DSPEngine* m_dspEngine;
|
||||
ScopeVis* m_scopeVis;
|
||||
|
||||
// config
|
||||
int m_timeBase;
|
||||
int m_timeOfsProMill;
|
||||
|
@ -78,6 +78,11 @@ void PluginAPI::removeThreadedSink(ThreadedSampleSink* sink)
|
||||
m_pluginManager->removeThreadedSink(sink);
|
||||
}
|
||||
|
||||
void PluginAPI::setSource(SampleSource* source)
|
||||
{
|
||||
m_pluginManager->setSource(source);
|
||||
}
|
||||
|
||||
bool PluginAPI::initAcquisition()
|
||||
{
|
||||
return m_pluginManager->initAcquisition();
|
||||
|
@ -46,6 +46,7 @@ public:
|
||||
void addSink(SampleSink* sink); //!< Add a sample sink to 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 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
|
||||
bool initAcquisition(); //!< Initialize device engine acquisition sequence
|
||||
bool startAcquisition(); //!< Start device engine acquisition sequence
|
||||
|
@ -56,6 +56,7 @@ public:
|
||||
void removeSink(SampleSink* sink);
|
||||
void addThreadedSink(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 startAcquisition() { return m_dspDeviceEngine->startAcquisition(); } //!< Start device engine acquisition sequence
|
||||
void stopAcquistion() { m_dspDeviceEngine->stopAcquistion(); } //!< Stop device engine acquisition sequence
|
||||
|
Loading…
Reference in New Issue
Block a user