1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-08 08:54:49 -04:00

Multi device support: migrate device specific stuff outside plugin classes completed for source plugins

This commit is contained in:
f4exb
2016-05-16 02:14:36 +02:00
parent 4756299ad9
commit 7412ee0d54
28 changed files with 256 additions and 255 deletions
@@ -60,20 +60,20 @@ FCDProPlusGui::FCDProPlusGui(PluginAPI* pluginAPI, DeviceAPI *deviceAPI, QWidget
displaySettings();
m_sampleSource = new FCDProPlusInput(m_pluginAPI);
m_pluginAPI->setSource(m_sampleSource);
m_sampleSource = new FCDProPlusInput(m_deviceAPI);
m_deviceAPI->setSource(m_sampleSource);
char recFileNameCStr[30];
sprintf(recFileNameCStr, "test_%d.sdriq", m_pluginAPI->getDeviceUID());
sprintf(recFileNameCStr, "test_%d.sdriq", m_deviceAPI->getDeviceUID());
m_fileSink = new FileSink(std::string(recFileNameCStr));
m_deviceAPI->addSink(m_fileSink);
connect(m_pluginAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
connect(m_deviceAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
}
FCDProPlusGui::~FCDProPlusGui()
{
m_pluginAPI->removeSink(m_fileSink);
m_deviceAPI->removeSink(m_fileSink);
delete m_fileSink;
delete ui;
}
@@ -141,7 +141,7 @@ void FCDProPlusGui::handleDSPMessages()
{
Message* message;
while ((message = m_pluginAPI->getDeviceOutputMessageQueue()->pop()) != 0)
while ((message = m_deviceAPI->getDeviceOutputMessageQueue()->pop()) != 0)
{
qDebug("RTLSDRGui::handleDSPMessages: message: %s", message->getIdentifier());
@@ -161,8 +161,8 @@ void FCDProPlusGui::handleDSPMessages()
void FCDProPlusGui::updateSampleRateAndFrequency()
{
m_pluginAPI->getSpectrum()->setSampleRate(m_sampleRate);
m_pluginAPI->getSpectrum()->setCenterFrequency(m_deviceCenterFrequency);
m_deviceAPI->getSpectrum()->setSampleRate(m_sampleRate);
m_deviceAPI->getSpectrum()->setCenterFrequency(m_deviceCenterFrequency);
ui->deviceRateText->setText(tr("%1k").arg((float)m_sampleRate / 1000));
}
@@ -215,7 +215,7 @@ void FCDProPlusGui::updateHardware()
void FCDProPlusGui::updateStatus()
{
int state = m_pluginAPI->state();
int state = m_deviceAPI->state();
if(m_lastEngineState != state)
{
@@ -232,7 +232,7 @@ void FCDProPlusGui::updateStatus()
break;
case DSPDeviceEngine::StError:
ui->startStop->setStyleSheet("QToolButton { background-color : red; }");
QMessageBox::information(this, tr("Message"), m_pluginAPI->errorMessage());
QMessageBox::information(this, tr("Message"), m_deviceAPI->errorMessage());
break;
default:
break;
@@ -290,15 +290,15 @@ void FCDProPlusGui::on_startStop_toggled(bool checked)
{
if (checked)
{
if (m_pluginAPI->initAcquisition())
if (m_deviceAPI->initAcquisition())
{
m_pluginAPI->startAcquisition();
m_deviceAPI->startAcquisition();
DSPEngine::instance()->startAudio();
}
}
else
{
m_pluginAPI->stopAcquistion();
m_deviceAPI->stopAcquisition();
DSPEngine::instance()->stopAudio();
}
}
@@ -20,7 +20,7 @@
#include <string.h>
#include <errno.h>
#include "plugin/pluginapi.h"
#include "device/deviceapi.h"
#include "dsp/dspcommands.h"
#include "dsp/dspengine.h"
#include "fcdproplusinput.h"
@@ -32,8 +32,8 @@
MESSAGE_CLASS_DEFINITION(FCDProPlusInput::MsgConfigureFCD, Message)
FCDProPlusInput::FCDProPlusInput(PluginAPI *pluginAPI) :
m_pluginApi(pluginAPI),
FCDProPlusInput::FCDProPlusInput(DeviceAPI *deviceAPI) :
m_deviceAPI(deviceAPI),
m_dev(0),
m_settings(),
m_FCDThread(0),
@@ -234,19 +234,19 @@ void FCDProPlusInput::applySettings(const FCDProPlusSettings& settings, bool for
if ((m_settings.m_dcBlock != settings.m_dcBlock) || force)
{
m_settings.m_dcBlock = settings.m_dcBlock;
m_pluginApi->configureCorrections(m_settings.m_dcBlock, m_settings.m_iqImbalance);
m_deviceAPI->configureCorrections(m_settings.m_dcBlock, m_settings.m_iqImbalance);
}
if ((m_settings.m_iqImbalance != settings.m_iqImbalance) || force)
{
m_settings.m_iqImbalance = settings.m_iqImbalance;
m_pluginApi->configureCorrections(m_settings.m_dcBlock, m_settings.m_iqImbalance);
m_deviceAPI->configureCorrections(m_settings.m_dcBlock, m_settings.m_iqImbalance);
}
if (signalChange)
{
DSPSignalNotification *notif = new DSPSignalNotification(fcd_traits<ProPlus>::sampleRate, m_settings.m_centerFrequency);
m_pluginApi->getDeviceInputMessageQueue()->push(notif);
m_deviceAPI->getDeviceInputMessageQueue()->push(notif);
}
}
@@ -28,7 +28,7 @@ struct fcd_buffer {
std::size_t length;
};
class PluginAPI;
class DeviceAPI;
class FCDProPlusThread;
class FCDProPlusInput : public SampleSource {
@@ -53,7 +53,7 @@ public:
{ }
};
FCDProPlusInput(PluginAPI *pluginAPI);
FCDProPlusInput(DeviceAPI *deviceAPI);
virtual ~FCDProPlusInput();
virtual bool init(const Message& cmd);
@@ -78,7 +78,7 @@ public:
private:
void applySettings(const FCDProPlusSettings& settings, bool force);
PluginAPI *m_pluginApi;
DeviceAPI *m_deviceAPI;
hid_device *m_dev;
QMutex m_mutex;
FCDProPlusSettings m_settings;