mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-22 16:08:39 -05:00
Multi device support: pass plugin API to devices input handlers to give access to DSP device engine methods
This commit is contained in:
parent
7b0e6fd42e
commit
7707858d57
@ -46,7 +46,7 @@ AirspyGui::AirspyGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
|
|
||||||
displaySettings();
|
displaySettings();
|
||||||
|
|
||||||
m_sampleSource = new AirspyInput();
|
m_sampleSource = new AirspyInput(m_pluginAPI);
|
||||||
m_rates = ((AirspyInput*) m_sampleSource)->getSampleRates();
|
m_rates = ((AirspyInput*) m_sampleSource)->getSampleRates();
|
||||||
displaySampleRates();
|
displaySampleRates();
|
||||||
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include "airspygui.h"
|
#include "airspygui.h"
|
||||||
#include "airspyinput.h"
|
#include "airspyinput.h"
|
||||||
|
#include "plugin/pluginapi.h"
|
||||||
#include "dsp/dspcommands.h"
|
#include "dsp/dspcommands.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
#include "airspysettings.h"
|
#include "airspysettings.h"
|
||||||
@ -28,7 +29,8 @@
|
|||||||
MESSAGE_CLASS_DEFINITION(AirspyInput::MsgConfigureAirspy, Message)
|
MESSAGE_CLASS_DEFINITION(AirspyInput::MsgConfigureAirspy, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(AirspyInput::MsgReportAirspy, Message)
|
MESSAGE_CLASS_DEFINITION(AirspyInput::MsgReportAirspy, Message)
|
||||||
|
|
||||||
AirspyInput::AirspyInput() :
|
AirspyInput::AirspyInput(PluginAPI *pluginAPI) :
|
||||||
|
m_pluginAPI(pluginAPI),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_dev(0),
|
m_dev(0),
|
||||||
m_airspyThread(0),
|
m_airspyThread(0),
|
||||||
@ -449,7 +451,7 @@ bool AirspyInput::applySettings(const AirspySettings& settings, bool force)
|
|||||||
{
|
{
|
||||||
int sampleRate = devSampleRate/(1<<m_settings.m_log2Decim);
|
int sampleRate = devSampleRate/(1<<m_settings.m_log2Decim);
|
||||||
DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency);
|
DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency);
|
||||||
DSPEngine::instance()->getInputMessageQueue()->push(notif);
|
m_pluginAPI->getDeviceInputMessageQueue()->push(notif);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include <libairspy/airspy.h>
|
#include <libairspy/airspy.h>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
|
class PluginAPI;
|
||||||
class AirspyThread;
|
class AirspyThread;
|
||||||
|
|
||||||
class AirspyInput : public SampleSource {
|
class AirspyInput : public SampleSource {
|
||||||
@ -66,7 +67,7 @@ public:
|
|||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
AirspyInput();
|
AirspyInput(PluginAPI *pluginAPI);
|
||||||
virtual ~AirspyInput();
|
virtual ~AirspyInput();
|
||||||
|
|
||||||
virtual bool init(const Message& message);
|
virtual bool init(const Message& message);
|
||||||
@ -85,6 +86,7 @@ private:
|
|||||||
struct airspy_device *open_airspy_from_sequence(int sequence);
|
struct airspy_device *open_airspy_from_sequence(int sequence);
|
||||||
void setCenterFrequency(quint64 freq);
|
void setCenterFrequency(quint64 freq);
|
||||||
|
|
||||||
|
PluginAPI *m_pluginAPI;
|
||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
AirspySettings m_settings;
|
AirspySettings m_settings;
|
||||||
struct airspy_device* m_dev;
|
struct airspy_device* m_dev;
|
||||||
|
@ -59,7 +59,7 @@ BladerfGui::BladerfGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
|
|
||||||
displaySettings();
|
displaySettings();
|
||||||
|
|
||||||
m_sampleSource = new BladerfInput();
|
m_sampleSource = new BladerfInput(m_pluginAPI);
|
||||||
DSPEngine::instance()->setSource(m_sampleSource);
|
DSPEngine::instance()->setSource(m_sampleSource);
|
||||||
|
|
||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
|
#include "plugin/pluginapi.h"
|
||||||
#include "util/simpleserializer.h"
|
#include "util/simpleserializer.h"
|
||||||
#include "dsp/dspcommands.h"
|
#include "dsp/dspcommands.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
@ -28,7 +29,8 @@
|
|||||||
MESSAGE_CLASS_DEFINITION(BladerfInput::MsgConfigureBladerf, Message)
|
MESSAGE_CLASS_DEFINITION(BladerfInput::MsgConfigureBladerf, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(BladerfInput::MsgReportBladerf, Message)
|
MESSAGE_CLASS_DEFINITION(BladerfInput::MsgReportBladerf, Message)
|
||||||
|
|
||||||
BladerfInput::BladerfInput() :
|
BladerfInput::BladerfInput(PluginAPI *pluginAPI) :
|
||||||
|
m_pluginAPI(pluginAPI),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_dev(0),
|
m_dev(0),
|
||||||
m_bladerfThread(0),
|
m_bladerfThread(0),
|
||||||
@ -413,7 +415,7 @@ bool BladerfInput::applySettings(const BladeRFSettings& settings, bool force)
|
|||||||
{
|
{
|
||||||
int sampleRate = m_settings.m_devSampleRate/(1<<m_settings.m_log2Decim);
|
int sampleRate = m_settings.m_devSampleRate/(1<<m_settings.m_log2Decim);
|
||||||
DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency);
|
DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency);
|
||||||
DSPEngine::instance()->getInputMessageQueue()->push(notif);
|
m_pluginAPI->getDeviceInputMessageQueue()->push(notif);
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug() << "BladerfInput::applySettings: center freq: " << m_settings.m_centerFrequency << " Hz"
|
qDebug() << "BladerfInput::applySettings: center freq: " << m_settings.m_centerFrequency << " Hz"
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include <libbladeRF.h>
|
#include <libbladeRF.h>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
|
class PluginAPI;
|
||||||
class BladerfThread;
|
class BladerfThread;
|
||||||
|
|
||||||
class BladerfInput : public SampleSource {
|
class BladerfInput : public SampleSource {
|
||||||
@ -63,7 +64,7 @@ public:
|
|||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
BladerfInput();
|
BladerfInput(PluginAPI *pluginAPI);
|
||||||
virtual ~BladerfInput();
|
virtual ~BladerfInput();
|
||||||
|
|
||||||
virtual bool init(const Message& message);
|
virtual bool init(const Message& message);
|
||||||
@ -81,6 +82,7 @@ private:
|
|||||||
bladerf_lna_gain getLnaGain(int lnaGain);
|
bladerf_lna_gain getLnaGain(int lnaGain);
|
||||||
struct bladerf *open_bladerf_from_serial(const char *serial);
|
struct bladerf *open_bladerf_from_serial(const char *serial);
|
||||||
|
|
||||||
|
PluginAPI *m_pluginAPI;
|
||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
BladeRFSettings m_settings;
|
BladeRFSettings m_settings;
|
||||||
struct bladerf* m_dev;
|
struct bladerf* m_dev;
|
||||||
|
@ -140,7 +140,7 @@ FCDProGui::FCDProGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
|
|
||||||
displaySettings();
|
displaySettings();
|
||||||
|
|
||||||
m_sampleSource = new FCDProInput();
|
m_sampleSource = new FCDProInput(m_pluginAPI);
|
||||||
DSPEngine::instance()->setSource(m_sampleSource);
|
DSPEngine::instance()->setSource(m_sampleSource);
|
||||||
|
|
||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include "plugin/pluginapi.h"
|
||||||
#include "dsp/dspcommands.h"
|
#include "dsp/dspcommands.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
#include "fcdproinput.h"
|
#include "fcdproinput.h"
|
||||||
@ -31,7 +33,8 @@
|
|||||||
|
|
||||||
MESSAGE_CLASS_DEFINITION(FCDProInput::MsgConfigureFCD, Message)
|
MESSAGE_CLASS_DEFINITION(FCDProInput::MsgConfigureFCD, Message)
|
||||||
|
|
||||||
FCDProInput::FCDProInput() :
|
FCDProInput::FCDProInput(PluginAPI *pluginAPI) :
|
||||||
|
m_pluginAPI(pluginAPI),
|
||||||
m_dev(0),
|
m_dev(0),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_FCDThread(0),
|
m_FCDThread(0),
|
||||||
@ -344,7 +347,7 @@ void FCDProInput::applySettings(const FCDProSettings& settings, bool force)
|
|||||||
if (signalChange)
|
if (signalChange)
|
||||||
{
|
{
|
||||||
DSPSignalNotification *notif = new DSPSignalNotification(fcd_traits<Pro>::sampleRate, m_settings.m_centerFrequency);
|
DSPSignalNotification *notif = new DSPSignalNotification(fcd_traits<Pro>::sampleRate, m_settings.m_centerFrequency);
|
||||||
DSPEngine::instance()->getInputMessageQueue()->push(notif);
|
m_pluginAPI->getDeviceInputMessageQueue()->push(notif);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ struct fcd_buffer {
|
|||||||
std::size_t length;
|
std::size_t length;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class PluginAPI;
|
||||||
class FCDProThread;
|
class FCDProThread;
|
||||||
|
|
||||||
class FCDProInput : public SampleSource {
|
class FCDProInput : public SampleSource {
|
||||||
@ -53,7 +54,7 @@ public:
|
|||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
FCDProInput();
|
FCDProInput(PluginAPI *pluginAPI);
|
||||||
virtual ~FCDProInput();
|
virtual ~FCDProInput();
|
||||||
|
|
||||||
virtual bool init(const Message& cmd);
|
virtual bool init(const Message& cmd);
|
||||||
@ -89,6 +90,7 @@ private:
|
|||||||
void applySettings(const FCDProSettings& settings, bool force);
|
void applySettings(const FCDProSettings& settings, bool force);
|
||||||
void set_lo_ppm();
|
void set_lo_ppm();
|
||||||
|
|
||||||
|
PluginAPI *m_pluginAPI;
|
||||||
hid_device *m_dev;
|
hid_device *m_dev;
|
||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
FCDProSettings m_settings;
|
FCDProSettings m_settings;
|
||||||
|
@ -58,7 +58,7 @@ FCDProPlusGui::FCDProPlusGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
|
|
||||||
displaySettings();
|
displaySettings();
|
||||||
|
|
||||||
m_sampleSource = new FCDProPlusInput();
|
m_sampleSource = new FCDProPlusInput(m_pluginAPI);
|
||||||
DSPEngine::instance()->setSource(m_sampleSource);
|
DSPEngine::instance()->setSource(m_sampleSource);
|
||||||
|
|
||||||
char recFileNameCStr[30];
|
char recFileNameCStr[30];
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include "plugin/pluginapi.h"
|
||||||
#include "dsp/dspcommands.h"
|
#include "dsp/dspcommands.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
#include "fcdproplusinput.h"
|
#include "fcdproplusinput.h"
|
||||||
@ -30,7 +32,8 @@
|
|||||||
|
|
||||||
MESSAGE_CLASS_DEFINITION(FCDProPlusInput::MsgConfigureFCD, Message)
|
MESSAGE_CLASS_DEFINITION(FCDProPlusInput::MsgConfigureFCD, Message)
|
||||||
|
|
||||||
FCDProPlusInput::FCDProPlusInput() :
|
FCDProPlusInput::FCDProPlusInput(PluginAPI *pluginAPI) :
|
||||||
|
m_pluginApi(pluginAPI),
|
||||||
m_dev(0),
|
m_dev(0),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_FCDThread(0),
|
m_FCDThread(0),
|
||||||
@ -177,7 +180,7 @@ void FCDProPlusInput::applySettings(const FCDProPlusSettings& settings, bool for
|
|||||||
set_bias_t(settings.m_biasT);
|
set_bias_t(settings.m_biasT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((m_settings.m_mixGain != settings.m_mixGain) || force)
|
if ((m_settings.m_mixGain != settings.m_mixGain) || force)
|
||||||
{
|
{
|
||||||
m_settings.m_mixGain = settings.m_mixGain;
|
m_settings.m_mixGain = settings.m_mixGain;
|
||||||
@ -243,7 +246,8 @@ void FCDProPlusInput::applySettings(const FCDProPlusSettings& settings, bool for
|
|||||||
if (signalChange)
|
if (signalChange)
|
||||||
{
|
{
|
||||||
DSPSignalNotification *notif = new DSPSignalNotification(fcd_traits<ProPlus>::sampleRate, m_settings.m_centerFrequency);
|
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;
|
std::size_t length;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class PluginAPI;
|
||||||
class FCDProPlusThread;
|
class FCDProPlusThread;
|
||||||
|
|
||||||
class FCDProPlusInput : public SampleSource {
|
class FCDProPlusInput : public SampleSource {
|
||||||
@ -52,7 +53,7 @@ public:
|
|||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
FCDProPlusInput();
|
FCDProPlusInput(PluginAPI *pluginAPI);
|
||||||
virtual ~FCDProPlusInput();
|
virtual ~FCDProPlusInput();
|
||||||
|
|
||||||
virtual bool init(const Message& cmd);
|
virtual bool init(const Message& cmd);
|
||||||
@ -77,6 +78,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
void applySettings(const FCDProPlusSettings& settings, bool force);
|
void applySettings(const FCDProPlusSettings& settings, bool force);
|
||||||
|
|
||||||
|
PluginAPI *m_pluginApi;
|
||||||
hid_device *m_dev;
|
hid_device *m_dev;
|
||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
FCDProPlusSettings m_settings;
|
FCDProPlusSettings m_settings;
|
||||||
|
@ -46,7 +46,7 @@ HackRFGui::HackRFGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
|
|
||||||
displaySettings();
|
displaySettings();
|
||||||
|
|
||||||
m_sampleSource = new HackRFInput();
|
m_sampleSource = new HackRFInput(m_pluginAPI);
|
||||||
|
|
||||||
displaySampleRates();
|
displaySampleRates();
|
||||||
displayBandwidths();
|
displayBandwidths();
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
|
#include "plugin/pluginapi.h"
|
||||||
#include "util/simpleserializer.h"
|
#include "util/simpleserializer.h"
|
||||||
#include "dsp/dspcommands.h"
|
#include "dsp/dspcommands.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
@ -29,7 +30,8 @@
|
|||||||
MESSAGE_CLASS_DEFINITION(HackRFInput::MsgConfigureHackRF, Message)
|
MESSAGE_CLASS_DEFINITION(HackRFInput::MsgConfigureHackRF, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(HackRFInput::MsgReportHackRF, Message)
|
MESSAGE_CLASS_DEFINITION(HackRFInput::MsgReportHackRF, Message)
|
||||||
|
|
||||||
HackRFInput::HackRFInput() :
|
HackRFInput::HackRFInput(PluginAPI *pluginAPI) :
|
||||||
|
m_pluginAPI(pluginAPI),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_dev(0),
|
m_dev(0),
|
||||||
m_hackRFThread(0),
|
m_hackRFThread(0),
|
||||||
@ -396,8 +398,7 @@ bool HackRFInput::applySettings(const HackRFSettings& settings, bool force)
|
|||||||
{
|
{
|
||||||
int sampleRate = devSampleRate/(1<<m_settings.m_log2Decim);
|
int sampleRate = devSampleRate/(1<<m_settings.m_log2Decim);
|
||||||
DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency);
|
DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency);
|
||||||
DSPEngine::instance()->getInputMessageQueue()->push(notif);
|
m_pluginAPI->getDeviceInputMessageQueue()->push(notif);
|
||||||
//getOutputMessageQueue()->push(notif);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "hackrfsettings.h"
|
#include "hackrfsettings.h"
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
|
class PluginAPI;
|
||||||
class HackRFThread;
|
class HackRFThread;
|
||||||
|
|
||||||
class HackRFInput : public SampleSource {
|
class HackRFInput : public SampleSource {
|
||||||
@ -64,7 +65,7 @@ public:
|
|||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
HackRFInput();
|
HackRFInput(PluginAPI *pluginAPI);
|
||||||
virtual ~HackRFInput();
|
virtual ~HackRFInput();
|
||||||
|
|
||||||
virtual bool init(const Message& message);
|
virtual bool init(const Message& message);
|
||||||
@ -82,6 +83,7 @@ private:
|
|||||||
hackrf_device *open_hackrf_from_sequence(int sequence);
|
hackrf_device *open_hackrf_from_sequence(int sequence);
|
||||||
void setCenterFrequency(quint64 freq);
|
void setCenterFrequency(quint64 freq);
|
||||||
|
|
||||||
|
PluginAPI *m_pluginAPI;
|
||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
HackRFSettings m_settings;
|
HackRFSettings m_settings;
|
||||||
struct hackrf_device* m_dev;
|
struct hackrf_device* m_dev;
|
||||||
|
@ -51,7 +51,7 @@ RTLSDRGui::RTLSDRGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
|
|
||||||
displaySettings();
|
displaySettings();
|
||||||
|
|
||||||
m_sampleSource = new RTLSDRInput();
|
m_sampleSource = new RTLSDRInput(m_pluginAPI);
|
||||||
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
||||||
DSPEngine::instance()->setSource(m_sampleSource);
|
DSPEngine::instance()->setSource(m_sampleSource);
|
||||||
|
|
||||||
|
@ -21,13 +21,15 @@
|
|||||||
#include "rtlsdrinput.h"
|
#include "rtlsdrinput.h"
|
||||||
#include "rtlsdrthread.h"
|
#include "rtlsdrthread.h"
|
||||||
#include "rtlsdrgui.h"
|
#include "rtlsdrgui.h"
|
||||||
|
#include "plugin/pluginapi.h"
|
||||||
#include "dsp/dspcommands.h"
|
#include "dsp/dspcommands.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
|
|
||||||
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgConfigureRTLSDR, Message)
|
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgConfigureRTLSDR, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgReportRTLSDR, Message)
|
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgReportRTLSDR, Message)
|
||||||
|
|
||||||
RTLSDRInput::RTLSDRInput() :
|
RTLSDRInput::RTLSDRInput(PluginAPI *pluginAPI) :
|
||||||
|
m_pluginAPI(pluginAPI),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_dev(0),
|
m_dev(0),
|
||||||
m_rtlSDRThread(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)
|
if ((m_settings.m_devSampleRate != settings.m_devSampleRate) || force)
|
||||||
{
|
{
|
||||||
forwardChange = true;
|
forwardChange = true;
|
||||||
|
|
||||||
if(m_dev != 0)
|
if(m_dev != 0)
|
||||||
{
|
{
|
||||||
if( rtlsdr_set_sample_rate(m_dev, settings.m_devSampleRate) < 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)
|
if ((m_settings.m_log2Decim != settings.m_log2Decim) || force)
|
||||||
{
|
{
|
||||||
forwardChange = true;
|
forwardChange = true;
|
||||||
|
|
||||||
if(m_dev != 0)
|
if(m_dev != 0)
|
||||||
{
|
{
|
||||||
m_settings.m_log2Decim = settings.m_log2Decim;
|
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);
|
qDebug("rtlsdr_set_center_freq(%lld) failed", m_settings.m_centerFrequency);
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
if ((m_settings.m_dcBlock != settings.m_dcBlock) || force)
|
if ((m_settings.m_dcBlock != settings.m_dcBlock) || force)
|
||||||
{
|
{
|
||||||
m_settings.m_dcBlock = settings.m_dcBlock;
|
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);
|
int sampleRate = m_settings.m_devSampleRate/(1<<m_settings.m_log2Decim);
|
||||||
DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency);
|
DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency);
|
||||||
DSPEngine::instance()->getInputMessageQueue()->push(notif);
|
m_pluginAPI->getDeviceInputMessageQueue()->push(notif);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include <rtl-sdr.h>
|
#include <rtl-sdr.h>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
|
class PluginAPI;
|
||||||
class RTLSDRThread;
|
class RTLSDRThread;
|
||||||
|
|
||||||
class RTLSDRInput : public SampleSource {
|
class RTLSDRInput : public SampleSource {
|
||||||
@ -67,7 +68,7 @@ public:
|
|||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
RTLSDRInput();
|
RTLSDRInput(PluginAPI *pluginAPI);
|
||||||
virtual ~RTLSDRInput();
|
virtual ~RTLSDRInput();
|
||||||
|
|
||||||
virtual bool init(const Message& message);
|
virtual bool init(const Message& message);
|
||||||
@ -83,6 +84,7 @@ public:
|
|||||||
void set_ds_mode(int on);
|
void set_ds_mode(int on);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
PluginAPI *m_pluginAPI;
|
||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
RTLSDRSettings m_settings;
|
RTLSDRSettings m_settings;
|
||||||
rtlsdr_dev_t* m_dev;
|
rtlsdr_dev_t* m_dev;
|
||||||
|
@ -88,7 +88,7 @@ SDRdaemonGui::SDRdaemonGui(PluginAPI* pluginAPI, QWidget* parent) :
|
|||||||
m_statusTimer.start(500);
|
m_statusTimer.start(500);
|
||||||
connect(&(m_pluginAPI->getMainWindow()->getMasterTimer()), SIGNAL(timeout()), this, SLOT(tick()));
|
connect(&(m_pluginAPI->getMainWindow()->getMasterTimer()), SIGNAL(timeout()), this, SLOT(tick()));
|
||||||
|
|
||||||
m_sampleSource = new SDRdaemonInput(m_pluginAPI->getMainWindow()->getMasterTimer());
|
m_sampleSource = new SDRdaemonInput(m_pluginAPI->getMainWindow()->getMasterTimer(), m_pluginAPI);
|
||||||
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
|
||||||
DSPEngine::instance()->setSource(m_sampleSource);
|
DSPEngine::instance()->setSource(m_sampleSource);
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
|
#include "plugin/pluginapi.h"
|
||||||
#include "util/simpleserializer.h"
|
#include "util/simpleserializer.h"
|
||||||
#include "dsp/dspcommands.h"
|
#include "dsp/dspcommands.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
@ -37,7 +38,8 @@ MESSAGE_CLASS_DEFINITION(SDRdaemonInput::MsgReportSDRdaemonAcquisition, Message)
|
|||||||
MESSAGE_CLASS_DEFINITION(SDRdaemonInput::MsgReportSDRdaemonStreamData, Message)
|
MESSAGE_CLASS_DEFINITION(SDRdaemonInput::MsgReportSDRdaemonStreamData, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(SDRdaemonInput::MsgReportSDRdaemonStreamTiming, Message)
|
MESSAGE_CLASS_DEFINITION(SDRdaemonInput::MsgReportSDRdaemonStreamTiming, Message)
|
||||||
|
|
||||||
SDRdaemonInput::SDRdaemonInput(const QTimer& masterTimer) :
|
SDRdaemonInput::SDRdaemonInput(const QTimer& masterTimer, PluginAPI *pluginAPI) :
|
||||||
|
m_pluginAPI(pluginAPI),
|
||||||
m_address("127.0.0.1"),
|
m_address("127.0.0.1"),
|
||||||
m_port(9090),
|
m_port(9090),
|
||||||
m_SDRdaemonUDPHandler(0),
|
m_SDRdaemonUDPHandler(0),
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
class PluginAPI;
|
||||||
class SDRdaemonUDPHandler;
|
class SDRdaemonUDPHandler;
|
||||||
|
|
||||||
class SDRdaemonInput : public SampleSource {
|
class SDRdaemonInput : public SampleSource {
|
||||||
@ -273,7 +274,7 @@ public:
|
|||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
SDRdaemonInput(const QTimer& masterTimer);
|
SDRdaemonInput(const QTimer& masterTimer, PluginAPI *pluginAPI);
|
||||||
virtual ~SDRdaemonInput();
|
virtual ~SDRdaemonInput();
|
||||||
|
|
||||||
virtual bool init(const Message& message);
|
virtual bool init(const Message& message);
|
||||||
@ -289,6 +290,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& message);
|
virtual bool handleMessage(const Message& message);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
PluginAPI *m_pluginAPI;
|
||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
QString m_address;
|
QString m_address;
|
||||||
quint16 m_port;
|
quint16 m_port;
|
||||||
|
@ -49,11 +49,6 @@ MessageQueue* DSPEngine::getInputMessageQueue(uint deviceIndex)
|
|||||||
return m_deviceEngines[deviceIndex]->getInputMessageQueue();
|
return m_deviceEngines[deviceIndex]->getInputMessageQueue();
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageQueue* DSPEngine::getOutputMessageQueue(uint deviceIndex)
|
|
||||||
{
|
|
||||||
return m_deviceEngines[deviceIndex]->getOutputMessageQueue();
|
|
||||||
}
|
|
||||||
|
|
||||||
void DSPEngine::stopAllAcquisitions()
|
void DSPEngine::stopAllAcquisitions()
|
||||||
{
|
{
|
||||||
std::vector<DSPDeviceEngine*>::iterator it = m_deviceEngines.begin();
|
std::vector<DSPDeviceEngine*>::iterator it = m_deviceEngines.begin();
|
||||||
|
@ -39,7 +39,6 @@ public:
|
|||||||
static DSPEngine *instance();
|
static DSPEngine *instance();
|
||||||
|
|
||||||
MessageQueue* getInputMessageQueue(uint deviceIndex = 0);
|
MessageQueue* getInputMessageQueue(uint deviceIndex = 0);
|
||||||
MessageQueue* getOutputMessageQueue(uint deviceIndex = 0);
|
|
||||||
|
|
||||||
uint getAudioSampleRate() const { return m_audioSampleRate; }
|
uint getAudioSampleRate() const { return m_audioSampleRate; }
|
||||||
|
|
||||||
|
@ -276,11 +276,6 @@ void MainWindow::closeEvent(QCloseEvent*)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::updateCenterFreqDisplay()
|
|
||||||
{
|
|
||||||
m_deviceUIs.back()->m_spectrum->setCenterFrequency(m_centerFrequency);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::updatePresetControls()
|
void MainWindow::updatePresetControls()
|
||||||
{
|
{
|
||||||
ui->presetTree->resizeColumnToContents(0);
|
ui->presetTree->resizeColumnToContents(0);
|
||||||
@ -334,7 +329,6 @@ QTreeWidgetItem* MainWindow::addPresetToTree(const Preset* preset)
|
|||||||
|
|
||||||
void MainWindow::applySettings()
|
void MainWindow::applySettings()
|
||||||
{
|
{
|
||||||
updateCenterFreqDisplay();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::handleMessages()
|
void MainWindow::handleMessages()
|
||||||
|
@ -122,7 +122,6 @@ private:
|
|||||||
|
|
||||||
void createStatusBar();
|
void createStatusBar();
|
||||||
void closeEvent(QCloseEvent*);
|
void closeEvent(QCloseEvent*);
|
||||||
void updateCenterFreqDisplay();
|
|
||||||
void updatePresetControls();
|
void updatePresetControls();
|
||||||
QTreeWidgetItem* addPresetToTree(const Preset* preset);
|
QTreeWidgetItem* addPresetToTree(const Preset* preset);
|
||||||
void applySettings();
|
void applySettings();
|
||||||
|
Loading…
Reference in New Issue
Block a user