1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-17 13:19:25 -04:00

Input core creation method implementation in all source plugins

This commit is contained in:
f4exb
2017-09-14 13:34:32 +02:00
parent 25c150c3c5
commit aa5c6c59a5
28 changed files with 174 additions and 19 deletions
@@ -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);
@@ -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 <dsp/filerecord.h>
#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())
{
}
@@ -25,6 +25,7 @@
#include <fstream>
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;
@@ -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;
}
}
@@ -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;