diff --git a/doc/img/FileSink_plugin.png b/doc/img/FileOutput_plugin.png
similarity index 100%
rename from doc/img/FileSink_plugin.png
rename to doc/img/FileOutput_plugin.png
diff --git a/doc/img/FileSink_plugin.xcf b/doc/img/FileOutput_plugin.xcf
similarity index 100%
rename from doc/img/FileSink_plugin.xcf
rename to doc/img/FileOutput_plugin.xcf
diff --git a/doc/model/SDRAngel.mdj b/doc/model/SDRAngel.mdj
index 35413fb75..13dac666c 100644
--- a/doc/model/SDRAngel.mdj
+++ b/doc/model/SDRAngel.mdj
@@ -23742,7 +23742,7 @@
"width": 153,
"height": 38,
"autoResize": false,
- "text": "FileSink does not use this sample FIFO",
+ "text": "FileOutput does not use this sample FIFO",
"wordWrap": true
},
{
@@ -23788,7 +23788,7 @@
"width": 153,
"height": 77,
"autoResize": false,
- "text": "Does the upsampling from baseband FIFO to device FIFO. FileSink pulls from baseband FIFO directly",
+ "text": "Does the upsampling from baseband FIFO to device FIFO. FileOutput pulls from baseband FIFO directly",
"wordWrap": true
},
{
diff --git a/plugins/channeltx/filesource/filesourcesource.cpp b/plugins/channeltx/filesource/filesourcesource.cpp
index 8afc9d05e..202272c74 100644
--- a/plugins/channeltx/filesource/filesourcesource.cpp
+++ b/plugins/channeltx/filesource/filesourcesource.cpp
@@ -235,7 +235,7 @@ void FileSourceSource::seekFileStream(int seekMillis)
{
quint64 seekPoint = ((m_recordLength * seekMillis) / 1000) * m_fileSampleRate;
m_samplesCount = seekPoint;
- seekPoint *= (m_sampleSize == 24 ? 8 : 4); // + sizeof(FileSink::Header)
+ seekPoint *= (m_sampleSize == 24 ? 8 : 4); // + sizeof(FileRecord::Header)
m_ifstream.clear();
m_ifstream.seekg(seekPoint + sizeof(FileRecord::Header), std::ios::beg);
}
diff --git a/plugins/samplesink/CMakeLists.txt b/plugins/samplesink/CMakeLists.txt
index 829f955b7..0e421c3a9 100644
--- a/plugins/samplesink/CMakeLists.txt
+++ b/plugins/samplesink/CMakeLists.txt
@@ -1,7 +1,7 @@
project(samplesink)
add_subdirectory(testsink)
-add_subdirectory(filesink)
+add_subdirectory(fileoutput)
add_subdirectory(localoutput)
if(CM256CC_FOUND)
diff --git a/plugins/samplesink/fileoutput/CMakeLists.txt b/plugins/samplesink/fileoutput/CMakeLists.txt
new file mode 100644
index 000000000..f0504eec4
--- /dev/null
+++ b/plugins/samplesink/fileoutput/CMakeLists.txt
@@ -0,0 +1,55 @@
+project(fileoutput)
+
+set(fileoutput_SOURCES
+ fileoutput.cpp
+ fileoutputplugin.cpp
+ fileoutputsettings.cpp
+ fileoutputworker.cpp
+)
+
+set(fileoutput_HEADERS
+ fileoutput.h
+ fileoutputplugin.h
+ fileoutputsettings.h
+ fileoutputworker.h
+)
+
+include_directories(
+ ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
+)
+
+if(NOT SERVER_MODE)
+ set(fileoutput_SOURCES
+ ${fileoutput_SOURCES}
+ fileoutputgui.cpp
+ fileoutputgui.ui
+ )
+ set(fileoutput_HEADERS
+ ${fileoutput_HEADERS}
+ fileoutputgui.h
+ )
+
+ set(TARGET_NAME outputfileoutput)
+ set(TARGET_LIB "Qt5::Widgets")
+ set(TARGET_LIB_GUI "sdrgui")
+ set(INSTALL_FOLDER ${INSTALL_PLUGINS_DIR})
+else()
+ set(TARGET_NAME outputfileoutputsrv)
+ set(TARGET_LIB "")
+ set(TARGET_LIB_GUI "")
+ set(INSTALL_FOLDER ${INSTALL_PLUGINSSRV_DIR})
+endif()
+
+add_library(${TARGET_NAME} SHARED
+ ${fileoutput_SOURCES}
+)
+
+target_link_libraries(${TARGET_NAME}
+ Qt5::Core
+ ${TARGET_LIB}
+ sdrbase
+ ${TARGET_LIB_GUI}
+ swagger
+)
+
+install(TARGETS ${TARGET_NAME} DESTINATION ${INSTALL_FOLDER})
diff --git a/plugins/samplesink/filesink/filesinkoutput.cpp b/plugins/samplesink/fileoutput/fileoutput.cpp
similarity index 59%
rename from plugins/samplesink/filesink/filesinkoutput.cpp
rename to plugins/samplesink/fileoutput/fileoutput.cpp
index 62f194ea8..c4d2a86f4 100644
--- a/plugins/samplesink/filesink/filesinkoutput.cpp
+++ b/plugins/samplesink/fileoutput/fileoutput.cpp
@@ -28,22 +28,22 @@
#include "device/deviceapi.h"
-#include "filesinkoutput.h"
-#include "filesinkworker.h"
+#include "fileoutput.h"
+#include "fileoutputworker.h"
-MESSAGE_CLASS_DEFINITION(FileSinkOutput::MsgConfigureFileSink, Message)
-MESSAGE_CLASS_DEFINITION(FileSinkOutput::MsgStartStop, Message)
-MESSAGE_CLASS_DEFINITION(FileSinkOutput::MsgConfigureFileSinkName, Message)
-MESSAGE_CLASS_DEFINITION(FileSinkOutput::MsgConfigureFileSinkWork, Message)
-MESSAGE_CLASS_DEFINITION(FileSinkOutput::MsgConfigureFileSinkStreamTiming, Message)
-MESSAGE_CLASS_DEFINITION(FileSinkOutput::MsgReportFileSinkGeneration, Message)
-MESSAGE_CLASS_DEFINITION(FileSinkOutput::MsgReportFileSinkStreamTiming, Message)
+MESSAGE_CLASS_DEFINITION(FileOutput::MsgConfigureFileOutput, Message)
+MESSAGE_CLASS_DEFINITION(FileOutput::MsgStartStop, Message)
+MESSAGE_CLASS_DEFINITION(FileOutput::MsgConfigureFileOutputName, Message)
+MESSAGE_CLASS_DEFINITION(FileOutput::MsgConfigureFileOutputWork, Message)
+MESSAGE_CLASS_DEFINITION(FileOutput::MsgConfigureFileOutputStreamTiming, Message)
+MESSAGE_CLASS_DEFINITION(FileOutput::MsgReportFileOutputGeneration, Message)
+MESSAGE_CLASS_DEFINITION(FileOutput::MsgReportFileOutputStreamTiming, Message)
-FileSinkOutput::FileSinkOutput(DeviceAPI *deviceAPI) :
+FileOutput::FileOutput(DeviceAPI *deviceAPI) :
m_deviceAPI(deviceAPI),
m_settings(),
- m_fileSinkWorker(nullptr),
- m_deviceDescription("FileSink"),
+ m_fileOutputWorker(nullptr),
+ m_deviceDescription("FileOutput"),
m_fileName("./test.sdriq"),
m_startingTimeStamp(0),
m_masterTimer(deviceAPI->getMasterTimer())
@@ -51,17 +51,17 @@ FileSinkOutput::FileSinkOutput(DeviceAPI *deviceAPI) :
m_deviceAPI->setNbSinkStreams(1);
}
-FileSinkOutput::~FileSinkOutput()
+FileOutput::~FileOutput()
{
stop();
}
-void FileSinkOutput::destroy()
+void FileOutput::destroy()
{
delete this;
}
-void FileSinkOutput::openFileStream()
+void FileOutput::openFileStream()
{
if (m_ofstream.is_open()) {
m_ofstream.close();
@@ -79,51 +79,51 @@ void FileSinkOutput::openFileStream()
FileRecord::writeHeader(m_ofstream, header);
- qDebug() << "FileSinkOutput::openFileStream: " << m_fileName.toStdString().c_str();
+ qDebug() << "FileOutput::openFileStream: " << m_fileName.toStdString().c_str();
}
-void FileSinkOutput::init()
+void FileOutput::init()
{
applySettings(m_settings, true);
}
-bool FileSinkOutput::start()
+bool FileOutput::start()
{
QMutexLocker mutexLocker(&m_mutex);
- qDebug() << "FileSinkOutput::start";
+ qDebug() << "FileOutput::start";
openFileStream();
- m_fileSinkWorker = new FileSinkWorker(&m_ofstream, &m_sampleSourceFifo);
- m_fileSinkWorker->moveToThread(&m_fileSinkWorkerThread);
- m_fileSinkWorker->setSamplerate(m_settings.m_sampleRate);
- m_fileSinkWorker->setLog2Interpolation(m_settings.m_log2Interp);
- m_fileSinkWorker->connectTimer(m_masterTimer);
+ m_fileOutputWorker = new FileOutputWorker(&m_ofstream, &m_sampleSourceFifo);
+ m_fileOutputWorker->moveToThread(&m_fileOutputWorkerThread);
+ m_fileOutputWorker->setSamplerate(m_settings.m_sampleRate);
+ m_fileOutputWorker->setLog2Interpolation(m_settings.m_log2Interp);
+ m_fileOutputWorker->connectTimer(m_masterTimer);
startWorker();
mutexLocker.unlock();
//applySettings(m_generalSettings, m_settings, true);
- qDebug("FileSinkOutput::start: started");
+ qDebug("FileOutput::start: started");
if (getMessageQueueToGUI())
{
- MsgReportFileSinkGeneration *report = MsgReportFileSinkGeneration::create(true); // acquisition on
+ MsgReportFileOutputGeneration *report = MsgReportFileOutputGeneration::create(true); // acquisition on
getMessageQueueToGUI()->push(report);
}
return true;
}
-void FileSinkOutput::stop()
+void FileOutput::stop()
{
qDebug() << "FileSourceInput::stop";
QMutexLocker mutexLocker(&m_mutex);
- if (m_fileSinkWorker)
+ if (m_fileOutputWorker)
{
stopWorker();
- delete m_fileSinkWorker;
- m_fileSinkWorker = nullptr;
+ delete m_fileOutputWorker;
+ m_fileOutputWorker = nullptr;
}
if (m_ofstream.is_open()) {
@@ -132,30 +132,30 @@ void FileSinkOutput::stop()
if (getMessageQueueToGUI())
{
- MsgReportFileSinkGeneration *report = MsgReportFileSinkGeneration::create(false); // acquisition off
+ MsgReportFileOutputGeneration *report = MsgReportFileOutputGeneration::create(false); // acquisition off
getMessageQueueToGUI()->push(report);
}
}
-void FileSinkOutput::startWorker()
+void FileOutput::startWorker()
{
- m_fileSinkWorker->startWork();
- m_fileSinkWorkerThread.start();
+ m_fileOutputWorker->startWork();
+ m_fileOutputWorkerThread.start();
}
-void FileSinkOutput::stopWorker()
+void FileOutput::stopWorker()
{
- m_fileSinkWorker->stopWork();
- m_fileSinkWorkerThread.quit();
- m_fileSinkWorkerThread.wait();
+ m_fileOutputWorker->stopWork();
+ m_fileOutputWorkerThread.quit();
+ m_fileOutputWorkerThread.wait();
}
-QByteArray FileSinkOutput::serialize() const
+QByteArray FileOutput::serialize() const
{
return m_settings.serialize();
}
-bool FileSinkOutput::deserialize(const QByteArray& data)
+bool FileOutput::deserialize(const QByteArray& data)
{
bool success = true;
@@ -165,58 +165,58 @@ bool FileSinkOutput::deserialize(const QByteArray& data)
success = false;
}
- MsgConfigureFileSink* message = MsgConfigureFileSink::create(m_settings, true);
+ MsgConfigureFileOutput* message = MsgConfigureFileOutput::create(m_settings, true);
m_inputMessageQueue.push(message);
if (m_guiMessageQueue)
{
- MsgConfigureFileSink* messageToGUI = MsgConfigureFileSink::create(m_settings, true);
+ MsgConfigureFileOutput* messageToGUI = MsgConfigureFileOutput::create(m_settings, true);
m_guiMessageQueue->push(messageToGUI);
}
return success;
}
-const QString& FileSinkOutput::getDeviceDescription() const
+const QString& FileOutput::getDeviceDescription() const
{
return m_deviceDescription;
}
-int FileSinkOutput::getSampleRate() const
+int FileOutput::getSampleRate() const
{
return m_settings.m_sampleRate;
}
-quint64 FileSinkOutput::getCenterFrequency() const
+quint64 FileOutput::getCenterFrequency() const
{
return m_settings.m_centerFrequency;
}
-void FileSinkOutput::setCenterFrequency(qint64 centerFrequency)
+void FileOutput::setCenterFrequency(qint64 centerFrequency)
{
- FileSinkSettings settings = m_settings;
+ FileOutputSettings settings = m_settings;
settings.m_centerFrequency = centerFrequency;
- MsgConfigureFileSink* message = MsgConfigureFileSink::create(settings, false);
+ MsgConfigureFileOutput* message = MsgConfigureFileOutput::create(settings, false);
m_inputMessageQueue.push(message);
if (m_guiMessageQueue)
{
- MsgConfigureFileSink* messageToGUI = MsgConfigureFileSink::create(settings, false);
+ MsgConfigureFileOutput* messageToGUI = MsgConfigureFileOutput::create(settings, false);
m_guiMessageQueue->push(messageToGUI);
}
}
-std::time_t FileSinkOutput::getStartingTimeStamp() const
+std::time_t FileOutput::getStartingTimeStamp() const
{
return m_startingTimeStamp;
}
-bool FileSinkOutput::handleMessage(const Message& message)
+bool FileOutput::handleMessage(const Message& message)
{
- if (MsgConfigureFileSinkName::match(message))
+ if (MsgConfigureFileOutputName::match(message))
{
- MsgConfigureFileSinkName& conf = (MsgConfigureFileSinkName&) message;
+ MsgConfigureFileOutputName& conf = (MsgConfigureFileOutputName&) message;
m_fileName = conf.getFileName();
openFileStream();
return true;
@@ -224,7 +224,7 @@ bool FileSinkOutput::handleMessage(const Message& message)
else if (MsgStartStop::match(message))
{
MsgStartStop& cmd = (MsgStartStop&) message;
- qDebug() << "FileSinkOutput::handleMessage: MsgStartStop: " << (cmd.getStartStop() ? "start" : "stop");
+ qDebug() << "FileOutput::handleMessage: MsgStartStop: " << (cmd.getStartStop() ? "start" : "stop");
if (cmd.getStartStop())
{
@@ -240,19 +240,19 @@ bool FileSinkOutput::handleMessage(const Message& message)
return true;
}
- else if (MsgConfigureFileSink::match(message))
+ else if (MsgConfigureFileOutput::match(message))
{
- qDebug() << "FileSinkOutput::handleMessage: MsgConfigureFileSink";
- MsgConfigureFileSink& conf = (MsgConfigureFileSink&) message;
+ qDebug() << "FileOutput::handleMessage: MsgConfigureFileOutput";
+ MsgConfigureFileOutput& conf = (MsgConfigureFileOutput&) message;
applySettings(conf.getSettings(), conf.getForce());
return true;
}
- else if (MsgConfigureFileSinkWork::match(message))
+ else if (MsgConfigureFileOutputWork::match(message))
{
- MsgConfigureFileSinkWork& conf = (MsgConfigureFileSinkWork&) message;
+ MsgConfigureFileOutputWork& conf = (MsgConfigureFileOutputWork&) message;
bool working = conf.isWorking();
- if (m_fileSinkWorker != 0)
+ if (m_fileOutputWorker != 0)
{
if (working) {
startWorker();
@@ -263,13 +263,13 @@ bool FileSinkOutput::handleMessage(const Message& message)
return true;
}
- else if (MsgConfigureFileSinkStreamTiming::match(message))
+ else if (MsgConfigureFileOutputStreamTiming::match(message))
{
- MsgReportFileSinkStreamTiming *report;
+ MsgReportFileOutputStreamTiming *report;
- if (m_fileSinkWorker != 0 && getMessageQueueToGUI())
+ if (m_fileOutputWorker != 0 && getMessageQueueToGUI())
{
- report = MsgReportFileSinkStreamTiming::create(m_fileSinkWorker->getSamplesCount());
+ report = MsgReportFileOutputStreamTiming::create(m_fileOutputWorker->getSamplesCount());
getMessageQueueToGUI()->push(report);
}
@@ -281,7 +281,7 @@ bool FileSinkOutput::handleMessage(const Message& message)
}
}
-void FileSinkOutput::applySettings(const FileSinkSettings& settings, bool force)
+void FileOutput::applySettings(const FileOutputSettings& settings, bool force)
{
QMutexLocker mutexLocker(&m_mutex);
bool forwardChange = false;
@@ -296,9 +296,9 @@ void FileSinkOutput::applySettings(const FileSinkSettings& settings, bool force)
{
m_settings.m_sampleRate = settings.m_sampleRate;
- if (m_fileSinkWorker != 0)
+ if (m_fileOutputWorker != 0)
{
- m_fileSinkWorker->setSamplerate(m_settings.m_sampleRate);
+ m_fileOutputWorker->setSamplerate(m_settings.m_sampleRate);
}
forwardChange = true;
@@ -308,9 +308,9 @@ void FileSinkOutput::applySettings(const FileSinkSettings& settings, bool force)
{
m_settings.m_log2Interp = settings.m_log2Interp;
- if (m_fileSinkWorker != 0)
+ if (m_fileOutputWorker != 0)
{
- m_fileSinkWorker->setLog2Interpolation(m_settings.m_log2Interp);
+ m_fileOutputWorker->setLog2Interpolation(m_settings.m_log2Interp);
}
forwardChange = true;
@@ -318,7 +318,7 @@ void FileSinkOutput::applySettings(const FileSinkSettings& settings, bool force)
if (forwardChange)
{
- qDebug("FileSinkOutput::applySettings: forward: m_centerFrequency: %llu m_sampleRate: %llu m_log2Interp: %d",
+ qDebug("FileOutput::applySettings: forward: m_centerFrequency: %llu m_sampleRate: %llu m_log2Interp: %d",
m_settings.m_centerFrequency,
m_settings.m_sampleRate,
m_settings.m_log2Interp);
@@ -328,7 +328,7 @@ void FileSinkOutput::applySettings(const FileSinkSettings& settings, bool force)
}
-int FileSinkOutput::webapiRunGet(
+int FileOutput::webapiRunGet(
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage)
{
@@ -337,7 +337,7 @@ int FileSinkOutput::webapiRunGet(
return 200;
}
-int FileSinkOutput::webapiRun(
+int FileOutput::webapiRun(
bool run,
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage)
diff --git a/plugins/samplesink/filesink/filesinkoutput.h b/plugins/samplesink/fileoutput/fileoutput.h
similarity index 68%
rename from plugins/samplesink/filesink/filesinkoutput.h
rename to plugins/samplesink/fileoutput/fileoutput.h
index 0094a42b7..7142656b8 100644
--- a/plugins/samplesink/filesink/filesinkoutput.h
+++ b/plugins/samplesink/fileoutput/fileoutput.h
@@ -15,8 +15,8 @@
// along with this program. If not, see . //
///////////////////////////////////////////////////////////////////////////////////
-#ifndef INCLUDE_FILESINKOUTPUT_H
-#define INCLUDE_FILESINKOUTPUT_H
+#ifndef INCLUDE_FILEOUTPUT_H
+#define INCLUDE_FILEOUTPUT_H
#include
#include
@@ -27,30 +27,30 @@
#include
#include "dsp/devicesamplesink.h"
-#include "filesinksettings.h"
+#include "fileoutputsettings.h"
-class FileSinkWorker;
+class FileOutputWorker;
class DeviceAPI;
-class FileSinkOutput : public DeviceSampleSink {
+class FileOutput : public DeviceSampleSink {
public:
- class MsgConfigureFileSink : public Message {
+ class MsgConfigureFileOutput : public Message {
MESSAGE_CLASS_DECLARATION
public:
- const FileSinkSettings& getSettings() const { return m_settings; }
+ const FileOutputSettings& getSettings() const { return m_settings; }
bool getForce() const { return m_force; }
- static MsgConfigureFileSink* create(const FileSinkSettings& settings, bool force)
+ static MsgConfigureFileOutput* create(const FileOutputSettings& settings, bool force)
{
- return new MsgConfigureFileSink(settings, force);
+ return new MsgConfigureFileOutput(settings, force);
}
private:
- FileSinkSettings m_settings;
+ FileOutputSettings m_settings;
bool m_force;
- MsgConfigureFileSink(const FileSinkSettings& settings, bool force) :
+ MsgConfigureFileOutput(const FileOutputSettings& settings, bool force) :
Message(),
m_settings(settings),
m_force(force)
@@ -76,105 +76,105 @@ public:
{ }
};
- class MsgConfigureFileSinkName : public Message {
+ class MsgConfigureFileOutputName : public Message {
MESSAGE_CLASS_DECLARATION
public:
const QString& getFileName() const { return m_fileName; }
- static MsgConfigureFileSinkName* create(const QString& fileName)
+ static MsgConfigureFileOutputName* create(const QString& fileName)
{
- return new MsgConfigureFileSinkName(fileName);
+ return new MsgConfigureFileOutputName(fileName);
}
private:
QString m_fileName;
- MsgConfigureFileSinkName(const QString& fileName) :
+ MsgConfigureFileOutputName(const QString& fileName) :
Message(),
m_fileName(fileName)
{ }
};
- class MsgConfigureFileSinkWork : public Message {
+ class MsgConfigureFileOutputWork : public Message {
MESSAGE_CLASS_DECLARATION
public:
bool isWorking() const { return m_working; }
- static MsgConfigureFileSinkWork* create(bool working)
+ static MsgConfigureFileOutputWork* create(bool working)
{
- return new MsgConfigureFileSinkWork(working);
+ return new MsgConfigureFileOutputWork(working);
}
private:
bool m_working;
- MsgConfigureFileSinkWork(bool working) :
+ MsgConfigureFileOutputWork(bool working) :
Message(),
m_working(working)
{ }
};
- class MsgConfigureFileSinkStreamTiming : public Message {
+ class MsgConfigureFileOutputStreamTiming : public Message {
MESSAGE_CLASS_DECLARATION
public:
- static MsgConfigureFileSinkStreamTiming* create()
+ static MsgConfigureFileOutputStreamTiming* create()
{
- return new MsgConfigureFileSinkStreamTiming();
+ return new MsgConfigureFileOutputStreamTiming();
}
private:
- MsgConfigureFileSinkStreamTiming() :
+ MsgConfigureFileOutputStreamTiming() :
Message()
{ }
};
- class MsgReportFileSinkGeneration : public Message {
+ class MsgReportFileOutputGeneration : public Message {
MESSAGE_CLASS_DECLARATION
public:
bool getAcquisition() const { return m_acquisition; }
- static MsgReportFileSinkGeneration* create(bool acquisition)
+ static MsgReportFileOutputGeneration* create(bool acquisition)
{
- return new MsgReportFileSinkGeneration(acquisition);
+ return new MsgReportFileOutputGeneration(acquisition);
}
protected:
bool m_acquisition;
- MsgReportFileSinkGeneration(bool acquisition) :
+ MsgReportFileOutputGeneration(bool acquisition) :
Message(),
m_acquisition(acquisition)
{ }
};
- class MsgReportFileSinkStreamTiming : public Message {
+ class MsgReportFileOutputStreamTiming : public Message {
MESSAGE_CLASS_DECLARATION
public:
std::size_t getSamplesCount() const { return m_samplesCount; }
- static MsgReportFileSinkStreamTiming* create(std::size_t samplesCount)
+ static MsgReportFileOutputStreamTiming* create(std::size_t samplesCount)
{
- return new MsgReportFileSinkStreamTiming(samplesCount);
+ return new MsgReportFileOutputStreamTiming(samplesCount);
}
protected:
std::size_t m_samplesCount;
- MsgReportFileSinkStreamTiming(std::size_t samplesCount) :
+ MsgReportFileOutputStreamTiming(std::size_t samplesCount) :
Message(),
m_samplesCount(samplesCount)
{ }
};
- FileSinkOutput(DeviceAPI *deviceAPI);
- virtual ~FileSinkOutput();
+ FileOutput(DeviceAPI *deviceAPI);
+ virtual ~FileOutput();
virtual void destroy();
virtual void init();
@@ -206,10 +206,10 @@ public:
private:
DeviceAPI *m_deviceAPI;
QMutex m_mutex;
- FileSinkSettings m_settings;
+ FileOutputSettings m_settings;
std::ofstream m_ofstream;
- FileSinkWorker* m_fileSinkWorker;
- QThread m_fileSinkWorkerThread;
+ FileOutputWorker* m_fileOutputWorker;
+ QThread m_fileOutputWorkerThread;
QString m_deviceDescription;
QString m_fileName;
std::time_t m_startingTimeStamp;
@@ -218,7 +218,7 @@ private:
void startWorker();
void stopWorker();
void openFileStream();
- void applySettings(const FileSinkSettings& settings, bool force = false);
+ void applySettings(const FileOutputSettings& settings, bool force = false);
};
-#endif // INCLUDE_FILESINKOUTPUT_H
+#endif // INCLUDE_FILEOUTPUT_H
diff --git a/plugins/samplesink/filesink/filesinkgui.cpp b/plugins/samplesink/fileoutput/fileoutputgui.cpp
similarity index 69%
rename from plugins/samplesink/filesink/filesinkgui.cpp
rename to plugins/samplesink/fileoutput/fileoutputgui.cpp
index c0da9481f..139663136 100644
--- a/plugins/samplesink/filesink/filesinkgui.cpp
+++ b/plugins/samplesink/fileoutput/fileoutputgui.cpp
@@ -23,7 +23,7 @@
#include
#include
-#include "ui_filesinkgui.h"
+#include "ui_fileoutputgui.h"
#include "plugin/pluginapi.h"
#include "gui/colormapper.h"
#include "gui/glspectrum.h"
@@ -34,11 +34,11 @@
#include "device/deviceapi.h"
#include "device/deviceuiset.h"
-#include "filesinkgui.h"
+#include "fileoutputgui.h"
-FileSinkGui::FileSinkGui(DeviceUISet *deviceUISet, QWidget* parent) :
+FileOutputGui::FileOutputGui(DeviceUISet *deviceUISet, QWidget* parent) :
QWidget(parent),
- ui(new Ui::FileSinkGui),
+ ui(new Ui::FileOutputGui),
m_deviceUISet(deviceUISet),
m_doApplySettings(true),
m_forceSettings(true),
@@ -69,55 +69,55 @@ FileSinkGui::FileSinkGui(DeviceUISet *deviceUISet, QWidget* parent) :
displaySettings();
- m_deviceSampleSink = (FileSinkOutput*) m_deviceUISet->m_deviceAPI->getSampleSink();
+ m_deviceSampleSink = (FileOutput*) m_deviceUISet->m_deviceAPI->getSampleSink();
connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection);
}
-FileSinkGui::~FileSinkGui()
+FileOutputGui::~FileOutputGui()
{
delete ui;
}
-void FileSinkGui::destroy()
+void FileOutputGui::destroy()
{
delete this;
}
-void FileSinkGui::setName(const QString& name)
+void FileOutputGui::setName(const QString& name)
{
setObjectName(name);
}
-QString FileSinkGui::getName() const
+QString FileOutputGui::getName() const
{
return objectName();
}
-void FileSinkGui::resetToDefaults()
+void FileOutputGui::resetToDefaults()
{
m_settings.resetToDefaults();
displaySettings();
sendSettings();
}
-qint64 FileSinkGui::getCenterFrequency() const
+qint64 FileOutputGui::getCenterFrequency() const
{
return m_settings.m_centerFrequency;
}
-void FileSinkGui::setCenterFrequency(qint64 centerFrequency)
+void FileOutputGui::setCenterFrequency(qint64 centerFrequency)
{
m_settings.m_centerFrequency = centerFrequency;
displaySettings();
sendSettings();
}
-QByteArray FileSinkGui::serialize() const
+QByteArray FileOutputGui::serialize() const
{
return m_settings.serialize();
}
-bool FileSinkGui::deserialize(const QByteArray& data)
+bool FileOutputGui::deserialize(const QByteArray& data)
{
if(m_settings.deserialize(data)) {
displaySettings();
@@ -130,35 +130,35 @@ bool FileSinkGui::deserialize(const QByteArray& data)
}
}
-bool FileSinkGui::handleMessage(const Message& message)
+bool FileOutputGui::handleMessage(const Message& message)
{
- if (FileSinkOutput::MsgConfigureFileSink::match(message))
+ if (FileOutput::MsgConfigureFileOutput::match(message))
{
- qDebug("FileSinkGui::handleMessage: message: MsgConfigureFileSink");
- const FileSinkOutput::MsgConfigureFileSink& cfg = (FileSinkOutput::MsgConfigureFileSink&) message;
+ qDebug("FileOutputGui::handleMessage: message: MsgConfigureFileOutput");
+ const FileOutput::MsgConfigureFileOutput& cfg = (FileOutput::MsgConfigureFileOutput&) message;
m_settings = cfg.getSettings();
blockApplySettings(true);
displaySettings();
blockApplySettings(false);
return true;
}
- else if (FileSinkOutput::MsgReportFileSinkGeneration::match(message))
+ else if (FileOutput::MsgReportFileOutputGeneration::match(message))
{
- m_generation = ((FileSinkOutput::MsgReportFileSinkGeneration&)message).getAcquisition();
- qDebug("FileSinkGui::handleMessage: message: MsgReportFileSinkGeneration: %s", m_generation ? "start" : "stop");
+ m_generation = ((FileOutput::MsgReportFileOutputGeneration&)message).getAcquisition();
+ qDebug("FileOutputGui::handleMessage: message: MsgReportFileOutputGeneration: %s", m_generation ? "start" : "stop");
updateWithGeneration();
return true;
}
- else if (FileSinkOutput::MsgReportFileSinkStreamTiming::match(message))
+ else if (FileOutput::MsgReportFileOutputStreamTiming::match(message))
{
- m_samplesCount = ((FileSinkOutput::MsgReportFileSinkStreamTiming&)message).getSamplesCount();
+ m_samplesCount = ((FileOutput::MsgReportFileOutputStreamTiming&)message).getSamplesCount();
updateWithStreamTime();
return true;
}
- else if (FileSinkOutput::MsgStartStop::match(message))
+ else if (FileOutput::MsgStartStop::match(message))
{
- FileSinkOutput::MsgStartStop& notif = (FileSinkOutput::MsgStartStop&) message;
- qDebug("FileSinkGui::handleMessage: message: MsgStartStop: %s", notif.getStartStop() ? "start" : "stop");
+ FileOutput::MsgStartStop& notif = (FileOutput::MsgStartStop&) message;
+ qDebug("FileOutputGui::handleMessage: message: MsgStartStop: %s", notif.getStartStop() ? "start" : "stop");
blockApplySettings(true);
ui->startStop->setChecked(notif.getStartStop());
blockApplySettings(false);
@@ -170,7 +170,7 @@ bool FileSinkGui::handleMessage(const Message& message)
}
}
-void FileSinkGui::handleInputMessages()
+void FileOutputGui::handleInputMessages()
{
Message* message;
@@ -180,7 +180,7 @@ void FileSinkGui::handleInputMessages()
if (DSPSignalNotification::match(*message))
{
DSPSignalNotification* notif = (DSPSignalNotification*) message;
- qDebug("FileSinkGui::handleInputMessages: DSPSignalNotification: SampleRate:%d, CenterFrequency:%llu", notif->getSampleRate(), notif->getCenterFrequency());
+ qDebug("FileOutputGui::handleInputMessages: DSPSignalNotification: SampleRate:%d, CenterFrequency:%llu", notif->getSampleRate(), notif->getCenterFrequency());
m_sampleRate = notif->getSampleRate();
m_deviceCenterFrequency = notif->getCenterFrequency();
updateSampleRateAndFrequency();
@@ -197,36 +197,36 @@ void FileSinkGui::handleInputMessages()
}
}
-void FileSinkGui::updateSampleRateAndFrequency()
+void FileOutputGui::updateSampleRateAndFrequency()
{
m_deviceUISet->getSpectrum()->setSampleRate(m_sampleRate);
m_deviceUISet->getSpectrum()->setCenterFrequency(m_deviceCenterFrequency);
ui->deviceRateText->setText(tr("%1k").arg((float)(m_sampleRate*(1<centerFrequency->setValue(m_settings.m_centerFrequency / 1000);
ui->sampleRate->setValue(m_settings.m_sampleRate);
}
-void FileSinkGui::sendSettings()
+void FileOutputGui::sendSettings()
{
if(!m_updateTimer.isActive())
m_updateTimer.start(100);
}
-void FileSinkGui::updateHardware()
+void FileOutputGui::updateHardware()
{
- qDebug() << "FileSinkGui::updateHardware";
- FileSinkOutput::MsgConfigureFileSink* message = FileSinkOutput::MsgConfigureFileSink::create(m_settings, m_forceSettings);
+ qDebug() << "FileOutputGui::updateHardware";
+ FileOutput::MsgConfigureFileOutput* message = FileOutput::MsgConfigureFileOutput::create(m_settings, m_forceSettings);
m_deviceSampleSink->getInputMessageQueue()->push(message);
m_forceSettings = false;
m_updateTimer.stop();
}
-void FileSinkGui::updateStatus()
+void FileOutputGui::updateStatus()
{
int state = m_deviceUISet->m_deviceAPI->state();
@@ -255,19 +255,19 @@ void FileSinkGui::updateStatus()
}
}
-void FileSinkGui::on_centerFrequency_changed(quint64 value)
+void FileOutputGui::on_centerFrequency_changed(quint64 value)
{
m_settings.m_centerFrequency = value * 1000;
sendSettings();
}
-void FileSinkGui::on_sampleRate_changed(quint64 value)
+void FileOutputGui::on_sampleRate_changed(quint64 value)
{
m_settings.m_sampleRate = value;
sendSettings();
}
-void FileSinkGui::on_interp_currentIndexChanged(int index)
+void FileOutputGui::on_interp_currentIndexChanged(int index)
{
if (index < 0) {
return;
@@ -278,16 +278,16 @@ void FileSinkGui::on_interp_currentIndexChanged(int index)
sendSettings();
}
-void FileSinkGui::on_startStop_toggled(bool checked)
+void FileOutputGui::on_startStop_toggled(bool checked)
{
if (m_doApplySettings)
{
- FileSinkOutput::MsgStartStop *message = FileSinkOutput::MsgStartStop::create(checked);
+ FileOutput::MsgStartStop *message = FileOutput::MsgStartStop::create(checked);
m_deviceSampleSink->getInputMessageQueue()->push(message);
}
}
-void FileSinkGui::on_showFileDialog_clicked(bool checked)
+void FileOutputGui::on_showFileDialog_clicked(bool checked)
{
(void) checked;
QString fileName = QFileDialog::getSaveFileName(this,
@@ -301,19 +301,19 @@ void FileSinkGui::on_showFileDialog_clicked(bool checked)
}
}
-void FileSinkGui::configureFileName()
+void FileOutputGui::configureFileName()
{
- qDebug() << "FileSinkGui::configureFileName: " << m_fileName.toStdString().c_str();
- FileSinkOutput::MsgConfigureFileSinkName* message = FileSinkOutput::MsgConfigureFileSinkName::create(m_fileName);
+ qDebug() << "FileOutputGui::configureFileName: " << m_fileName.toStdString().c_str();
+ FileOutput::MsgConfigureFileOutputName* message = FileOutput::MsgConfigureFileOutputName::create(m_fileName);
m_deviceSampleSink->getInputMessageQueue()->push(message);
}
-void FileSinkGui::updateWithGeneration()
+void FileOutputGui::updateWithGeneration()
{
ui->showFileDialog->setEnabled(!m_generation);
}
-void FileSinkGui::updateWithStreamTime()
+void FileOutputGui::updateWithStreamTime()
{
int t_sec = 0;
int t_msec = 0;
@@ -330,11 +330,11 @@ void FileSinkGui::updateWithStreamTime()
ui->relTimeText->setText(s_timems);
}
-void FileSinkGui::tick()
+void FileOutputGui::tick()
{
if ((++m_tickCount & 0xf) == 0)
{
- FileSinkOutput::MsgConfigureFileSinkStreamTiming* message = FileSinkOutput::MsgConfigureFileSinkStreamTiming::create();
+ FileOutput::MsgConfigureFileOutputStreamTiming* message = FileOutput::MsgConfigureFileOutputStreamTiming::create();
m_deviceSampleSink->getInputMessageQueue()->push(message);
}
}
diff --git a/plugins/samplesink/filesink/filesinkgui.h b/plugins/samplesink/fileoutput/fileoutputgui.h
similarity index 88%
rename from plugins/samplesink/filesink/filesinkgui.h
rename to plugins/samplesink/fileoutput/fileoutputgui.h
index cc0d591e2..398cae37b 100644
--- a/plugins/samplesink/filesink/filesinkgui.h
+++ b/plugins/samplesink/fileoutput/fileoutputgui.h
@@ -15,8 +15,8 @@
// along with this program. If not, see . //
///////////////////////////////////////////////////////////////////////////////////
-#ifndef INCLUDE_FILESINKGUI_H
-#define INCLUDE_FILESINKGUI_H
+#ifndef INCLUDE_FILEOUTPUTGUI_H
+#define INCLUDE_FILEOUTPUTGUI_H
#include
#include
@@ -24,23 +24,23 @@
#include "util/messagequeue.h"
-#include "filesinkoutput.h"
-#include "filesinksettings.h"
+#include "fileoutput.h"
+#include "fileoutputsettings.h"
class DeviceSampleSink;
class DeviceUISet;
namespace Ui {
- class FileSinkGui;
+ class FileOutputGui;
}
-class FileSinkGui : public QWidget, public PluginInstanceGUI {
+class FileOutputGui : public QWidget, public PluginInstanceGUI {
Q_OBJECT
public:
- explicit FileSinkGui(DeviceUISet *deviceUISet, QWidget* parent = 0);
- virtual ~FileSinkGui();
+ explicit FileOutputGui(DeviceUISet *deviceUISet, QWidget* parent = 0);
+ virtual ~FileOutputGui();
virtual void destroy();
void setName(const QString& name);
@@ -55,12 +55,12 @@ public:
virtual bool handleMessage(const Message& message);
private:
- Ui::FileSinkGui* ui;
+ Ui::FileOutputGui* ui;
DeviceUISet* m_deviceUISet;
bool m_doApplySettings;
bool m_forceSettings;
- FileSinkSettings m_settings;
+ FileOutputSettings m_settings;
QString m_fileName;
QTimer m_updateTimer;
QTimer m_statusTimer;
@@ -95,4 +95,4 @@ private slots:
void tick();
};
-#endif // INCLUDE_FILESINKGUI_H
+#endif // INCLUDE_FILEOUTPUTGUI_H
diff --git a/plugins/samplesink/filesink/filesinkgui.ui b/plugins/samplesink/fileoutput/fileoutputgui.ui
similarity index 98%
rename from plugins/samplesink/filesink/filesinkgui.ui
rename to plugins/samplesink/fileoutput/fileoutputgui.ui
index c32352c73..6deafee04 100644
--- a/plugins/samplesink/filesink/filesinkgui.ui
+++ b/plugins/samplesink/fileoutput/fileoutputgui.ui
@@ -1,7 +1,7 @@
- FileSinkGui
-
+ FileOutputGui
+
0
@@ -29,7 +29,7 @@
- FileSink
+ FileOutput
diff --git a/plugins/samplesink/filesink/filesinkplugin.cpp b/plugins/samplesink/fileoutput/fileoutputplugin.cpp
similarity index 72%
rename from plugins/samplesink/filesink/filesinkplugin.cpp
rename to plugins/samplesink/fileoutput/fileoutputplugin.cpp
index 7cc5a053f..bde944d82 100644
--- a/plugins/samplesink/filesink/filesinkplugin.cpp
+++ b/plugins/samplesink/fileoutput/fileoutputplugin.cpp
@@ -21,48 +21,48 @@
#include "util/simpleserializer.h"
#ifdef SERVER_MODE
-#include "filesinkoutput.h"
+#include "fileoutput.h"
#else
-#include "filesinkgui.h"
+#include "fileoutputgui.h"
#endif
-#include "filesinkplugin.h"
+#include "fileoutputplugin.h"
-const PluginDescriptor FileSinkPlugin::m_pluginDescriptor = {
- QString("FileSink"),
- QString("File sink output"),
- QString("4.14.16"),
+const PluginDescriptor FileOutputPlugin::m_pluginDescriptor = {
+ QString("FileOutput"),
+ QString("File output"),
+ QString("4.15.0"),
QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"),
true,
QString("https://github.com/f4exb/sdrangel")
};
-const QString FileSinkPlugin::m_hardwareID = "FileSink";
-const QString FileSinkPlugin::m_deviceTypeID = FILESINK_DEVICE_TYPE_ID;
+const QString FileOutputPlugin::m_hardwareID = "FileOutput";
+const QString FileOutputPlugin::m_deviceTypeID = FILEOUTPUT_DEVICE_TYPE_ID;
-FileSinkPlugin::FileSinkPlugin(QObject* parent) :
+FileOutputPlugin::FileOutputPlugin(QObject* parent) :
QObject(parent)
{
}
-const PluginDescriptor& FileSinkPlugin::getPluginDescriptor() const
+const PluginDescriptor& FileOutputPlugin::getPluginDescriptor() const
{
return m_pluginDescriptor;
}
-void FileSinkPlugin::initPlugin(PluginAPI* pluginAPI)
+void FileOutputPlugin::initPlugin(PluginAPI* pluginAPI)
{
pluginAPI->registerSampleSink(m_deviceTypeID, this);
}
-void FileSinkPlugin::enumOriginDevices(QStringList& listedHwIds, OriginDevices& originDevices)
+void FileOutputPlugin::enumOriginDevices(QStringList& listedHwIds, OriginDevices& originDevices)
{
if (listedHwIds.contains(m_hardwareID)) { // check if it was done
return;
}
originDevices.append(OriginDevice(
- "FileSink",
+ "FileOutput",
m_hardwareID,
QString(),
0, // Sequence
@@ -73,7 +73,7 @@ void FileSinkPlugin::enumOriginDevices(QStringList& listedHwIds, OriginDevices&
listedHwIds.append(m_hardwareID);
}
-PluginInterface::SamplingDevices FileSinkPlugin::enumSampleSinks(const OriginDevices& originDevices)
+PluginInterface::SamplingDevices FileOutputPlugin::enumSampleSinks(const OriginDevices& originDevices)
{
SamplingDevices result;
@@ -99,7 +99,7 @@ PluginInterface::SamplingDevices FileSinkPlugin::enumSampleSinks(const OriginDev
}
#ifdef SERVER_MODE
-PluginInstanceGUI* FileSinkPlugin::createSampleSinkPluginInstanceGUI(
+PluginInstanceGUI* FileOutputPlugin::createSampleSinkPluginInstanceGUI(
const QString& sinkId,
QWidget **widget,
DeviceUISet *deviceUISet)
@@ -107,32 +107,32 @@ PluginInstanceGUI* FileSinkPlugin::createSampleSinkPluginInstanceGUI(
(void) sinkId;
(void) widget;
(void) deviceUISet;
- return 0;
+ return nullptr;
}
#else
-PluginInstanceGUI* FileSinkPlugin::createSampleSinkPluginInstanceGUI(
+PluginInstanceGUI* FileOutputPlugin::createSampleSinkPluginInstanceGUI(
const QString& sinkId,
QWidget **widget,
DeviceUISet *deviceUISet)
{
- if(sinkId == m_deviceTypeID)
+ if (sinkId == m_deviceTypeID)
{
- FileSinkGui* gui = new FileSinkGui(deviceUISet);
+ FileOutputGui* gui = new FileOutputGui(deviceUISet);
*widget = gui;
return gui;
}
else
{
- return 0;
+ return nullptr;
}
}
#endif
-DeviceSampleSink* FileSinkPlugin::createSampleSinkPluginInstance(const QString& sinkId, DeviceAPI *deviceAPI)
+DeviceSampleSink* FileOutputPlugin::createSampleSinkPluginInstance(const QString& sinkId, DeviceAPI *deviceAPI)
{
if(sinkId == m_deviceTypeID)
{
- FileSinkOutput* output = new FileSinkOutput(deviceAPI);
+ FileOutput* output = new FileOutput(deviceAPI);
return output;
}
else
diff --git a/plugins/samplesink/filesink/filesinkplugin.h b/plugins/samplesink/fileoutput/fileoutputplugin.h
similarity index 86%
rename from plugins/samplesink/filesink/filesinkplugin.h
rename to plugins/samplesink/fileoutput/fileoutputplugin.h
index b7989571c..506ff491c 100644
--- a/plugins/samplesink/filesink/filesinkplugin.h
+++ b/plugins/samplesink/fileoutput/fileoutputplugin.h
@@ -15,24 +15,24 @@
// along with this program. If not, see . //
///////////////////////////////////////////////////////////////////////////////////
-#ifndef INCLUDE_FILESINKPLUGIN_H
-#define INCLUDE_FILESINKPLUGIN_H
+#ifndef INCLUDE_FILEOUTPUTPLUGIN_H
+#define INCLUDE_FILEOUTPUTPLUGIN_H
#include
#include "plugin/plugininterface.h"
-#define FILESINK_DEVICE_TYPE_ID "sdrangel.samplesink.filesink"
+#define FILEOUTPUT_DEVICE_TYPE_ID "sdrangel.samplesink.fileoutput"
class PluginAPI;
class DeviceAPI;
-class FileSinkPlugin : public QObject, public PluginInterface {
+class FileOutputPlugin : public QObject, public PluginInterface {
Q_OBJECT
Q_INTERFACES(PluginInterface)
- Q_PLUGIN_METADATA(IID FILESINK_DEVICE_TYPE_ID)
+ Q_PLUGIN_METADATA(IID FILEOUTPUT_DEVICE_TYPE_ID)
public:
- explicit FileSinkPlugin(QObject* parent = NULL);
+ explicit FileOutputPlugin(QObject* parent = NULL);
const PluginDescriptor& getPluginDescriptor() const;
void initPlugin(PluginAPI* pluginAPI);
@@ -52,4 +52,4 @@ private:
static const PluginDescriptor m_pluginDescriptor;
};
-#endif // INCLUDE_FILESOURCEPLUGIN_H
+#endif // INCLUDE_FILEOUTPUTPLUGIN_H
diff --git a/plugins/samplesink/filesink/filesinksettings.cpp b/plugins/samplesink/fileoutput/fileoutputsettings.cpp
similarity index 89%
rename from plugins/samplesink/filesink/filesinksettings.cpp
rename to plugins/samplesink/fileoutput/fileoutputsettings.cpp
index ae35fe31a..cdd1fad60 100644
--- a/plugins/samplesink/filesink/filesinksettings.cpp
+++ b/plugins/samplesink/fileoutput/fileoutputsettings.cpp
@@ -16,21 +16,21 @@
///////////////////////////////////////////////////////////////////////////////////
#include "util/simpleserializer.h"
-#include "filesinksettings.h"
+#include "fileoutputsettings.h"
-FileSinkSettings::FileSinkSettings()
+FileOutputSettings::FileOutputSettings()
{
resetToDefaults();
}
-void FileSinkSettings::resetToDefaults()
+void FileOutputSettings::resetToDefaults()
{
m_centerFrequency = 435000*1000;
m_sampleRate = 48000;
m_log2Interp = 0;
}
-QByteArray FileSinkSettings::serialize() const
+QByteArray FileOutputSettings::serialize() const
{
SimpleSerializer s(1);
@@ -40,7 +40,7 @@ QByteArray FileSinkSettings::serialize() const
return s.final();
}
-bool FileSinkSettings::deserialize(const QByteArray& data)
+bool FileOutputSettings::deserialize(const QByteArray& data)
{
SimpleDeserializer d(data);
diff --git a/plugins/samplesink/filesink/filesinksettings.h b/plugins/samplesink/fileoutput/fileoutputsettings.h
similarity index 86%
rename from plugins/samplesink/filesink/filesinksettings.h
rename to plugins/samplesink/fileoutput/fileoutputsettings.h
index e20e36be9..91d593fa4 100644
--- a/plugins/samplesink/filesink/filesinksettings.h
+++ b/plugins/samplesink/fileoutput/fileoutputsettings.h
@@ -15,20 +15,20 @@
// along with this program. If not, see . //
///////////////////////////////////////////////////////////////////////////////////
-#ifndef PLUGINS_SAMPLESINK_FILESINK_FILESINKSETTINGS_H_
-#define PLUGINS_SAMPLESINK_FILESINK_FILESINKSETTINGS_H_
+#ifndef PLUGINS_SAMPLESINK_FILEOUTPUT_FILEOUTPUTSETTINGS_H_
+#define PLUGINS_SAMPLESINK_FILEOUTPUT_FILEOUTPUTSETTINGS_H_
#include
-struct FileSinkSettings {
+struct FileOutputSettings {
quint64 m_centerFrequency;
quint64 m_sampleRate;
quint32 m_log2Interp;
- FileSinkSettings();
+ FileOutputSettings();
void resetToDefaults();
QByteArray serialize() const;
bool deserialize(const QByteArray& data);
};
-#endif /* PLUGINS_SAMPLESINK_FILESINK_FILESINKSETTINGS_H_ */
+#endif /* PLUGINS_SAMPLESINK_FILEOUTPUT_FILEOUTPUTSETTINGS_H_ */
diff --git a/plugins/samplesink/filesink/filesinkworker.cpp b/plugins/samplesink/fileoutput/fileoutputworker.cpp
similarity index 85%
rename from plugins/samplesink/filesink/filesinkworker.cpp
rename to plugins/samplesink/fileoutput/fileoutputworker.cpp
index bf4470bb3..d31e6589a 100644
--- a/plugins/samplesink/filesink/filesinkworker.cpp
+++ b/plugins/samplesink/fileoutput/fileoutputworker.cpp
@@ -22,9 +22,9 @@
#include
#include "dsp/samplesourcefifo.h"
-#include "filesinkworker.h"
+#include "fileoutputworker.h"
-FileSinkWorker::FileSinkWorker(std::ofstream *samplesStream, SampleSourceFifo* sampleFifo, QObject* parent) :
+FileOutputWorker::FileOutputWorker(std::ofstream *samplesStream, SampleSourceFifo* sampleFifo, QObject* parent) :
QObject(parent),
m_running(false),
m_ofstream(samplesStream),
@@ -34,7 +34,7 @@ FileSinkWorker::FileSinkWorker(std::ofstream *samplesStream, SampleSourceFifo* s
m_samplesCount(0),
m_samplerate(0),
m_log2Interpolation(0),
- m_throttlems(FILESINK_THROTTLE_MS),
+ m_throttlems(FILEOUTPUT_THROTTLE_MS),
m_maxThrottlems(50),
m_throttleToggle(false),
m_buf(nullptr)
@@ -42,7 +42,7 @@ FileSinkWorker::FileSinkWorker(std::ofstream *samplesStream, SampleSourceFifo* s
assert(m_ofstream != nullptr);
}
-FileSinkWorker::~FileSinkWorker()
+FileOutputWorker::~FileOutputWorker()
{
if (m_running) {
stopWork();
@@ -51,34 +51,34 @@ FileSinkWorker::~FileSinkWorker()
if (m_buf) delete[] m_buf;
}
-void FileSinkWorker::startWork()
+void FileOutputWorker::startWork()
{
- qDebug() << "FileSinkWorker::startWork: ";
+ qDebug() << "FileOutputWorker::startWork: ";
if (m_ofstream->is_open())
{
- qDebug() << "FileSinkWorker::startWork: file stream open, starting...";
+ qDebug() << "FileOutputWorker::startWork: file stream open, starting...";
m_maxThrottlems = 0;
m_elapsedTimer.start();
m_running = true;
}
else
{
- qDebug() << "FileSinkWorker::startWork: file stream closed, not starting.";
+ qDebug() << "FileOutputWorker::startWork: file stream closed, not starting.";
m_running = false;
}
}
-void FileSinkWorker::stopWork()
+void FileOutputWorker::stopWork()
{
m_running = false;
}
-void FileSinkWorker::setSamplerate(int samplerate)
+void FileOutputWorker::setSamplerate(int samplerate)
{
if (samplerate != m_samplerate)
{
- qDebug() << "FileSinkWorker::setSamplerate:"
+ qDebug() << "FileOutputWorker::setSamplerate:"
<< " new:" << samplerate
<< " old:" << m_samplerate;
@@ -108,7 +108,7 @@ void FileSinkWorker::setSamplerate(int samplerate)
}
}
-void FileSinkWorker::setLog2Interpolation(int log2Interpolation)
+void FileOutputWorker::setLog2Interpolation(int log2Interpolation)
{
if ((log2Interpolation < 0) || (log2Interpolation > 6))
{
@@ -117,7 +117,7 @@ void FileSinkWorker::setLog2Interpolation(int log2Interpolation)
if (log2Interpolation != m_log2Interpolation)
{
- qDebug() << "FileSinkWorker::setLog2Interpolation:"
+ qDebug() << "FileOutputWorker::setLog2Interpolation:"
<< " new:" << log2Interpolation
<< " old:" << m_log2Interpolation;
@@ -141,13 +141,13 @@ void FileSinkWorker::setLog2Interpolation(int log2Interpolation)
}
}
-void FileSinkWorker::connectTimer(const QTimer& timer)
+void FileOutputWorker::connectTimer(const QTimer& timer)
{
- qDebug() << "FileSinkWorker::connectTimer";
+ qDebug() << "FileOutputWorker::connectTimer";
connect(&timer, SIGNAL(timeout()), this, SLOT(tick()));
}
-void FileSinkWorker::tick()
+void FileOutputWorker::tick()
{
if (m_running)
{
@@ -175,7 +175,7 @@ void FileSinkWorker::tick()
}
}
-void FileSinkWorker::callbackPart(SampleVector& data, unsigned int iBegin, unsigned int iEnd)
+void FileOutputWorker::callbackPart(SampleVector& data, unsigned int iBegin, unsigned int iEnd)
{
SampleVector::iterator beginRead = data.begin() + iBegin;
unsigned int chunkSize = iEnd - iBegin;
diff --git a/plugins/samplesink/filesink/filesinkworker.h b/plugins/samplesink/fileoutput/fileoutputworker.h
similarity index 89%
rename from plugins/samplesink/filesink/filesinkworker.h
rename to plugins/samplesink/fileoutput/fileoutputworker.h
index c4e1f9f62..db5c5f3b4 100644
--- a/plugins/samplesink/filesink/filesinkworker.h
+++ b/plugins/samplesink/fileoutput/fileoutputworker.h
@@ -15,8 +15,8 @@
// along with this program. If not, see . //
///////////////////////////////////////////////////////////////////////////////////
-#ifndef INCLUDE_FILESINKWORKER_H
-#define INCLUDE_FILESINKWORKER_H
+#ifndef INCLUDE_FILEOUTPUTWORKER_H
+#define INCLUDE_FILEOUTPUTWORKER_H
#include
#include
@@ -29,16 +29,16 @@
#include "dsp/inthalfbandfilter.h"
#include "dsp/interpolators.h"
-#define FILESINK_THROTTLE_MS 50
+#define FILEOUTPUT_THROTTLE_MS 50
class SampleSourceFifo;
-class FileSinkWorker : public QObject {
+class FileOutputWorker : public QObject {
Q_OBJECT
public:
- FileSinkWorker(std::ofstream *samplesStream, SampleSourceFifo* sampleFifo, QObject* parent = 0);
- ~FileSinkWorker();
+ FileOutputWorker(std::ofstream *samplesStream, SampleSourceFifo* sampleFifo, QObject* parent = 0);
+ ~FileOutputWorker();
void startWork();
void stopWork();
@@ -76,4 +76,4 @@ private slots:
void tick();
};
-#endif // INCLUDE_FILESINKWORKER_H
+#endif // INCLUDE_FILEOUTPUTWORKER_H
diff --git a/plugins/samplesink/filesink/readme.md b/plugins/samplesink/fileoutput/readme.md
similarity index 89%
rename from plugins/samplesink/filesink/readme.md
rename to plugins/samplesink/fileoutput/readme.md
index d65fb0b60..992d1ce61 100644
--- a/plugins/samplesink/filesink/readme.md
+++ b/plugins/samplesink/fileoutput/readme.md
@@ -1,8 +1,8 @@
-File sink plugin
+File output plugin
Introduction
-This output sample sink plugin sends its samples to file in the SDRangel .sdriq format.
+This sample sink plugin sends its samples to file in the SDRangel .sdriq format.
The format is S16LE I/Q samples. Thus there are 4 bytes per sample. I and Q values are 16 bit signed integers. The file starts with a context header containing information about center frequency, sample rate and timestamp of the start of the recording. This header has a length which is a multiple of a sample size (normally 24 bytes thus 6 samples). Thus this file can be used as a raw I/Q file with S16LE samples tolerating a glitch at the start corresponding to the 6 "random" samples. For example in GNURadio you can simply specify your file source format as short complex.
@@ -10,7 +10,7 @@ You can also zap the 24 bytes header with this Linux command: `tail -c +25 myfil
To convert in another format you may use the sox utility. For example to convert to 32 bit (float) complex samples do: `sox -r 48k −b 16 −e signed-integer -c 2 myfile.raw -e float -c 2 myfilec.raw`
-Note that you have to specify the sampling rate and use .raw for the file extensions.
+Note that you have to specify the sampling rate and use .raw for the file extensions.
Build
@@ -18,20 +18,20 @@ The plugin is always built.
Interface
-![File sink plugin GUI](../../../doc/img/FileSink_plugin.png)
+![File output plugin GUI](../../../doc/img/FileOutput_plugin.png)
1: Start/Stop
-Device start / stop button.
+Device start / stop button.
- Blue triangle icon: device is ready and can be started
- Red square icon: device is running and can be stopped
- Magenta (or pink) square icon: an error occurred
-
+
2: File stream sample rate
-This is the file stream sample rate in kS/s after interpolation (4) from the baseband stream. Thus this is the sample rate (7) multiplied by the interpolation factor (6).
-
+This is the file stream sample rate in kS/s after interpolation (4) from the baseband stream. Thus this is the sample rate (7) multiplied by the interpolation factor (6).
+
3: Frequency
This is the center frequency in kHz that will be put in the file header.
diff --git a/plugins/samplesink/filesink/CMakeLists.txt b/plugins/samplesink/filesink/CMakeLists.txt
deleted file mode 100644
index e5e0d9aa3..000000000
--- a/plugins/samplesink/filesink/CMakeLists.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-project(filesink)
-
-set(filesink_SOURCES
- filesinkoutput.cpp
- filesinkplugin.cpp
- filesinksettings.cpp
- filesinkworker.cpp
-)
-
-set(filesink_HEADERS
- filesinkoutput.h
- filesinkplugin.h
- filesinksettings.h
- filesinkworker.h
-)
-
-include_directories(
- ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
-)
-
-if(NOT SERVER_MODE)
- set(filesink_SOURCES
- ${filesink_SOURCES}
- filesinkgui.cpp
-
- filesinkgui.ui
- )
- set(filesink_HEADERS
- ${filesink_HEADERS}
- filesinkgui.h
- )
-
- set(TARGET_NAME outputfilesink)
- set(TARGET_LIB "Qt5::Widgets")
- set(TARGET_LIB_GUI "sdrgui")
- set(INSTALL_FOLDER ${INSTALL_PLUGINS_DIR})
-else()
- set(TARGET_NAME outputfilesinksrv)
- set(TARGET_LIB "")
- set(TARGET_LIB_GUI "")
- set(INSTALL_FOLDER ${INSTALL_PLUGINSSRV_DIR})
-endif()
-
-add_library(${TARGET_NAME} SHARED
- ${filesink_SOURCES}
-)
-
-target_link_libraries(${TARGET_NAME}
- Qt5::Core
- ${TARGET_LIB}
- sdrbase
- ${TARGET_LIB_GUI}
- swagger
-)
-
-install(TARGETS ${TARGET_NAME} DESTINATION ${INSTALL_FOLDER})
diff --git a/plugins/samplesource/fileinput/fileinput.cpp b/plugins/samplesource/fileinput/fileinput.cpp
index e0d1819ba..ce77778ff 100644
--- a/plugins/samplesource/fileinput/fileinput.cpp
+++ b/plugins/samplesource/fileinput/fileinput.cpp
@@ -165,7 +165,7 @@ void FileInput::seekFileStream(int seekMillis)
{
quint64 seekPoint = ((m_recordLength * seekMillis) / 1000) * m_sampleRate;
m_fileInputWorker->setSamplesCount(seekPoint);
- seekPoint *= (m_sampleSize == 24 ? 8 : 4); // + sizeof(FileSink::Header)
+ seekPoint *= (m_sampleSize == 24 ? 8 : 4); // + sizeof(FileRecord::Header)
m_ifstream.clear();
m_ifstream.seekg(seekPoint + sizeof(FileRecord::Header), std::ios::beg);
}
diff --git a/sdrbase/dsp/filerecord.cpp b/sdrbase/dsp/filerecord.cpp
index 3d7543512..125ae7cc6 100644
--- a/sdrbase/dsp/filerecord.cpp
+++ b/sdrbase/dsp/filerecord.cpp
@@ -36,7 +36,7 @@ FileRecord::FileRecord() :
m_recordStart(false),
m_byteCount(0)
{
- setObjectName("FileSink");
+ setObjectName("FileRecord");
}
FileRecord::FileRecord(const QString& filename) :
diff --git a/sdrbase/plugin/pluginmanager.cpp b/sdrbase/plugin/pluginmanager.cpp
index 0fc60cb5f..cd67a176e 100644
--- a/sdrbase/plugin/pluginmanager.cpp
+++ b/sdrbase/plugin/pluginmanager.cpp
@@ -42,8 +42,8 @@ const QString PluginManager::m_localOutputHardwareID = "LocalOutput";
const QString PluginManager::m_localOutputDeviceTypeID = "sdrangel.samplesource.localoutput";
const QString PluginManager::m_remoteOutputHardwareID = "RemoteOutput";
const QString PluginManager::m_remoteOutputDeviceTypeID = "sdrangel.samplesink.remoteoutput";
-const QString PluginManager::m_fileSinkHardwareID = "FileSink";
-const QString PluginManager::m_fileSinkDeviceTypeID = "sdrangel.samplesink.filesink";
+const QString PluginManager::m_fileOutputHardwareID = "FileOutput";
+const QString PluginManager::m_fileOutputDeviceTypeID = "sdrangel.samplesink.fileoutput";
PluginManager::PluginManager(QObject* parent) :
QObject(parent),
diff --git a/sdrbase/plugin/pluginmanager.h b/sdrbase/plugin/pluginmanager.h
index df8df23f2..0a04c31dd 100644
--- a/sdrbase/plugin/pluginmanager.h
+++ b/sdrbase/plugin/pluginmanager.h
@@ -91,7 +91,7 @@ public:
const PluginInterface *getDevicePluginInterface(const QString& deviceId) const;
static const QString& getFileInputDeviceId() { return m_fileInputDeviceTypeID; }
- static const QString& getFileSinkDeviceId() { return m_fileSinkDeviceTypeID; }
+ static const QString& getFileSinkDeviceId() { return m_fileOutputDeviceTypeID; }
private:
struct SamplingDevice { //!< This is the device registration
@@ -143,8 +143,8 @@ private:
static const QString m_localOutputDeviceTypeID; //!< Local output plugin ID
static const QString m_remoteOutputHardwareID; //!< Remote output hardware ID
static const QString m_remoteOutputDeviceTypeID; //!< Remote output plugin ID
- static const QString m_fileSinkHardwareID; //!< FileSink sink hardware ID
- static const QString m_fileSinkDeviceTypeID; //!< FileSink sink plugin ID
+ static const QString m_fileOutputHardwareID; //!< FileOutput sink hardware ID
+ static const QString m_fileOutputDeviceTypeID; //!< FileOutput sink plugin ID
void loadPluginsDir(const QDir& dir);
};
diff --git a/swagger/sdrangel/examples/rx_tx_test.py b/swagger/sdrangel/examples/rx_tx_test.py
index f5145a110..c48895249 100644
--- a/swagger/sdrangel/examples/rx_tx_test.py
+++ b/swagger/sdrangel/examples/rx_tx_test.py
@@ -38,7 +38,7 @@ def getInputOptions():
options.device_hwid_rx = "FileInput"
if options.device_hwid_tx == None:
- options.device_hwid_tx = "FileSink"
+ options.device_hwid_tx = "FileOutput"
if options.device_freq == None:
options.device_freq = 435000