mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-06-25 05:25:27 -04:00
Multi device support: migrate device specific stuff outside plugin classes
This commit is contained in:
parent
a26174eb8b
commit
be918a217b
@ -156,6 +156,8 @@ set(sdrbase_SOURCES
|
|||||||
sdrbase/util/samplesourceserializer.cpp
|
sdrbase/util/samplesourceserializer.cpp
|
||||||
sdrbase/util/simpleserializer.cpp
|
sdrbase/util/simpleserializer.cpp
|
||||||
#sdrbase/util/spinlock.cpp
|
#sdrbase/util/spinlock.cpp
|
||||||
|
|
||||||
|
sdrbase/device/deviceapi.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set(sdrbase_HEADERS
|
set(sdrbase_HEADERS
|
||||||
@ -243,6 +245,8 @@ set(sdrbase_HEADERS
|
|||||||
sdrbase/util/samplesourceserializer.h
|
sdrbase/util/samplesourceserializer.h
|
||||||
sdrbase/util/simpleserializer.h
|
sdrbase/util/simpleserializer.h
|
||||||
#sdrbase/util/spinlock.h
|
#sdrbase/util/spinlock.h
|
||||||
|
|
||||||
|
sdrbase/device/deviceapi.h
|
||||||
)
|
)
|
||||||
|
|
||||||
set(sdrbase_SOURCES
|
set(sdrbase_SOURCES
|
||||||
|
@ -22,16 +22,18 @@
|
|||||||
#include "airspygui.h"
|
#include "airspygui.h"
|
||||||
#include "ui_airspygui.h"
|
#include "ui_airspygui.h"
|
||||||
#include "plugin/pluginapi.h"
|
#include "plugin/pluginapi.h"
|
||||||
|
#include "device/deviceapi.h"
|
||||||
#include "gui/colormapper.h"
|
#include "gui/colormapper.h"
|
||||||
#include "gui/glspectrum.h"
|
#include "gui/glspectrum.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
#include "dsp/dspcommands.h"
|
#include "dsp/dspcommands.h"
|
||||||
#include "dsp/filesink.h"
|
#include "dsp/filesink.h"
|
||||||
|
|
||||||
AirspyGui::AirspyGui(PluginAPI* pluginAPI, QWidget* parent) :
|
AirspyGui::AirspyGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::AirspyGui),
|
ui(new Ui::AirspyGui),
|
||||||
m_pluginAPI(pluginAPI),
|
m_pluginAPI(pluginAPI),
|
||||||
|
m_deviceAPI(deviceAPI),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_sampleSource(0),
|
m_sampleSource(0),
|
||||||
m_lastEngineState((DSPDeviceEngine::State)-1)
|
m_lastEngineState((DSPDeviceEngine::State)-1)
|
||||||
@ -55,7 +57,7 @@ AirspyGui::AirspyGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||||
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
||||||
m_pluginAPI->addSink(m_fileSink);
|
m_deviceAPI->addSink(m_fileSink);
|
||||||
|
|
||||||
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#define AIRSPY_MAX_DEVICE (32)
|
#define AIRSPY_MAX_DEVICE (32)
|
||||||
|
|
||||||
class PluginAPI;
|
class PluginAPI;
|
||||||
|
class DeviceAPI;
|
||||||
class FileSink;
|
class FileSink;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
@ -36,7 +37,7 @@ class AirspyGui : public QWidget, public PluginGUI {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit AirspyGui(PluginAPI* pluginAPI, QWidget* parent = NULL);
|
explicit AirspyGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent = NULL);
|
||||||
virtual ~AirspyGui();
|
virtual ~AirspyGui();
|
||||||
void destroy();
|
void destroy();
|
||||||
|
|
||||||
@ -56,6 +57,7 @@ private:
|
|||||||
Ui::AirspyGui* ui;
|
Ui::AirspyGui* ui;
|
||||||
|
|
||||||
PluginAPI* m_pluginAPI;
|
PluginAPI* m_pluginAPI;
|
||||||
|
DeviceAPI* m_deviceAPI;
|
||||||
AirspySettings m_settings;
|
AirspySettings m_settings;
|
||||||
QTimer m_updateTimer;
|
QTimer m_updateTimer;
|
||||||
QTimer m_statusTimer;
|
QTimer m_statusTimer;
|
||||||
|
@ -117,7 +117,7 @@ PluginInterface::SampleSourceDevices AirspyPlugin::enumSampleSources()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginGUI* AirspyPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName)
|
PluginGUI* AirspyPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI)
|
||||||
{
|
{
|
||||||
if (!m_pluginAPI)
|
if (!m_pluginAPI)
|
||||||
{
|
{
|
||||||
@ -126,7 +126,7 @@ PluginGUI* AirspyPlugin::createSampleSourcePluginGUI(const QString& sourceId, co
|
|||||||
|
|
||||||
if(sourceId == m_deviceTypeID)
|
if(sourceId == m_deviceTypeID)
|
||||||
{
|
{
|
||||||
AirspyGui* gui = new AirspyGui(m_pluginAPI);
|
AirspyGui* gui = new AirspyGui(m_pluginAPI, deviceAPI);
|
||||||
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
||||||
return gui;
|
return gui;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ public:
|
|||||||
void initPlugin(PluginAPI* pluginAPI);
|
void initPlugin(PluginAPI* pluginAPI);
|
||||||
|
|
||||||
virtual SampleSourceDevices enumSampleSources();
|
virtual SampleSourceDevices enumSampleSources();
|
||||||
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName);
|
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI);
|
||||||
|
|
||||||
static const QString m_deviceTypeID;
|
static const QString m_deviceTypeID;
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
#include "ui_bladerfgui.h"
|
#include "ui_bladerfgui.h"
|
||||||
#include "plugin/pluginapi.h"
|
#include "plugin/pluginapi.h"
|
||||||
|
#include "device/deviceapi.h"
|
||||||
#include "gui/colormapper.h"
|
#include "gui/colormapper.h"
|
||||||
#include "gui/glspectrum.h"
|
#include "gui/glspectrum.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
@ -28,10 +29,11 @@
|
|||||||
#include "dsp/filesink.h"
|
#include "dsp/filesink.h"
|
||||||
#include "bladerfgui.h"
|
#include "bladerfgui.h"
|
||||||
|
|
||||||
BladerfGui::BladerfGui(PluginAPI* pluginAPI, QWidget* parent) :
|
BladerfGui::BladerfGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::BladerfGui),
|
ui(new Ui::BladerfGui),
|
||||||
m_pluginAPI(pluginAPI),
|
m_pluginAPI(pluginAPI),
|
||||||
|
m_deviceAPI(deviceAPI),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_sampleSource(NULL),
|
m_sampleSource(NULL),
|
||||||
m_sampleRate(0),
|
m_sampleRate(0),
|
||||||
@ -65,7 +67,7 @@ BladerfGui::BladerfGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||||
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
||||||
m_pluginAPI->addSink(m_fileSink);
|
m_deviceAPI->addSink(m_fileSink);
|
||||||
|
|
||||||
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "bladerfinput.h"
|
#include "bladerfinput.h"
|
||||||
|
|
||||||
class PluginAPI;
|
class PluginAPI;
|
||||||
|
class DeviceAPI;
|
||||||
class FileSink;
|
class FileSink;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
@ -34,7 +35,7 @@ class BladerfGui : public QWidget, public PluginGUI {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit BladerfGui(PluginAPI* pluginAPI, QWidget* parent = NULL);
|
explicit BladerfGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent = NULL);
|
||||||
virtual ~BladerfGui();
|
virtual ~BladerfGui();
|
||||||
void destroy();
|
void destroy();
|
||||||
|
|
||||||
@ -52,6 +53,7 @@ private:
|
|||||||
Ui::BladerfGui* ui;
|
Ui::BladerfGui* ui;
|
||||||
|
|
||||||
PluginAPI* m_pluginAPI;
|
PluginAPI* m_pluginAPI;
|
||||||
|
DeviceAPI* m_deviceAPI;
|
||||||
BladeRFSettings m_settings;
|
BladeRFSettings m_settings;
|
||||||
QTimer m_updateTimer;
|
QTimer m_updateTimer;
|
||||||
QTimer m_statusTimer;
|
QTimer m_statusTimer;
|
||||||
|
@ -75,7 +75,7 @@ PluginInterface::SampleSourceDevices BlderfPlugin::enumSampleSources()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginGUI* BlderfPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName)
|
PluginGUI* BlderfPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI)
|
||||||
{
|
{
|
||||||
if (!m_pluginAPI)
|
if (!m_pluginAPI)
|
||||||
{
|
{
|
||||||
@ -84,7 +84,7 @@ PluginGUI* BlderfPlugin::createSampleSourcePluginGUI(const QString& sourceId, co
|
|||||||
|
|
||||||
if(sourceId == m_deviceTypeID)
|
if(sourceId == m_deviceTypeID)
|
||||||
{
|
{
|
||||||
BladerfGui* gui = new BladerfGui(m_pluginAPI);
|
BladerfGui* gui = new BladerfGui(m_pluginAPI, deviceAPI);
|
||||||
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
||||||
return gui;
|
return gui;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ public:
|
|||||||
void initPlugin(PluginAPI* pluginAPI);
|
void initPlugin(PluginAPI* pluginAPI);
|
||||||
|
|
||||||
virtual SampleSourceDevices enumSampleSources();
|
virtual SampleSourceDevices enumSampleSources();
|
||||||
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName);
|
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI);
|
||||||
|
|
||||||
static const QString m_deviceTypeID;
|
static const QString m_deviceTypeID;
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
#include "ui_fcdprogui.h"
|
#include "ui_fcdprogui.h"
|
||||||
#include "plugin/pluginapi.h"
|
#include "plugin/pluginapi.h"
|
||||||
|
#include "device/deviceapi.h"
|
||||||
#include "gui/colormapper.h"
|
#include "gui/colormapper.h"
|
||||||
#include "gui/glspectrum.h"
|
#include "gui/glspectrum.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
@ -26,10 +27,11 @@
|
|||||||
#include "fcdprogui.h"
|
#include "fcdprogui.h"
|
||||||
#include "fcdproconst.h"
|
#include "fcdproconst.h"
|
||||||
|
|
||||||
FCDProGui::FCDProGui(PluginAPI* pluginAPI, QWidget* parent) :
|
FCDProGui::FCDProGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::FCDProGui),
|
ui(new Ui::FCDProGui),
|
||||||
m_pluginAPI(pluginAPI),
|
m_pluginAPI(pluginAPI),
|
||||||
|
m_deviceAPI(deviceAPI),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_sampleSource(NULL),
|
m_sampleSource(NULL),
|
||||||
m_lastEngineState((DSPDeviceEngine::State)-1)
|
m_lastEngineState((DSPDeviceEngine::State)-1)
|
||||||
@ -146,7 +148,7 @@ FCDProGui::FCDProGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||||
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
||||||
m_pluginAPI->addSink(m_fileSink);
|
m_deviceAPI->addSink(m_fileSink);
|
||||||
|
|
||||||
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "plugin/plugingui.h"
|
#include "plugin/plugingui.h"
|
||||||
|
|
||||||
class PluginAPI;
|
class PluginAPI;
|
||||||
|
class DeviceAPI;
|
||||||
class FileSink;
|
class FileSink;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
@ -33,7 +34,7 @@ class FCDProGui : public QWidget, public PluginGUI {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FCDProGui(PluginAPI* pluginAPI, QWidget* parent = NULL);
|
explicit FCDProGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent = NULL);
|
||||||
virtual ~FCDProGui();
|
virtual ~FCDProGui();
|
||||||
void destroy();
|
void destroy();
|
||||||
|
|
||||||
@ -52,6 +53,7 @@ private:
|
|||||||
Ui::FCDProGui* ui;
|
Ui::FCDProGui* ui;
|
||||||
|
|
||||||
PluginAPI* m_pluginAPI;
|
PluginAPI* m_pluginAPI;
|
||||||
|
DeviceAPI* m_deviceAPI;
|
||||||
FCDProSettings m_settings;
|
FCDProSettings m_settings;
|
||||||
QTimer m_updateTimer;
|
QTimer m_updateTimer;
|
||||||
QTimer m_statusTimer;
|
QTimer m_statusTimer;
|
||||||
|
@ -74,11 +74,11 @@ PluginInterface::SampleSourceDevices FCDProPlugin::enumSampleSources()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginGUI* FCDProPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName)
|
PluginGUI* FCDProPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI)
|
||||||
{
|
{
|
||||||
if(sourceId == fcd_traits<Pro>::interfaceIID)
|
if(sourceId == fcd_traits<Pro>::interfaceIID)
|
||||||
{
|
{
|
||||||
FCDProGui* gui = new FCDProGui(m_pluginAPI);
|
FCDProGui* gui = new FCDProGui(m_pluginAPI, deviceAPI);
|
||||||
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
||||||
return gui;
|
return gui;
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public:
|
|||||||
void initPlugin(PluginAPI* pluginAPI);
|
void initPlugin(PluginAPI* pluginAPI);
|
||||||
|
|
||||||
virtual SampleSourceDevices enumSampleSources();
|
virtual SampleSourceDevices enumSampleSources();
|
||||||
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName);
|
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI);
|
||||||
|
|
||||||
static const QString m_deviceTypeID;
|
static const QString m_deviceTypeID;
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include "ui_fcdproplusgui.h"
|
#include "ui_fcdproplusgui.h"
|
||||||
#include "plugin/pluginapi.h"
|
#include "plugin/pluginapi.h"
|
||||||
|
#include "device/deviceapi.h"
|
||||||
#include "gui/colormapper.h"
|
#include "gui/colormapper.h"
|
||||||
#include "gui/glspectrum.h"
|
#include "gui/glspectrum.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
@ -27,10 +28,11 @@
|
|||||||
#include "fcdproplusgui.h"
|
#include "fcdproplusgui.h"
|
||||||
#include "fcdproplusconst.h"
|
#include "fcdproplusconst.h"
|
||||||
|
|
||||||
FCDProPlusGui::FCDProPlusGui(PluginAPI* pluginAPI, QWidget* parent) :
|
FCDProPlusGui::FCDProPlusGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::FCDProPlusGui),
|
ui(new Ui::FCDProPlusGui),
|
||||||
m_pluginAPI(pluginAPI),
|
m_pluginAPI(pluginAPI),
|
||||||
|
m_deviceAPI(deviceAPI),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_sampleSource(NULL),
|
m_sampleSource(NULL),
|
||||||
m_lastEngineState((DSPDeviceEngine::State)-1)
|
m_lastEngineState((DSPDeviceEngine::State)-1)
|
||||||
@ -64,7 +66,7 @@ FCDProPlusGui::FCDProPlusGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||||
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
||||||
m_pluginAPI->addSink(m_fileSink);
|
m_deviceAPI->addSink(m_fileSink);
|
||||||
|
|
||||||
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "plugin/plugingui.h"
|
#include "plugin/plugingui.h"
|
||||||
|
|
||||||
class PluginAPI;
|
class PluginAPI;
|
||||||
|
class DeviceAPI;
|
||||||
class FileSink;
|
class FileSink;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
@ -33,7 +34,7 @@ class FCDProPlusGui : public QWidget, public PluginGUI {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FCDProPlusGui(PluginAPI* pluginAPI, QWidget* parent = NULL);
|
explicit FCDProPlusGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent = NULL);
|
||||||
virtual ~FCDProPlusGui();
|
virtual ~FCDProPlusGui();
|
||||||
void destroy();
|
void destroy();
|
||||||
|
|
||||||
@ -52,6 +53,7 @@ private:
|
|||||||
Ui::FCDProPlusGui* ui;
|
Ui::FCDProPlusGui* ui;
|
||||||
|
|
||||||
PluginAPI* m_pluginAPI;
|
PluginAPI* m_pluginAPI;
|
||||||
|
DeviceAPI* m_deviceAPI;
|
||||||
FCDProPlusSettings m_settings;
|
FCDProPlusSettings m_settings;
|
||||||
QTimer m_updateTimer;
|
QTimer m_updateTimer;
|
||||||
QTimer m_statusTimer;
|
QTimer m_statusTimer;
|
||||||
|
@ -74,11 +74,11 @@ PluginInterface::SampleSourceDevices FCDProPlusPlugin::enumSampleSources()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginGUI* FCDProPlusPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName)
|
PluginGUI* FCDProPlusPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI)
|
||||||
{
|
{
|
||||||
if(sourceId == fcd_traits<ProPlus>::interfaceIID)
|
if(sourceId == fcd_traits<ProPlus>::interfaceIID)
|
||||||
{
|
{
|
||||||
FCDProPlusGui* gui = new FCDProPlusGui(m_pluginAPI);
|
FCDProPlusGui* gui = new FCDProPlusGui(m_pluginAPI, deviceAPI);
|
||||||
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
||||||
return gui;
|
return gui;
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public:
|
|||||||
void initPlugin(PluginAPI* pluginAPI);
|
void initPlugin(PluginAPI* pluginAPI);
|
||||||
|
|
||||||
virtual SampleSourceDevices enumSampleSources();
|
virtual SampleSourceDevices enumSampleSources();
|
||||||
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName);
|
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI);
|
||||||
|
|
||||||
static const QString m_deviceTypeID;
|
static const QString m_deviceTypeID;
|
||||||
|
|
||||||
|
@ -33,10 +33,11 @@
|
|||||||
|
|
||||||
#include "filesourcegui.h"
|
#include "filesourcegui.h"
|
||||||
|
|
||||||
FileSourceGui::FileSourceGui(PluginAPI* pluginAPI, QWidget* parent) :
|
FileSourceGui::FileSourceGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::FileSourceGui),
|
ui(new Ui::FileSourceGui),
|
||||||
m_pluginAPI(pluginAPI),
|
m_pluginAPI(pluginAPI),
|
||||||
|
m_deviceAPI(deviceAPI),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_sampleSource(NULL),
|
m_sampleSource(NULL),
|
||||||
m_acquisition(false),
|
m_acquisition(false),
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "filesourceinput.h"
|
#include "filesourceinput.h"
|
||||||
|
|
||||||
class PluginAPI;
|
class PluginAPI;
|
||||||
|
class DeviceAPI;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class FileSourceGui;
|
class FileSourceGui;
|
||||||
@ -32,7 +33,7 @@ class FileSourceGui : public QWidget, public PluginGUI {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FileSourceGui(PluginAPI* pluginAPI, QWidget* parent = NULL);
|
explicit FileSourceGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent = NULL);
|
||||||
virtual ~FileSourceGui();
|
virtual ~FileSourceGui();
|
||||||
void destroy();
|
void destroy();
|
||||||
|
|
||||||
@ -50,6 +51,7 @@ private:
|
|||||||
Ui::FileSourceGui* ui;
|
Ui::FileSourceGui* ui;
|
||||||
|
|
||||||
PluginAPI* m_pluginAPI;
|
PluginAPI* m_pluginAPI;
|
||||||
|
DeviceAPI* m_deviceAPI;
|
||||||
FileSourceInput::Settings m_settings;
|
FileSourceInput::Settings m_settings;
|
||||||
QTimer m_statusTimer;
|
QTimer m_statusTimer;
|
||||||
std::vector<int> m_gains;
|
std::vector<int> m_gains;
|
||||||
|
@ -67,11 +67,11 @@ PluginInterface::SampleSourceDevices FileSourcePlugin::enumSampleSources()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginGUI* FileSourcePlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName)
|
PluginGUI* FileSourcePlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI)
|
||||||
{
|
{
|
||||||
if(sourceId == m_deviceTypeID)
|
if(sourceId == m_deviceTypeID)
|
||||||
{
|
{
|
||||||
FileSourceGui* gui = new FileSourceGui(m_pluginAPI);
|
FileSourceGui* gui = new FileSourceGui(m_pluginAPI, deviceAPI);
|
||||||
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
||||||
return gui;
|
return gui;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ public:
|
|||||||
void initPlugin(PluginAPI* pluginAPI);
|
void initPlugin(PluginAPI* pluginAPI);
|
||||||
|
|
||||||
virtual SampleSourceDevices enumSampleSources();
|
virtual SampleSourceDevices enumSampleSources();
|
||||||
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName);
|
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI);
|
||||||
|
|
||||||
static const QString m_deviceTypeID;
|
static const QString m_deviceTypeID;
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include <libhackrf/hackrf.h>
|
#include <libhackrf/hackrf.h>
|
||||||
|
|
||||||
#include "plugin/pluginapi.h"
|
#include "plugin/pluginapi.h"
|
||||||
|
#include "device/deviceapi.h"
|
||||||
#include "gui/colormapper.h"
|
#include "gui/colormapper.h"
|
||||||
#include "gui/glspectrum.h"
|
#include "gui/glspectrum.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
@ -28,10 +29,11 @@
|
|||||||
#include "hackrfgui.h"
|
#include "hackrfgui.h"
|
||||||
#include "ui_hackrfgui.h"
|
#include "ui_hackrfgui.h"
|
||||||
|
|
||||||
HackRFGui::HackRFGui(PluginAPI* pluginAPI, QWidget* parent) :
|
HackRFGui::HackRFGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::HackRFGui),
|
ui(new Ui::HackRFGui),
|
||||||
m_pluginAPI(pluginAPI),
|
m_pluginAPI(pluginAPI),
|
||||||
|
m_deviceAPI(deviceAPI),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_sampleSource(NULL),
|
m_sampleSource(NULL),
|
||||||
m_lastEngineState((DSPDeviceEngine::State)-1)
|
m_lastEngineState((DSPDeviceEngine::State)-1)
|
||||||
@ -56,7 +58,7 @@ HackRFGui::HackRFGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||||
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
||||||
m_pluginAPI->addSink(m_fileSink);
|
m_deviceAPI->addSink(m_fileSink);
|
||||||
|
|
||||||
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#define HACKRF_MAX_DEVICE (32)
|
#define HACKRF_MAX_DEVICE (32)
|
||||||
|
|
||||||
class PluginAPI;
|
class PluginAPI;
|
||||||
|
class DeviceAPI;
|
||||||
class FileSink;
|
class FileSink;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
@ -43,7 +44,7 @@ public:
|
|||||||
HACKRF_IMGREJ_NB
|
HACKRF_IMGREJ_NB
|
||||||
} HackRFImgRejValue;
|
} HackRFImgRejValue;
|
||||||
|
|
||||||
explicit HackRFGui(PluginAPI* pluginAPI, QWidget* parent = NULL);
|
explicit HackRFGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent = NULL);
|
||||||
virtual ~HackRFGui();
|
virtual ~HackRFGui();
|
||||||
void destroy();
|
void destroy();
|
||||||
|
|
||||||
@ -61,6 +62,7 @@ private:
|
|||||||
Ui::HackRFGui* ui;
|
Ui::HackRFGui* ui;
|
||||||
|
|
||||||
PluginAPI* m_pluginAPI;
|
PluginAPI* m_pluginAPI;
|
||||||
|
DeviceAPI* m_deviceAPI;
|
||||||
HackRFSettings m_settings;
|
HackRFSettings m_settings;
|
||||||
QTimer m_updateTimer;
|
QTimer m_updateTimer;
|
||||||
QTimer m_statusTimer;
|
QTimer m_statusTimer;
|
||||||
|
@ -112,7 +112,7 @@ PluginInterface::SampleSourceDevices HackRFPlugin::enumSampleSources()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginGUI* HackRFPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName)
|
PluginGUI* HackRFPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI)
|
||||||
{
|
{
|
||||||
if (!m_pluginAPI)
|
if (!m_pluginAPI)
|
||||||
{
|
{
|
||||||
@ -121,7 +121,7 @@ PluginGUI* HackRFPlugin::createSampleSourcePluginGUI(const QString& sourceId, co
|
|||||||
|
|
||||||
if(sourceId == m_deviceTypeID)
|
if(sourceId == m_deviceTypeID)
|
||||||
{
|
{
|
||||||
HackRFGui* gui = new HackRFGui(m_pluginAPI);
|
HackRFGui* gui = new HackRFGui(m_pluginAPI, deviceAPI);
|
||||||
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
||||||
return gui;
|
return gui;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ public:
|
|||||||
void initPlugin(PluginAPI* pluginAPI);
|
void initPlugin(PluginAPI* pluginAPI);
|
||||||
|
|
||||||
virtual SampleSourceDevices enumSampleSources();
|
virtual SampleSourceDevices enumSampleSources();
|
||||||
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName);
|
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI);
|
||||||
|
|
||||||
static const QString m_deviceTypeID;
|
static const QString m_deviceTypeID;
|
||||||
|
|
||||||
|
@ -20,16 +20,18 @@
|
|||||||
#include "rtlsdrgui.h"
|
#include "rtlsdrgui.h"
|
||||||
#include "ui_rtlsdrgui.h"
|
#include "ui_rtlsdrgui.h"
|
||||||
#include "plugin/pluginapi.h"
|
#include "plugin/pluginapi.h"
|
||||||
|
#include "device/deviceapi.h"
|
||||||
#include "gui/colormapper.h"
|
#include "gui/colormapper.h"
|
||||||
#include "gui/glspectrum.h"
|
#include "gui/glspectrum.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
#include "dsp/dspcommands.h"
|
#include "dsp/dspcommands.h"
|
||||||
#include "dsp/filesink.h"
|
#include "dsp/filesink.h"
|
||||||
|
|
||||||
RTLSDRGui::RTLSDRGui(PluginAPI* pluginAPI, QWidget* parent) :
|
RTLSDRGui::RTLSDRGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::RTLSDRGui),
|
ui(new Ui::RTLSDRGui),
|
||||||
m_pluginAPI(pluginAPI),
|
m_pluginAPI(pluginAPI),
|
||||||
|
m_deviceAPI(deviceAPI),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_sampleSource(0),
|
m_sampleSource(0),
|
||||||
m_lastEngineState((DSPDeviceEngine::State)-1)
|
m_lastEngineState((DSPDeviceEngine::State)-1)
|
||||||
@ -58,7 +60,7 @@ RTLSDRGui::RTLSDRGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||||
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
||||||
m_pluginAPI->addSink(m_fileSink);
|
m_deviceAPI->addSink(m_fileSink);
|
||||||
|
|
||||||
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "rtlsdrinput.h"
|
#include "rtlsdrinput.h"
|
||||||
|
|
||||||
class PluginAPI;
|
class PluginAPI;
|
||||||
|
class DeviceAPI;
|
||||||
class FileSink;
|
class FileSink;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
@ -33,7 +34,7 @@ class RTLSDRGui : public QWidget, public PluginGUI {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit RTLSDRGui(PluginAPI* pluginAPI, QWidget* parent = NULL);
|
explicit RTLSDRGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent = NULL);
|
||||||
virtual ~RTLSDRGui();
|
virtual ~RTLSDRGui();
|
||||||
void destroy();
|
void destroy();
|
||||||
|
|
||||||
@ -51,6 +52,7 @@ private:
|
|||||||
Ui::RTLSDRGui* ui;
|
Ui::RTLSDRGui* ui;
|
||||||
|
|
||||||
PluginAPI* m_pluginAPI;
|
PluginAPI* m_pluginAPI;
|
||||||
|
DeviceAPI* m_deviceAPI;
|
||||||
RTLSDRSettings m_settings;
|
RTLSDRSettings m_settings;
|
||||||
QTimer m_updateTimer;
|
QTimer m_updateTimer;
|
||||||
QTimer m_statusTimer;
|
QTimer m_statusTimer;
|
||||||
|
@ -59,10 +59,10 @@ PluginInterface::SampleSourceDevices RTLSDRPlugin::enumSampleSources()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginGUI* RTLSDRPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName)
|
PluginGUI* RTLSDRPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI)
|
||||||
{
|
{
|
||||||
if(sourceId == m_deviceTypeID) {
|
if(sourceId == m_deviceTypeID) {
|
||||||
RTLSDRGui* gui = new RTLSDRGui(m_pluginAPI);
|
RTLSDRGui* gui = new RTLSDRGui(m_pluginAPI, deviceAPI);
|
||||||
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
||||||
return gui;
|
return gui;
|
||||||
} else {
|
} else {
|
||||||
|
@ -18,7 +18,7 @@ public:
|
|||||||
void initPlugin(PluginAPI* pluginAPI);
|
void initPlugin(PluginAPI* pluginAPI);
|
||||||
|
|
||||||
virtual SampleSourceDevices enumSampleSources();
|
virtual SampleSourceDevices enumSampleSources();
|
||||||
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName);
|
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI);
|
||||||
|
|
||||||
static const QString m_deviceTypeID;
|
static const QString m_deviceTypeID;
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
|
|
||||||
#include "ui_sdrdaemongui.h"
|
#include "ui_sdrdaemongui.h"
|
||||||
#include "plugin/pluginapi.h"
|
#include "plugin/pluginapi.h"
|
||||||
|
#include "device/deviceapi.h"
|
||||||
#include "gui/colormapper.h"
|
#include "gui/colormapper.h"
|
||||||
#include "gui/glspectrum.h"
|
#include "gui/glspectrum.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
@ -41,10 +42,11 @@
|
|||||||
|
|
||||||
#include "sdrdaemongui.h"
|
#include "sdrdaemongui.h"
|
||||||
|
|
||||||
SDRdaemonGui::SDRdaemonGui(PluginAPI* pluginAPI, QWidget* parent) :
|
SDRdaemonGui::SDRdaemonGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::SDRdaemonGui),
|
ui(new Ui::SDRdaemonGui),
|
||||||
m_pluginAPI(pluginAPI),
|
m_pluginAPI(pluginAPI),
|
||||||
|
m_deviceAPI(deviceAPI),
|
||||||
m_sampleSource(NULL),
|
m_sampleSource(NULL),
|
||||||
m_acquisition(false),
|
m_acquisition(false),
|
||||||
m_lastEngineState((DSPDeviceEngine::State)-1),
|
m_lastEngineState((DSPDeviceEngine::State)-1),
|
||||||
@ -99,7 +101,7 @@ SDRdaemonGui::SDRdaemonGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
|
||||||
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
m_fileSink = new FileSink(std::string(recFileNameCStr));
|
||||||
m_pluginAPI->addSink(m_fileSink);
|
m_deviceAPI->addSink(m_fileSink);
|
||||||
|
|
||||||
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include "sdrdaemoninput.h"
|
#include "sdrdaemoninput.h"
|
||||||
|
|
||||||
class PluginAPI;
|
class PluginAPI;
|
||||||
|
class DeviceAPI;
|
||||||
class FileSink;
|
class FileSink;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
@ -34,7 +35,7 @@ class SDRdaemonGui : public QWidget, public PluginGUI {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit SDRdaemonGui(PluginAPI* pluginAPI, QWidget* parent = NULL);
|
explicit SDRdaemonGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget* parent = NULL);
|
||||||
virtual ~SDRdaemonGui();
|
virtual ~SDRdaemonGui();
|
||||||
void destroy();
|
void destroy();
|
||||||
|
|
||||||
@ -52,6 +53,7 @@ private:
|
|||||||
Ui::SDRdaemonGui* ui;
|
Ui::SDRdaemonGui* ui;
|
||||||
|
|
||||||
PluginAPI* m_pluginAPI;
|
PluginAPI* m_pluginAPI;
|
||||||
|
DeviceAPI* m_deviceAPI;
|
||||||
QTimer m_updateTimer;
|
QTimer m_updateTimer;
|
||||||
QTimer m_statusTimer;
|
QTimer m_statusTimer;
|
||||||
SampleSource* m_sampleSource;
|
SampleSource* m_sampleSource;
|
||||||
|
@ -67,11 +67,11 @@ PluginInterface::SampleSourceDevices SDRdaemonPlugin::enumSampleSources()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginGUI* SDRdaemonPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName)
|
PluginGUI* SDRdaemonPlugin::createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI)
|
||||||
{
|
{
|
||||||
if(sourceId == m_deviceTypeID)
|
if(sourceId == m_deviceTypeID)
|
||||||
{
|
{
|
||||||
SDRdaemonGui* gui = new SDRdaemonGui(m_pluginAPI);
|
SDRdaemonGui* gui = new SDRdaemonGui(m_pluginAPI, deviceAPI);
|
||||||
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
m_pluginAPI->setInputGUI(gui, sourceDisplayName);
|
||||||
return gui;
|
return gui;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ public:
|
|||||||
void initPlugin(PluginAPI* pluginAPI);
|
void initPlugin(PluginAPI* pluginAPI);
|
||||||
|
|
||||||
virtual SampleSourceDevices enumSampleSources();
|
virtual SampleSourceDevices enumSampleSources();
|
||||||
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName);
|
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName, DeviceAPI *deviceAPI);
|
||||||
|
|
||||||
static const QString m_deviceTypeID;
|
static const QString m_deviceTypeID;
|
||||||
|
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
#include "dsp/dspcommands.h"
|
#include "dsp/dspcommands.h"
|
||||||
#include "plugin/plugingui.h"
|
#include "plugin/plugingui.h"
|
||||||
#include "plugin/pluginapi.h"
|
#include "plugin/pluginapi.h"
|
||||||
|
#include "device/deviceapi.h"
|
||||||
#include "plugin/plugingui.h"
|
#include "plugin/plugingui.h"
|
||||||
|
|
||||||
#include "gui/glspectrum.h"
|
#include "gui/glspectrum.h"
|
||||||
@ -142,7 +143,7 @@ MainWindow::MainWindow(QWidget* parent) :
|
|||||||
qDebug() << "MainWindow::MainWindow: select SampleSource from settings...";
|
qDebug() << "MainWindow::MainWindow: select SampleSource from settings...";
|
||||||
|
|
||||||
int sampleSourceIndex = m_settings.getSourceIndex();
|
int sampleSourceIndex = m_settings.getSourceIndex();
|
||||||
sampleSourceIndex = m_deviceUIs.back()->m_pluginManager->selectSampleSourceByIndex(sampleSourceIndex);
|
sampleSourceIndex = m_deviceUIs.back()->m_pluginManager->selectSampleSourceByIndex(sampleSourceIndex, m_deviceUIs.back()->m_deviceAPI);
|
||||||
|
|
||||||
if (sampleSourceIndex >= 0)
|
if (sampleSourceIndex >= 0)
|
||||||
{
|
{
|
||||||
@ -195,8 +196,13 @@ void MainWindow::addDevice()
|
|||||||
m_deviceUIs.push_back(new DeviceUISet(m_masterTimer));
|
m_deviceUIs.push_back(new DeviceUISet(m_masterTimer));
|
||||||
m_deviceUIs.back()->m_deviceEngine = dspDeviceEngine;
|
m_deviceUIs.back()->m_deviceEngine = dspDeviceEngine;
|
||||||
|
|
||||||
|
DeviceAPI *deviceAPI = new DeviceAPI(dspDeviceEngine, m_deviceUIs.back()->m_spectrum);
|
||||||
|
m_deviceUIs.back()->m_deviceAPI = deviceAPI;
|
||||||
|
|
||||||
|
// TODO: do not create one plugin manager per device. Use device API instead
|
||||||
PluginManager *pluginManager = new PluginManager(this, m_deviceUIs.size()-1, dspDeviceEngine, m_deviceUIs.back()->m_spectrum);
|
PluginManager *pluginManager = new PluginManager(this, m_deviceUIs.size()-1, dspDeviceEngine, m_deviceUIs.back()->m_spectrum);
|
||||||
m_deviceUIs.back()->m_pluginManager = pluginManager;
|
m_deviceUIs.back()->m_pluginManager = pluginManager;
|
||||||
|
|
||||||
pluginManager->loadPlugins();
|
pluginManager->loadPlugins();
|
||||||
|
|
||||||
m_deviceUIs.back()->m_samplingDeviceControl->setPluginManager(pluginManager);
|
m_deviceUIs.back()->m_samplingDeviceControl->setPluginManager(pluginManager);
|
||||||
@ -229,6 +235,7 @@ void MainWindow::removeLastDevice()
|
|||||||
// On the other hand freeAll() must be executed only once
|
// On the other hand freeAll() must be executed only once
|
||||||
delete m_deviceUIs.back()->m_pluginManager;
|
delete m_deviceUIs.back()->m_pluginManager;
|
||||||
//m_deviceUIs.back()->m_pluginManager->freeAll();
|
//m_deviceUIs.back()->m_pluginManager->freeAll();
|
||||||
|
//delete m_deviceUIs.back()->m_deviceAPI; // TODO: reinstate when plugin manager is not created for each device
|
||||||
|
|
||||||
lastDeviceEngine->stop();
|
lastDeviceEngine->stop();
|
||||||
m_dspEngine->removeLastDeviceEngine();
|
m_dspEngine->removeLastDeviceEngine();
|
||||||
@ -664,7 +671,7 @@ void MainWindow::on_sampleSource_currentIndexChanged(int index)
|
|||||||
{
|
{
|
||||||
DeviceUISet *deviceUI = m_deviceUIs[currentSourceTabIndex];
|
DeviceUISet *deviceUI = m_deviceUIs[currentSourceTabIndex];
|
||||||
deviceUI->m_pluginManager->saveSourceSettings(m_settings.getWorkingPreset());
|
deviceUI->m_pluginManager->saveSourceSettings(m_settings.getWorkingPreset());
|
||||||
deviceUI->m_pluginManager->selectSampleSourceByIndex(deviceUI->m_samplingDeviceControl->getDeviceSelector()->currentIndex());
|
deviceUI->m_pluginManager->selectSampleSourceByIndex(deviceUI->m_samplingDeviceControl->getDeviceSelector()->currentIndex(), deviceUI->m_deviceAPI);
|
||||||
m_settings.setSourceIndex(deviceUI->m_samplingDeviceControl->getDeviceSelector()->currentIndex());
|
m_settings.setSourceIndex(deviceUI->m_samplingDeviceControl->getDeviceSelector()->currentIndex());
|
||||||
|
|
||||||
deviceUI->m_pluginManager->loadSourceSettings(m_settings.getWorkingPreset());
|
deviceUI->m_pluginManager->loadSourceSettings(m_settings.getWorkingPreset());
|
||||||
|
@ -42,6 +42,7 @@ class PluginAPI;
|
|||||||
class PluginGUI;
|
class PluginGUI;
|
||||||
class ChannelMarker;
|
class ChannelMarker;
|
||||||
class PluginManager;
|
class PluginManager;
|
||||||
|
class DeviceAPI;
|
||||||
class PluginInterface;
|
class PluginInterface;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
@ -61,6 +62,7 @@ public:
|
|||||||
SamplingDeviceControl *m_samplingDeviceControl;
|
SamplingDeviceControl *m_samplingDeviceControl;
|
||||||
DSPDeviceEngine *m_deviceEngine;
|
DSPDeviceEngine *m_deviceEngine;
|
||||||
PluginManager *m_pluginManager;
|
PluginManager *m_pluginManager;
|
||||||
|
DeviceAPI *m_deviceAPI;
|
||||||
|
|
||||||
DeviceUISet(QTimer& timer);
|
DeviceUISet(QTimer& timer);
|
||||||
~DeviceUISet();
|
~DeviceUISet();
|
||||||
|
@ -59,10 +59,10 @@ void PluginAPI::registerSampleSource(const QString& sourceName, PluginInterface*
|
|||||||
m_pluginManager->registerSampleSource(sourceName, plugin);
|
m_pluginManager->registerSampleSource(sourceName, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PluginAPI::addSink(SampleSink* sink)
|
//void PluginAPI::addSink(SampleSink* sink)
|
||||||
{
|
//{
|
||||||
m_pluginManager->addSink(sink);
|
// m_pluginManager->addSink(sink);
|
||||||
}
|
//}
|
||||||
|
|
||||||
void PluginAPI::removeSink(SampleSink* sink)
|
void PluginAPI::removeSink(SampleSink* sink)
|
||||||
{
|
{
|
||||||
|
@ -41,7 +41,7 @@ public:
|
|||||||
void registerSampleSource(const QString& sourceName, PluginInterface* plugin);
|
void registerSampleSource(const QString& sourceName, PluginInterface* plugin);
|
||||||
|
|
||||||
// Device engine stuff
|
// Device engine stuff
|
||||||
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 setSource(SampleSource* source); //!< Set device engine sample source type
|
||||||
|
@ -15,6 +15,7 @@ struct PluginDescriptor {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class PluginAPI;
|
class PluginAPI;
|
||||||
|
class DeviceAPI;
|
||||||
class PluginGUI;
|
class PluginGUI;
|
||||||
|
|
||||||
class PluginInterface {
|
class PluginInterface {
|
||||||
@ -46,7 +47,12 @@ public:
|
|||||||
virtual PluginGUI* createChannel(const QString& channelName) { return 0; }
|
virtual PluginGUI* createChannel(const QString& channelName) { return 0; }
|
||||||
|
|
||||||
virtual SampleSourceDevices enumSampleSources() { return SampleSourceDevices(); }
|
virtual SampleSourceDevices enumSampleSources() { return SampleSourceDevices(); }
|
||||||
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceDisplayName) { return 0; }
|
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId,
|
||||||
|
const QString& sourceDisplayName,
|
||||||
|
DeviceAPI *deviceAPI)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Q_DECLARE_INTERFACE(PluginInterface, "SDRangel.PluginInterface/0.1");
|
Q_DECLARE_INTERFACE(PluginInterface, "SDRangel.PluginInterface/0.1");
|
||||||
|
@ -106,10 +106,10 @@ void PluginManager::setInputGUI(QWidget* gui, const QString& sourceDisplayName)
|
|||||||
m_mainWindow->setInputGUI(m_deviceTabIndex, gui, sourceDisplayName);
|
m_mainWindow->setInputGUI(m_deviceTabIndex, gui, sourceDisplayName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PluginManager::addSink(SampleSink* sink)
|
//void PluginManager::addSink(SampleSink* sink)
|
||||||
{
|
//{
|
||||||
m_dspDeviceEngine->addSink(sink);
|
// m_dspDeviceEngine->addSink(sink);
|
||||||
}
|
//}
|
||||||
|
|
||||||
void PluginManager::removeSink(SampleSink* sink)
|
void PluginManager::removeSink(SampleSink* sink)
|
||||||
{
|
{
|
||||||
@ -318,7 +318,7 @@ void PluginManager::fillSampleSourceSelector(QComboBox* comboBox)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int PluginManager::selectSampleSourceByIndex(int index)
|
int PluginManager::selectSampleSourceByIndex(int index, DeviceAPI *deviceAPI)
|
||||||
{
|
{
|
||||||
qDebug("PluginManager::selectSampleSourceByIndex: index: %d", index);
|
qDebug("PluginManager::selectSampleSourceByIndex: index: %d", index);
|
||||||
|
|
||||||
@ -356,13 +356,13 @@ int PluginManager::selectSampleSourceByIndex(int index)
|
|||||||
<< " ser: " << m_sampleSourceSerial.toStdString().c_str()
|
<< " ser: " << m_sampleSourceSerial.toStdString().c_str()
|
||||||
<< " seq: " << m_sampleSourceSequence;
|
<< " seq: " << m_sampleSourceSequence;
|
||||||
|
|
||||||
m_sampleSourcePluginGUI = m_sampleSourceDevices[index].m_plugin->createSampleSourcePluginGUI(m_sampleSourceId, m_sampleSourceDevices[index].m_displayName);
|
m_sampleSourcePluginGUI = m_sampleSourceDevices[index].m_plugin->createSampleSourcePluginGUI(m_sampleSourceId, m_sampleSourceDevices[index].m_displayName, deviceAPI);
|
||||||
m_dspDeviceEngine->setSourceSequence(m_sampleSourceSequence);
|
m_dspDeviceEngine->setSourceSequence(m_sampleSourceSequence);
|
||||||
|
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
int PluginManager::selectFirstSampleSource(const QString& sourceId)
|
int PluginManager::selectFirstSampleSource(const QString& sourceId, DeviceAPI *deviceAPI)
|
||||||
{
|
{
|
||||||
qDebug("PluginManager::selectFirstSampleSource by id: [%s]", qPrintable(sourceId));
|
qDebug("PluginManager::selectFirstSampleSource by id: [%s]", qPrintable(sourceId));
|
||||||
|
|
||||||
@ -410,12 +410,12 @@ int PluginManager::selectFirstSampleSource(const QString& sourceId)
|
|||||||
<< " ser: " << m_sampleSourceSerial.toStdString().c_str()
|
<< " ser: " << m_sampleSourceSerial.toStdString().c_str()
|
||||||
<< " seq: " << m_sampleSourceSequence;
|
<< " seq: " << m_sampleSourceSequence;
|
||||||
|
|
||||||
m_sampleSourcePluginGUI = m_sampleSourceDevices[index].m_plugin->createSampleSourcePluginGUI(m_sampleSourceId, m_sampleSourceDevices[index].m_displayName);
|
m_sampleSourcePluginGUI = m_sampleSourceDevices[index].m_plugin->createSampleSourcePluginGUI(m_sampleSourceId, m_sampleSourceDevices[index].m_displayName, deviceAPI);
|
||||||
|
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
int PluginManager::selectSampleSourceBySerialOrSequence(const QString& sourceId, const QString& sourceSerial, int sourceSequence)
|
int PluginManager::selectSampleSourceBySerialOrSequence(const QString& sourceId, const QString& sourceSerial, int sourceSequence, DeviceAPI *deviceAPI)
|
||||||
{
|
{
|
||||||
qDebug("PluginManager::selectSampleSourceBySequence by sequence: id: %s ser: %s seq: %d", qPrintable(sourceId), qPrintable(sourceSerial), sourceSequence);
|
qDebug("PluginManager::selectSampleSourceBySequence by sequence: id: %s ser: %s seq: %d", qPrintable(sourceId), qPrintable(sourceSerial), sourceSequence);
|
||||||
|
|
||||||
@ -477,7 +477,7 @@ int PluginManager::selectSampleSourceBySerialOrSequence(const QString& sourceId,
|
|||||||
<< " ser: " << qPrintable(m_sampleSourceSerial)
|
<< " ser: " << qPrintable(m_sampleSourceSerial)
|
||||||
<< " seq: " << m_sampleSourceSequence;
|
<< " seq: " << m_sampleSourceSequence;
|
||||||
|
|
||||||
m_sampleSourcePluginGUI = m_sampleSourceDevices[index].m_plugin->createSampleSourcePluginGUI(m_sampleSourceId, m_sampleSourceDevices[index].m_displayName);
|
m_sampleSourcePluginGUI = m_sampleSourceDevices[index].m_plugin->createSampleSourcePluginGUI(m_sampleSourceId, m_sampleSourceDevices[index].m_displayName, deviceAPI);
|
||||||
|
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ class GLSpectrum;
|
|||||||
class SampleSink;
|
class SampleSink;
|
||||||
class ThreadedSampleSink;
|
class ThreadedSampleSink;
|
||||||
class ChannelMarker;
|
class ChannelMarker;
|
||||||
|
class DeviceAPI;
|
||||||
|
|
||||||
class SDRANGEL_API PluginManager : public QObject {
|
class SDRANGEL_API PluginManager : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -58,7 +59,7 @@ public:
|
|||||||
|
|
||||||
void setInputGUI(QWidget* gui, const QString& sourceDisplayName);
|
void setInputGUI(QWidget* gui, const QString& sourceDisplayName);
|
||||||
|
|
||||||
void addSink(SampleSink* sink);
|
// void addSink(SampleSink* sink);
|
||||||
void removeSink(SampleSink* sink);
|
void removeSink(SampleSink* sink);
|
||||||
void addThreadedSink(ThreadedSampleSink* sink);
|
void addThreadedSink(ThreadedSampleSink* sink);
|
||||||
void removeThreadedSink(ThreadedSampleSink* sink);
|
void removeThreadedSink(ThreadedSampleSink* sink);
|
||||||
@ -90,9 +91,9 @@ public:
|
|||||||
|
|
||||||
void updateSampleSourceDevices();
|
void updateSampleSourceDevices();
|
||||||
void fillSampleSourceSelector(QComboBox* comboBox);
|
void fillSampleSourceSelector(QComboBox* comboBox);
|
||||||
int selectSampleSourceByIndex(int index);
|
int selectSampleSourceByIndex(int index, DeviceAPI *deviceAPI);
|
||||||
int selectFirstSampleSource(const QString& sourceId);
|
int selectFirstSampleSource(const QString& sourceId, DeviceAPI *deviceAPI);
|
||||||
int selectSampleSourceBySerialOrSequence(const QString& sourceId, const QString& sourceSerial, int sourceSequence);
|
int selectSampleSourceBySerialOrSequence(const QString& sourceId, const QString& sourceSerial, int sourceSequence, DeviceAPI *deviceAPI);
|
||||||
|
|
||||||
void populateChannelComboBox(QComboBox *channels);
|
void populateChannelComboBox(QComboBox *channels);
|
||||||
void createChannelInstance(int channelPluginIndex);
|
void createChannelInstance(int channelPluginIndex);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user