summaryrefslogtreecommitdiff
path: root/plugins/samplesource/rtlsdr
diff options
context:
space:
mode:
authorf4exb <f4exb06@gmail.com>2016-05-12 23:35:30 +0200
committerf4exb <f4exb06@gmail.com>2016-05-12 23:35:30 +0200
commit7707858d579b32e77307baec1ce7fb8b975e61a8 (patch)
tree3b5059fa07d328302332d88c391e7b82a6633caf /plugins/samplesource/rtlsdr
parent7b0e6fd42e0bba6258126b34f8ca601516da1465 (diff)
Multi device support: pass plugin API to devices input handlers to give access to DSP device engine methods
Diffstat (limited to 'plugins/samplesource/rtlsdr')
-rw-r--r--plugins/samplesource/rtlsdr/rtlsdrgui.cpp2
-rw-r--r--plugins/samplesource/rtlsdr/rtlsdrinput.cpp12
-rw-r--r--plugins/samplesource/rtlsdr/rtlsdrinput.h4
3 files changed, 11 insertions, 7 deletions
diff --git a/plugins/samplesource/rtlsdr/rtlsdrgui.cpp b/plugins/samplesource/rtlsdr/rtlsdrgui.cpp
index fb5bdde7c..9a5750b22 100644
--- a/plugins/samplesource/rtlsdr/rtlsdrgui.cpp
+++ b/plugins/samplesource/rtlsdr/rtlsdrgui.cpp
@@ -51,7 +51,7 @@ RTLSDRGui::RTLSDRGui(PluginAPI* pluginAPI, QWidget* parent) :
displaySettings();
- m_sampleSource = new RTLSDRInput();
+ m_sampleSource = new RTLSDRInput(m_pluginAPI);
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
DSPEngine::instance()->setSource(m_sampleSource);
diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp
index a730f1fe3..f162f82e4 100644
--- a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp
+++ b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp
@@ -21,13 +21,15 @@
#include "rtlsdrinput.h"
#include "rtlsdrthread.h"
#include "rtlsdrgui.h"
+#include "plugin/pluginapi.h"
#include "dsp/dspcommands.h"
#include "dsp/dspengine.h"
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgConfigureRTLSDR, Message)
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgReportRTLSDR, Message)
-RTLSDRInput::RTLSDRInput() :
+RTLSDRInput::RTLSDRInput(PluginAPI *pluginAPI) :
+ m_pluginAPI(pluginAPI),
m_settings(),
m_dev(0),
m_rtlSDRThread(0),
@@ -230,7 +232,7 @@ bool RTLSDRInput::applySettings(const RTLSDRSettings& settings, bool force)
if ((m_settings.m_devSampleRate != settings.m_devSampleRate) || force)
{
forwardChange = true;
-
+
if(m_dev != 0)
{
if( rtlsdr_set_sample_rate(m_dev, settings.m_devSampleRate) < 0)
@@ -264,7 +266,7 @@ bool RTLSDRInput::applySettings(const RTLSDRSettings& settings, bool force)
if ((m_settings.m_log2Decim != settings.m_log2Decim) || force)
{
forwardChange = true;
-
+
if(m_dev != 0)
{
m_settings.m_log2Decim = settings.m_log2Decim;
@@ -352,7 +354,7 @@ bool RTLSDRInput::applySettings(const RTLSDRSettings& settings, bool force)
qDebug("rtlsdr_set_center_freq(%lld) failed", m_settings.m_centerFrequency);
}
}*/
-
+
if ((m_settings.m_dcBlock != settings.m_dcBlock) || force)
{
m_settings.m_dcBlock = settings.m_dcBlock;
@@ -369,7 +371,7 @@ bool RTLSDRInput::applySettings(const RTLSDRSettings& settings, bool force)
{
int sampleRate = m_settings.m_devSampleRate/(1<<m_settings.m_log2Decim);
DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency);
- DSPEngine::instance()->getInputMessageQueue()->push(notif);
+ m_pluginAPI->getDeviceInputMessageQueue()->push(notif);
}
return true;
diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.h b/plugins/samplesource/rtlsdr/rtlsdrinput.h
index 732282e9e..c0f813756 100644
--- a/plugins/samplesource/rtlsdr/rtlsdrinput.h
+++ b/plugins/samplesource/rtlsdr/rtlsdrinput.h
@@ -23,6 +23,7 @@
#include <rtl-sdr.h>
#include <QString>
+class PluginAPI;
class RTLSDRThread;
class RTLSDRInput : public SampleSource {
@@ -67,7 +68,7 @@ public:
{ }
};
- RTLSDRInput();
+ RTLSDRInput(PluginAPI *pluginAPI);
virtual ~RTLSDRInput();
virtual bool init(const Message& message);
@@ -83,6 +84,7 @@ public:
void set_ds_mode(int on);
private:
+ PluginAPI *m_pluginAPI;
QMutex m_mutex;
RTLSDRSettings m_settings;
rtlsdr_dev_t* m_dev;