1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-03 06:24:48 -04:00

Multi device support: pass plugin API to devices input handlers to give access to DSP device engine methods

This commit is contained in:
f4exb
2016-05-12 23:35:30 +02:00
parent 7b0e6fd42e
commit 7707858d57
25 changed files with 62 additions and 45 deletions
@@ -58,7 +58,7 @@ FCDProPlusGui::FCDProPlusGui(PluginAPI* pluginAPI, QWidget* parent) :
displaySettings();
m_sampleSource = new FCDProPlusInput();
m_sampleSource = new FCDProPlusInput(m_pluginAPI);
DSPEngine::instance()->setSource(m_sampleSource);
char recFileNameCStr[30];
@@ -19,6 +19,8 @@
#include <QDebug>
#include <string.h>
#include <errno.h>
#include "plugin/pluginapi.h"
#include "dsp/dspcommands.h"
#include "dsp/dspengine.h"
#include "fcdproplusinput.h"
@@ -30,7 +32,8 @@
MESSAGE_CLASS_DEFINITION(FCDProPlusInput::MsgConfigureFCD, Message)
FCDProPlusInput::FCDProPlusInput() :
FCDProPlusInput::FCDProPlusInput(PluginAPI *pluginAPI) :
m_pluginApi(pluginAPI),
m_dev(0),
m_settings(),
m_FCDThread(0),
@@ -177,7 +180,7 @@ void FCDProPlusInput::applySettings(const FCDProPlusSettings& settings, bool for
set_bias_t(settings.m_biasT);
}
}
if ((m_settings.m_mixGain != settings.m_mixGain) || force)
{
m_settings.m_mixGain = settings.m_mixGain;
@@ -243,7 +246,8 @@ void FCDProPlusInput::applySettings(const FCDProPlusSettings& settings, bool for
if (signalChange)
{
DSPSignalNotification *notif = new DSPSignalNotification(fcd_traits<ProPlus>::sampleRate, m_settings.m_centerFrequency);
DSPEngine::instance()->getInputMessageQueue()->push(notif);
m_pluginApi->getDeviceInputMessageQueue()->push(notif);
//DSPEngine::instance()->getInputMessageQueue()->push(notif);
}
}
@@ -28,6 +28,7 @@ struct fcd_buffer {
std::size_t length;
};
class PluginAPI;
class FCDProPlusThread;
class FCDProPlusInput : public SampleSource {
@@ -52,7 +53,7 @@ public:
{ }
};
FCDProPlusInput();
FCDProPlusInput(PluginAPI *pluginAPI);
virtual ~FCDProPlusInput();
virtual bool init(const Message& cmd);
@@ -77,6 +78,7 @@ public:
private:
void applySettings(const FCDProPlusSettings& settings, bool force);
PluginAPI *m_pluginApi;
hid_device *m_dev;
QMutex m_mutex;
FCDProPlusSettings m_settings;