diff options
author | f4exb <f4exb06@gmail.com> | 2016-05-12 23:35:30 +0200 |
---|---|---|
committer | f4exb <f4exb06@gmail.com> | 2016-05-12 23:35:30 +0200 |
commit | 7707858d579b32e77307baec1ce7fb8b975e61a8 (patch) | |
tree | 3b5059fa07d328302332d88c391e7b82a6633caf /plugins/samplesource/rtlsdr | |
parent | 7b0e6fd42e0bba6258126b34f8ca601516da1465 (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.cpp | 2 | ||||
-rw-r--r-- | plugins/samplesource/rtlsdr/rtlsdrinput.cpp | 12 | ||||
-rw-r--r-- | plugins/samplesource/rtlsdr/rtlsdrinput.h | 4 |
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; |