mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-02-03 09:44:01 -05:00
Output core creation method implementation in all sink plugins
This commit is contained in:
parent
aa5c6c59a5
commit
3cddc772b1
@ -90,3 +90,17 @@ PluginInstanceUI* BladerfOutputPlugin::createSampleSinkPluginInstanceGUI(const Q
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
DeviceSampleSink* BladerfOutputPlugin::createSampleSinkPluginInstanceOutput(const QString& sinkId, DeviceSinkAPI *deviceAPI)
|
||||
{
|
||||
if(sinkId == m_deviceTypeID)
|
||||
{
|
||||
BladerfOutput* output = new BladerfOutput(deviceAPI);
|
||||
return output;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -37,6 +37,7 @@ public:
|
||||
|
||||
virtual SamplingDevices enumSampleSinks();
|
||||
virtual PluginInstanceUI* createSampleSinkPluginInstanceGUI(const QString& sinkId, QWidget **widget, DeviceSinkAPI *deviceAPI);
|
||||
virtual DeviceSampleSink* createSampleSinkPluginInstanceOutput(const QString& sinkId, DeviceSinkAPI *deviceAPI);
|
||||
|
||||
static const QString m_hardwareID;
|
||||
static const QString m_deviceTypeID;
|
||||
|
@ -65,7 +65,7 @@ FileSinkGui::FileSinkGui(DeviceSinkAPI *deviceAPI, QWidget* parent) :
|
||||
|
||||
displaySettings();
|
||||
|
||||
m_deviceSampleSink = new FileSinkOutput(m_deviceAPI, m_deviceAPI->getMainWindow()->getMasterTimer());
|
||||
m_deviceSampleSink = new FileSinkOutput(m_deviceAPI);
|
||||
connect(m_deviceSampleSink->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSinkMessages()));
|
||||
m_deviceAPI->setSink(m_deviceSampleSink);
|
||||
|
||||
|
@ -36,14 +36,14 @@ MESSAGE_CLASS_DEFINITION(FileSinkOutput::MsgConfigureFileSinkStreamTiming, Messa
|
||||
MESSAGE_CLASS_DEFINITION(FileSinkOutput::MsgReportFileSinkGeneration, Message)
|
||||
MESSAGE_CLASS_DEFINITION(FileSinkOutput::MsgReportFileSinkStreamTiming, Message)
|
||||
|
||||
FileSinkOutput::FileSinkOutput(DeviceSinkAPI *deviceAPI, const QTimer& masterTimer) :
|
||||
FileSinkOutput::FileSinkOutput(DeviceSinkAPI *deviceAPI) :
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_settings(),
|
||||
m_fileSinkThread(0),
|
||||
m_deviceDescription("FileSink"),
|
||||
m_fileName("./test.sdriq"),
|
||||
m_startingTimeStamp(0),
|
||||
m_masterTimer(masterTimer)
|
||||
m_masterTimer(deviceAPI->getMasterTimer())
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
FileSinkOutput(DeviceSinkAPI *deviceAPI, const QTimer& masterTimer);
|
||||
FileSinkOutput(DeviceSinkAPI *deviceAPI);
|
||||
virtual ~FileSinkOutput();
|
||||
|
||||
virtual bool start();
|
||||
|
@ -82,3 +82,18 @@ PluginInstanceUI* FileSinkPlugin::createSampleSinkPluginInstanceGUI(const QStrin
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
DeviceSampleSink* FileSinkPlugin::createSampleSinkPluginInstanceOutput(const QString& sinkId, DeviceSinkAPI *deviceAPI)
|
||||
{
|
||||
if(sinkId == m_deviceTypeID)
|
||||
{
|
||||
FileSinkOutput* output = new FileSinkOutput(deviceAPI);
|
||||
return output;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -38,6 +38,7 @@ public:
|
||||
|
||||
virtual SamplingDevices enumSampleSinks();
|
||||
virtual PluginInstanceUI* createSampleSinkPluginInstanceGUI(const QString& sinkId, QWidget **widget, DeviceSinkAPI *deviceAPI);
|
||||
virtual DeviceSampleSink* createSampleSinkPluginInstanceOutput(const QString& sinkId, DeviceSinkAPI *deviceAPI);
|
||||
|
||||
static const QString m_hardwareID;
|
||||
static const QString m_deviceTypeID;
|
||||
|
@ -129,3 +129,19 @@ PluginInstanceUI* HackRFOutputPlugin::createSampleSinkPluginInstanceGUI(const QS
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
DeviceSampleSink* HackRFOutputPlugin::createSampleSinkPluginInstanceOutput(const QString& sinkId, DeviceSinkAPI *deviceAPI)
|
||||
{
|
||||
if(sinkId == m_deviceTypeID)
|
||||
{
|
||||
HackRFOutput* output = new HackRFOutput(deviceAPI);
|
||||
return output;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -37,6 +37,7 @@ public:
|
||||
|
||||
virtual SamplingDevices enumSampleSinks();
|
||||
virtual PluginInstanceUI* createSampleSinkPluginInstanceGUI(const QString& sinkId, QWidget **widget, DeviceSinkAPI *deviceAPI);
|
||||
virtual DeviceSampleSink* createSampleSinkPluginInstanceOutput(const QString& sinkId, DeviceSinkAPI *deviceAPI);
|
||||
|
||||
static const QString m_hardwareID;
|
||||
static const QString m_deviceTypeID;
|
||||
|
@ -128,3 +128,17 @@ bool LimeSDROutputPlugin::findSerial(const char *lmsInfoStr, std::string& serial
|
||||
}
|
||||
}
|
||||
|
||||
DeviceSampleSink* LimeSDROutputPlugin::createSampleSinkPluginInstanceOutput(const QString& sinkId, DeviceSinkAPI *deviceAPI)
|
||||
{
|
||||
if(sinkId == m_deviceTypeID)
|
||||
{
|
||||
LimeSDROutput* output = new LimeSDROutput(deviceAPI);
|
||||
return output;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -37,6 +37,7 @@ public:
|
||||
|
||||
virtual SamplingDevices enumSampleSinks();
|
||||
virtual PluginInstanceUI* createSampleSinkPluginInstanceGUI(const QString& sinkId, QWidget **widget, DeviceSinkAPI *deviceAPI);
|
||||
virtual DeviceSampleSink* createSampleSinkPluginInstanceOutput(const QString& sinkId, DeviceSinkAPI *deviceAPI);
|
||||
|
||||
static const QString m_hardwareID;
|
||||
static const QString m_deviceTypeID;
|
||||
|
@ -83,7 +83,7 @@ SDRdaemonSinkGui::SDRdaemonSinkGui(DeviceSinkAPI *deviceAPI, QWidget* parent) :
|
||||
connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus()));
|
||||
m_statusTimer.start(500);
|
||||
|
||||
m_deviceSampleSink = new SDRdaemonSinkOutput(m_deviceAPI, m_deviceAPI->getMainWindow()->getMasterTimer());
|
||||
m_deviceSampleSink = new SDRdaemonSinkOutput(m_deviceAPI);
|
||||
connect(m_deviceSampleSink->getOutputMessageQueueToGUI(), SIGNAL(messageEnqueued()), this, SLOT(handleSinkMessages()));
|
||||
m_deviceAPI->setSink(m_deviceSampleSink);
|
||||
|
||||
|
@ -35,13 +35,13 @@ MESSAGE_CLASS_DEFINITION(SDRdaemonSinkOutput::MsgConfigureSDRdaemonSinkStreamTim
|
||||
MESSAGE_CLASS_DEFINITION(SDRdaemonSinkOutput::MsgConfigureSDRdaemonSinkChunkCorrection, Message)
|
||||
MESSAGE_CLASS_DEFINITION(SDRdaemonSinkOutput::MsgReportSDRdaemonSinkStreamTiming, Message)
|
||||
|
||||
SDRdaemonSinkOutput::SDRdaemonSinkOutput(DeviceSinkAPI *deviceAPI, const QTimer& masterTimer) :
|
||||
SDRdaemonSinkOutput::SDRdaemonSinkOutput(DeviceSinkAPI *deviceAPI) :
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_settings(),
|
||||
m_sdrDaemonSinkThread(0),
|
||||
m_deviceDescription("SDRdaemonSink"),
|
||||
m_startingTimeStamp(0),
|
||||
m_masterTimer(masterTimer)
|
||||
m_masterTimer(deviceAPI->getMasterTimer())
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -132,7 +132,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
SDRdaemonSinkOutput(DeviceSinkAPI *deviceAPI, const QTimer& masterTimer);
|
||||
SDRdaemonSinkOutput(DeviceSinkAPI *deviceAPI);
|
||||
virtual ~SDRdaemonSinkOutput();
|
||||
|
||||
virtual bool start();
|
||||
|
@ -83,3 +83,17 @@ PluginInstanceUI* SDRdaemonSinkPlugin::createSampleSinkPluginInstanceGUI(const Q
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
DeviceSampleSink* SDRdaemonSinkPlugin::createSampleSinkPluginInstanceOutput(const QString& sinkId, DeviceSinkAPI *deviceAPI)
|
||||
{
|
||||
if(sinkId == m_deviceTypeID)
|
||||
{
|
||||
SDRdaemonSinkOutput* output = new SDRdaemonSinkOutput(deviceAPI);
|
||||
return output;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ public:
|
||||
|
||||
virtual SamplingDevices enumSampleSinks();
|
||||
virtual PluginInstanceUI* createSampleSinkPluginInstanceGUI(const QString& sinkId, QWidget **widget, DeviceSinkAPI *deviceAPI);
|
||||
virtual DeviceSampleSink* createSampleSinkPluginInstanceOutput(const QString& sinkId, DeviceSinkAPI *deviceAPI);
|
||||
|
||||
static const QString m_hardwareID;
|
||||
static const QString m_deviceTypeID;
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "mainwindow.h"
|
||||
#include "settings/preset.h"
|
||||
|
||||
// TODO: extract GUI dependencies in a separate object
|
||||
DeviceSinkAPI::DeviceSinkAPI(MainWindow *mainWindow,
|
||||
int deviceTabIndex,
|
||||
DSPDeviceSinkEngine *deviceSinkEngine,
|
||||
@ -37,7 +38,8 @@ DeviceSinkAPI::DeviceSinkAPI(MainWindow *mainWindow,
|
||||
m_sampleSinkSequence(0),
|
||||
m_sampleSinkPluginInstanceUI(0),
|
||||
m_buddySharedPtr(0),
|
||||
m_isBuddyLeader(false)
|
||||
m_isBuddyLeader(false),
|
||||
m_masterTimer(mainWindow->getMasterTimer()) // TODO: get master timer directly not from main window
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -101,6 +101,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
|
||||
{
|
||||
@ -149,6 +151,7 @@ protected:
|
||||
std::vector<DeviceSinkAPI*> 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 DeviceSourceAPI;
|
||||
|
Loading…
Reference in New Issue
Block a user