From 6747a1cae7c4e376b1d7e42ae7b45bfc94072a91 Mon Sep 17 00:00:00 2001 From: f4exb Date: Mon, 16 May 2016 11:32:22 +0200 Subject: [PATCH] Multi device support: partially removed DSPDeviceEngine dependency in plugin manager --- sdrbase/device/deviceapi.cpp | 5 +++++ sdrbase/device/deviceapi.h | 2 ++ sdrbase/plugin/pluginmanager.cpp | 15 ++++++++------- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/sdrbase/device/deviceapi.cpp b/sdrbase/device/deviceapi.cpp index 2b15f93de..c08a67f64 100644 --- a/sdrbase/device/deviceapi.cpp +++ b/sdrbase/device/deviceapi.cpp @@ -99,6 +99,11 @@ void DeviceAPI::configureCorrections(bool dcOffsetCorrection, bool iqImbalanceCo m_deviceEngine->configureCorrections(dcOffsetCorrection, iqImbalanceCorrection); } +void DeviceAPI::setSourceSequence(int sourceSequence) +{ + m_deviceEngine->setSourceSequence(sourceSequence); +} + GLSpectrum *DeviceAPI::getSpectrum() { return m_spectrum; diff --git a/sdrbase/device/deviceapi.h b/sdrbase/device/deviceapi.h index 0acb222c5..f744fca21 100644 --- a/sdrbase/device/deviceapi.h +++ b/sdrbase/device/deviceapi.h @@ -34,6 +34,7 @@ class SampleSource; class MessageQueue; class ChannelMarker; class QWidget; +class PluginGUI; class SDRANGEL_API DeviceAPI : public QObject { Q_OBJECT @@ -54,6 +55,7 @@ public: MessageQueue *getDeviceInputMessageQueue(); MessageQueue *getDeviceOutputMessageQueue(); void configureCorrections(bool dcOffsetCorrection, bool iqImbalanceCorrection); //!< Configure current device engine DSP corrections + void setSourceSequence(int sourceSequence); // device related stuff GLSpectrum *getSpectrum(); //!< Direct spectrum getter diff --git a/sdrbase/plugin/pluginmanager.cpp b/sdrbase/plugin/pluginmanager.cpp index 18bd252c7..92580ee08 100644 --- a/sdrbase/plugin/pluginmanager.cpp +++ b/sdrbase/plugin/pluginmanager.cpp @@ -5,6 +5,7 @@ #include "plugin/pluginmanager.h" #include "plugin/plugingui.h" +#include "device/deviceapi.h" #include "settings/preset.h" #include "mainwindow.h" #include "gui/glspectrum.h" @@ -286,11 +287,11 @@ int PluginManager::selectSampleSourceByIndex(int index, DeviceAPI *deviceAPI) { qDebug("PluginManager::selectSampleSourceByIndex: index: %d", index); - m_dspDeviceEngine->stopAcquistion(); + deviceAPI->stopAcquisition(); if(m_sampleSourcePluginGUI != NULL) { - m_dspDeviceEngine->stopAcquistion(); - m_dspDeviceEngine->setSource(NULL); + deviceAPI->stopAcquisition(); + deviceAPI->setSource(0); m_sampleSourcePluginGUI->destroy(); m_sampleSourcePluginGUI = NULL; m_sampleSourceId.clear(); @@ -321,7 +322,7 @@ int PluginManager::selectSampleSourceByIndex(int index, DeviceAPI *deviceAPI) << " seq: " << m_sampleSourceSequence; m_sampleSourcePluginGUI = m_sampleSourceDevices[index].m_plugin->createSampleSourcePluginGUI(m_sampleSourceId, m_sampleSourceDevices[index].m_displayName, deviceAPI); - m_dspDeviceEngine->setSourceSequence(m_sampleSourceSequence); + deviceAPI->setSourceSequence(m_sampleSourceSequence); return index; } @@ -332,11 +333,11 @@ int PluginManager::selectFirstSampleSource(const QString& sourceId, DeviceAPI *d int index = -1; - m_dspDeviceEngine->stopAcquistion(); + deviceAPI->stopAcquisition(); if(m_sampleSourcePluginGUI != NULL) { - m_dspDeviceEngine->stopAcquistion(); - m_dspDeviceEngine->setSource(NULL); + deviceAPI->stopAcquisition(); + deviceAPI->setSource(0); m_sampleSourcePluginGUI->destroy(); m_sampleSourcePluginGUI = NULL; m_sampleSourceId.clear();