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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user