diff --git a/plugins/samplesource/bladerfinput/bladerfinputplugin.cpp b/plugins/samplesource/bladerfinput/bladerfinputplugin.cpp index 68d4bf5fa..c73877ef7 100644 --- a/plugins/samplesource/bladerfinput/bladerfinputplugin.cpp +++ b/plugins/samplesource/bladerfinput/bladerfinputplugin.cpp @@ -23,7 +23,7 @@ #include "util/simpleserializer.h" #include -#include "../bladerfinput/bladerfinputgui.h" +#include "bladerfinputgui.h" const PluginDescriptor BlderfInputPlugin::m_pluginDescriptor = { QString("BladerRF Input"), @@ -91,3 +91,17 @@ PluginInstanceUI* BlderfInputPlugin::createSampleSourcePluginInstanceGUI(const Q return 0; } } + +DeviceSampleSource *BlderfInputPlugin::createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI) +{ + if (sourceId == m_deviceTypeID) + { + BladerfInput *input = new BladerfInput(deviceAPI); + return input; + } + else + { + return 0; + } +} + diff --git a/plugins/samplesource/bladerfinput/bladerfinputplugin.h b/plugins/samplesource/bladerfinput/bladerfinputplugin.h index fe4decded..a13e93bc9 100644 --- a/plugins/samplesource/bladerfinput/bladerfinputplugin.h +++ b/plugins/samplesource/bladerfinput/bladerfinputplugin.h @@ -21,6 +21,7 @@ #include "plugin/plugininterface.h" class PluginAPI; +class DeviceSourceAPI; #define BLADERF_DEVICE_TYPE_ID "sdrangel.samplesource.bladerf" @@ -37,6 +38,7 @@ public: virtual SamplingDevices enumSampleSources(); virtual PluginInstanceUI* createSampleSourcePluginInstanceGUI(const QString& sourceId, QWidget **widget, DeviceSourceAPI *deviceAPI); + virtual DeviceSampleSource* createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI); static const QString m_hardwareID; static const QString m_deviceTypeID; diff --git a/plugins/samplesource/fcdpro/fcdproplugin.cpp b/plugins/samplesource/fcdpro/fcdproplugin.cpp index 372344361..268f28841 100644 --- a/plugins/samplesource/fcdpro/fcdproplugin.cpp +++ b/plugins/samplesource/fcdpro/fcdproplugin.cpp @@ -84,6 +84,19 @@ PluginInstanceUI* FCDProPlugin::createSampleSourcePluginInstanceGUI(const QStrin } else { - return NULL; + return 0; } } + +DeviceSampleSource *FCDProPlugin::createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI) +{ + if (sourceId == fcd_traits::interfaceIID) + { + FCDProInput* input = new FCDProInput(deviceAPI); + return input; + } + else + { + return 0; + } +} diff --git a/plugins/samplesource/fcdpro/fcdproplugin.h b/plugins/samplesource/fcdpro/fcdproplugin.h index 9ff864332..fe55f5aa3 100644 --- a/plugins/samplesource/fcdpro/fcdproplugin.h +++ b/plugins/samplesource/fcdpro/fcdproplugin.h @@ -21,6 +21,7 @@ public: virtual SamplingDevices enumSampleSources(); virtual PluginInstanceUI* createSampleSourcePluginInstanceGUI(const QString& sourceId, QWidget **widget, DeviceSourceAPI *deviceAPI); + virtual DeviceSampleSource* createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI); private: static const PluginDescriptor m_pluginDescriptor; diff --git a/plugins/samplesource/fcdproplus/fcdproplusplugin.cpp b/plugins/samplesource/fcdproplus/fcdproplusplugin.cpp index 8d122faba..ab5958e56 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusplugin.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusplugin.cpp @@ -86,6 +86,19 @@ PluginInstanceUI* FCDProPlusPlugin::createSampleSourcePluginInstanceGUI(const QS } else { - return NULL; + return 0; } } + +DeviceSampleSource *FCDProPlusPlugin::createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI) +{ + if(sourceId == fcd_traits::interfaceIID) + { + FCDProPlusInput* input = new FCDProPlusInput(deviceAPI); + return input; + } + else + { + return 0; + } +} diff --git a/plugins/samplesource/fcdproplus/fcdproplusplugin.h b/plugins/samplesource/fcdproplus/fcdproplusplugin.h index 71147ad32..ecad2455a 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusplugin.h +++ b/plugins/samplesource/fcdproplus/fcdproplusplugin.h @@ -21,6 +21,7 @@ public: virtual SamplingDevices enumSampleSources(); virtual PluginInstanceUI* createSampleSourcePluginInstanceGUI(const QString& sourceId, QWidget **widget, DeviceSourceAPI *deviceAPI); + virtual DeviceSampleSource* createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI); static const QString m_deviceTypeID; diff --git a/plugins/samplesource/filesource/filesourcegui.cpp b/plugins/samplesource/filesource/filesourcegui.cpp index 652cbe8f2..3cbceaa50 100644 --- a/plugins/samplesource/filesource/filesourcegui.cpp +++ b/plugins/samplesource/filesource/filesourcegui.cpp @@ -66,7 +66,7 @@ FileSourceGui::FileSourceGui(DeviceSourceAPI *deviceAPI, QWidget* parent) : ui->playLoop->setChecked(true); // FIXME: always play in a loop ui->playLoop->setEnabled(false); - m_sampleSource = new FileSourceInput(m_deviceAPI->getMainWindow()->getMasterTimer()); + m_sampleSource = new FileSourceInput(m_deviceAPI); connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages())); m_deviceAPI->setSource(m_sampleSource); diff --git a/plugins/samplesource/filesource/filesourceinput.cpp b/plugins/samplesource/filesource/filesourceinput.cpp index 08d25b6c0..59c788c03 100644 --- a/plugins/samplesource/filesource/filesourceinput.cpp +++ b/plugins/samplesource/filesource/filesourceinput.cpp @@ -21,11 +21,11 @@ #include "util/simpleserializer.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" +#include "dsp/filerecord.h" +#include "device/devicesourceapi.h" + #include "filesourcegui.h" #include "filesourceinput.h" - -#include - #include "filesourcethread.h" MESSAGE_CLASS_DEFINITION(FileSourceInput::MsgConfigureFileSource, Message) @@ -72,7 +72,8 @@ bool FileSourceInput::Settings::deserialize(const QByteArray& data) } } -FileSourceInput::FileSourceInput(const QTimer& masterTimer) : +FileSourceInput::FileSourceInput(DeviceSourceAPI *deviceAPI) : + m_deviceAPI(deviceAPI), m_settings(), m_fileSourceThread(NULL), m_deviceDescription(), @@ -80,8 +81,8 @@ FileSourceInput::FileSourceInput(const QTimer& masterTimer) : m_sampleRate(0), m_centerFrequency(0), m_recordLength(0), - m_startingTimeStamp(0), - m_masterTimer(masterTimer) + m_startingTimeStamp(0), + m_masterTimer(deviceAPI->getMasterTimer()) { } diff --git a/plugins/samplesource/filesource/filesourceinput.h b/plugins/samplesource/filesource/filesourceinput.h index d2877319a..f388f37a3 100644 --- a/plugins/samplesource/filesource/filesourceinput.h +++ b/plugins/samplesource/filesource/filesourceinput.h @@ -25,6 +25,7 @@ #include class FileSourceThread; +class DeviceSourceAPI; class FileSourceInput : public DeviceSampleSource { public: @@ -209,7 +210,7 @@ public: { } }; - FileSourceInput(const QTimer& masterTimer); + FileSourceInput(DeviceSourceAPI *deviceAPI); virtual ~FileSourceInput(); virtual bool start(); @@ -223,6 +224,7 @@ public: virtual bool handleMessage(const Message& message); private: + DeviceSourceAPI *m_deviceAPI; QMutex m_mutex; Settings m_settings; std::ifstream m_ifstream; diff --git a/plugins/samplesource/filesource/filesourceplugin.cpp b/plugins/samplesource/filesource/filesourceplugin.cpp index c33558fd8..1f7df67dc 100644 --- a/plugins/samplesource/filesource/filesourceplugin.cpp +++ b/plugins/samplesource/filesource/filesourceplugin.cpp @@ -79,6 +79,20 @@ PluginInstanceUI* FileSourcePlugin::createSampleSourcePluginInstanceGUI(const QS } else { - return NULL; + return 0; } } + +DeviceSampleSource *FileSourcePlugin::createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI) +{ + if (sourceId == m_deviceTypeID) + { + FileSourceInput* input = new FileSourceInput(deviceAPI); + return input; + } + else + { + return 0; + } +} + diff --git a/plugins/samplesource/filesource/filesourceplugin.h b/plugins/samplesource/filesource/filesourceplugin.h index e61f4cdcb..4e7a47a45 100644 --- a/plugins/samplesource/filesource/filesourceplugin.h +++ b/plugins/samplesource/filesource/filesourceplugin.h @@ -37,6 +37,7 @@ public: virtual SamplingDevices enumSampleSources(); virtual PluginInstanceUI* createSampleSourcePluginInstanceGUI(const QString& sourceId, QWidget **widget, DeviceSourceAPI *deviceAPI); + virtual DeviceSampleSource* createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI); static const QString m_hardwareID; static const QString m_deviceTypeID; diff --git a/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp b/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp index c5e004ee0..eb9901d07 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp +++ b/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp @@ -130,3 +130,16 @@ PluginInstanceUI* HackRFInputPlugin::createSampleSourcePluginInstanceGUI(const Q return 0; } } + +DeviceSampleSource *HackRFInputPlugin::createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI) +{ + if (sourceId == m_deviceTypeID) + { + HackRFInput* input = new HackRFInput(deviceAPI); + return input; + } + else + { + return 0; + } +} diff --git a/plugins/samplesource/hackrfinput/hackrfinputplugin.h b/plugins/samplesource/hackrfinput/hackrfinputplugin.h index 09e7714bb..c5c7f1c2e 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputplugin.h +++ b/plugins/samplesource/hackrfinput/hackrfinputplugin.h @@ -37,6 +37,7 @@ public: virtual SamplingDevices enumSampleSources(); virtual PluginInstanceUI* createSampleSourcePluginInstanceGUI(const QString& sourceId, QWidget **widget, DeviceSourceAPI *deviceAPI); + virtual DeviceSampleSource* createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI); static const QString m_hardwareID; static const QString m_deviceTypeID; diff --git a/plugins/samplesource/limesdrinput/limesdrinputplugin.cpp b/plugins/samplesource/limesdrinput/limesdrinputplugin.cpp index df0e1579c..17f576753 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputplugin.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinputplugin.cpp @@ -129,3 +129,16 @@ bool LimeSDRInputPlugin::findSerial(const char *lmsInfoStr, std::string& serial) } } +DeviceSampleSource *LimeSDRInputPlugin::createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI) +{ + if (sourceId == m_deviceTypeID) + { + LimeSDRInput* input = new LimeSDRInput(deviceAPI); + return input; + } + else + { + return 0; + } +} + diff --git a/plugins/samplesource/limesdrinput/limesdrinputplugin.h b/plugins/samplesource/limesdrinput/limesdrinputplugin.h index 25e4e3e2f..a366d5803 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputplugin.h +++ b/plugins/samplesource/limesdrinput/limesdrinputplugin.h @@ -37,6 +37,7 @@ public: virtual SamplingDevices enumSampleSources(); virtual PluginInstanceUI* createSampleSourcePluginInstanceGUI(const QString& sourceId, QWidget **widget, DeviceSourceAPI *deviceAPI); + virtual DeviceSampleSource* createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI); static const QString m_hardwareID; static const QString m_deviceTypeID; diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp b/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp index b87d9032d..664f1d84c 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp @@ -21,6 +21,7 @@ #include "plutosdr/deviceplutosdr.h" #include "plutosdrinputgui.h" +#include "plutosdrinput.h" #include "plutosdrinputplugin.h" class DeviceSourceAPI; @@ -93,3 +94,17 @@ PluginInstanceUI* PlutoSDRInputPlugin::createSampleSourcePluginInstanceGUI(const return 0; } } + +DeviceSampleSource *PlutoSDRInputPlugin::createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI) +{ + if (sourceId == m_deviceTypeID) + { + PlutoSDRInput* input = new PlutoSDRInput(deviceAPI); + return input; + } + else + { + return 0; + } +} + diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputplugin.h b/plugins/samplesource/plutosdrinput/plutosdrinputplugin.h index 8ebe24f29..2c3b959d1 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputplugin.h +++ b/plugins/samplesource/plutosdrinput/plutosdrinputplugin.h @@ -37,6 +37,7 @@ public: virtual SamplingDevices enumSampleSources(); virtual PluginInstanceUI* createSampleSourcePluginInstanceGUI(const QString& sourceId, QWidget **widget, DeviceSourceAPI *deviceAPI); + virtual DeviceSampleSource* createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI); static const QString m_hardwareID; static const QString m_deviceTypeID; diff --git a/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp b/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp index bc55df9c0..ad1851ac3 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp @@ -69,6 +69,20 @@ PluginInstanceUI* RTLSDRPlugin::createSampleSourcePluginInstanceGUI(const QStrin *widget = gui; return gui; } else { - return NULL; + return 0; } } + +DeviceSampleSource *RTLSDRPlugin::createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI) +{ + if (sourceId == m_deviceTypeID) + { + RTLSDRInput* input = new RTLSDRInput(deviceAPI); + return input; + } + else + { + return 0; + } +} + diff --git a/plugins/samplesource/rtlsdr/rtlsdrplugin.h b/plugins/samplesource/rtlsdr/rtlsdrplugin.h index 1c0f12826..505bdd8de 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrplugin.h +++ b/plugins/samplesource/rtlsdr/rtlsdrplugin.h @@ -21,6 +21,7 @@ public: virtual SamplingDevices enumSampleSources(); virtual PluginInstanceUI* createSampleSourcePluginInstanceGUI(const QString& sourceId, QWidget **widget, DeviceSourceAPI *deviceAPI); + virtual DeviceSampleSource* createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI); static const QString m_hardwareID; static const QString m_deviceTypeID; diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcegui.cpp b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcegui.cpp index 4617146cd..94d60dab1 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcegui.cpp +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcegui.cpp @@ -97,7 +97,7 @@ SDRdaemonSourceGui::SDRdaemonSourceGui(DeviceSourceAPI *deviceAPI, QWidget* pare connect(&(deviceAPI->getMainWindow()->getMasterTimer()), SIGNAL(timeout()), this, SLOT(tick())); connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(updateHardware())); - m_sampleSource = new SDRdaemonSourceInput(deviceAPI->getMainWindow()->getMasterTimer(), m_deviceAPI); + m_sampleSource = new SDRdaemonSourceInput(m_deviceAPI); connect(m_sampleSource->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages())); m_deviceAPI->setSource(m_sampleSource); diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp index 6c29ddc75..fc6faab3b 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp @@ -38,7 +38,7 @@ MESSAGE_CLASS_DEFINITION(SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamDat MESSAGE_CLASS_DEFINITION(SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming, Message) MESSAGE_CLASS_DEFINITION(SDRdaemonSourceInput::MsgFileRecord, Message) -SDRdaemonSourceInput::SDRdaemonSourceInput(const QTimer& masterTimer, DeviceSourceAPI *deviceAPI) : +SDRdaemonSourceInput::SDRdaemonSourceInput(DeviceSourceAPI *deviceAPI) : m_deviceAPI(deviceAPI), m_address("127.0.0.1"), m_port(9090), @@ -47,7 +47,7 @@ SDRdaemonSourceInput::SDRdaemonSourceInput(const QTimer& masterTimer, DeviceSour m_sampleRate(0), m_centerFrequency(0), m_startingTimeStamp(0), - m_masterTimer(masterTimer), + m_masterTimer(deviceAPI->getMasterTimer()), m_autoFollowRate(false), m_autoCorrBuffer(false) { diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.h b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.h index 2ebeb0538..c96e4194c 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.h +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.h @@ -303,7 +303,7 @@ public: { } }; - SDRdaemonSourceInput(const QTimer& masterTimer, DeviceSourceAPI *deviceAPI); + SDRdaemonSourceInput(DeviceSourceAPI *deviceAPI); virtual ~SDRdaemonSourceInput(); virtual bool start(); diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceplugin.cpp b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceplugin.cpp index 06cbaabd5..82caeab55 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceplugin.cpp +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceplugin.cpp @@ -80,6 +80,19 @@ PluginInstanceUI* SDRdaemonSourcePlugin::createSampleSourcePluginInstanceGUI(con } else { - return NULL; + return 0; } } + +DeviceSampleSource *SDRdaemonSourcePlugin::createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI) +{ + if (sourceId == m_deviceTypeID) + { + SDRdaemonSourceInput* input = new SDRdaemonSourceInput(deviceAPI); + return input; + } + else + { + return 0; + } +} diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceplugin.h b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceplugin.h index de8494e79..d33d1ecb6 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceplugin.h +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceplugin.h @@ -37,6 +37,7 @@ public: virtual SamplingDevices enumSampleSources(); virtual PluginInstanceUI* createSampleSourcePluginInstanceGUI(const QString& sourceId, QWidget **widget, DeviceSourceAPI *deviceAPI); + virtual DeviceSampleSource* createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI); static const QString m_hardwareID; static const QString m_deviceTypeID; diff --git a/plugins/samplesource/sdrplay/sdrplayplugin.cpp b/plugins/samplesource/sdrplay/sdrplayplugin.cpp index 2ea36f98c..bcf0cb2f1 100644 --- a/plugins/samplesource/sdrplay/sdrplayplugin.cpp +++ b/plugins/samplesource/sdrplay/sdrplayplugin.cpp @@ -96,3 +96,17 @@ PluginInstanceUI* SDRPlayPlugin::createSampleSourcePluginInstanceGUI(const QStri return 0; } } + +DeviceSampleSource *SDRPlayPlugin::createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI) +{ + if (sourceId == m_deviceTypeID) + { + SDRPlayInput* input = new SDRPlayInput(deviceAPI); + return input; + } + else + { + return 0; + } +} + diff --git a/plugins/samplesource/sdrplay/sdrplayplugin.h b/plugins/samplesource/sdrplay/sdrplayplugin.h index 47f84a5be..6015527e0 100644 --- a/plugins/samplesource/sdrplay/sdrplayplugin.h +++ b/plugins/samplesource/sdrplay/sdrplayplugin.h @@ -37,6 +37,7 @@ public: virtual SamplingDevices enumSampleSources(); virtual PluginInstanceUI* createSampleSourcePluginInstanceGUI(const QString& sourceId, QWidget **widget, DeviceSourceAPI *deviceAPI); + virtual DeviceSampleSource* createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI); static const QString m_hardwareID; static const QString m_deviceTypeID; diff --git a/sdrbase/device/devicesourceapi.cpp b/sdrbase/device/devicesourceapi.cpp index 744fc3a08..50b46c2fb 100644 --- a/sdrbase/device/devicesourceapi.cpp +++ b/sdrbase/device/devicesourceapi.cpp @@ -24,6 +24,7 @@ #include "mainwindow.h" #include "settings/preset.h" +// TODO: extract GUI dependencies in a separate object DeviceSourceAPI::DeviceSourceAPI(MainWindow *mainWindow, int deviceTabIndex, DSPDeviceSourceEngine *deviceSourceEngine, @@ -37,7 +38,8 @@ DeviceSourceAPI::DeviceSourceAPI(MainWindow *mainWindow, m_sampleSourceSequence(0), m_sampleSourcePluginInstanceUI(0), m_buddySharedPtr(0), - m_isBuddyLeader(false) + m_isBuddyLeader(false), + m_masterTimer(mainWindow->getMasterTimer()) // TODO: get master timer directly not from main window { } diff --git a/sdrbase/device/devicesourceapi.h b/sdrbase/device/devicesourceapi.h index 0a1b708a7..79f0eb73f 100644 --- a/sdrbase/device/devicesourceapi.h +++ b/sdrbase/device/devicesourceapi.h @@ -103,6 +103,8 @@ public: bool isBuddyLeader() const { return m_isBuddyLeader; } void setBuddyLeader(bool isBuddyLeader) { m_isBuddyLeader = isBuddyLeader; } + const QTimer& getMasterTimer() const { return m_masterTimer; } + protected: struct ChannelInstanceRegistration { @@ -151,6 +153,7 @@ protected: std::vector m_sinkBuddies; //!< Device sink APIs referencing the same physical device void *m_buddySharedPtr; bool m_isBuddyLeader; + const QTimer& m_masterTimer; friend class MainWindow; friend class DeviceSinkAPI;