diff --git a/plugins/samplesource/airspy/airspyinput.cpp b/plugins/samplesource/airspy/airspyinput.cpp index dde26e172..6a5321718 100644 --- a/plugins/samplesource/airspy/airspyinput.cpp +++ b/plugins/samplesource/airspy/airspyinput.cpp @@ -308,7 +308,7 @@ bool AirspyInput::handleMessage(const Message& message) if (m_settings.m_fileRecordName.size() != 0) { m_fileSink->setFileName(m_settings.m_fileRecordName); } else { - m_fileSink->setFileName(QString("rec%1_%2.sdriq").arg(m_deviceAPI->getDeviceUID()).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddThhmmss"))); + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); } m_fileSink->startRecording(); diff --git a/plugins/samplesource/airspyhf/airspyhfinput.cpp b/plugins/samplesource/airspyhf/airspyhfinput.cpp index d9cc7f767..b076ed10c 100644 --- a/plugins/samplesource/airspyhf/airspyhfinput.cpp +++ b/plugins/samplesource/airspyhf/airspyhfinput.cpp @@ -325,7 +325,7 @@ bool AirspyHFInput::handleMessage(const Message& message) if (m_settings.m_fileRecordName.size() != 0) { m_fileSink->setFileName(m_settings.m_fileRecordName); } else { - m_fileSink->setFileName(QString("rec%1_%2.sdriq").arg(m_deviceAPI->getDeviceUID()).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddThhmmss"))); + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); } m_fileSink->startRecording(); diff --git a/plugins/samplesource/bladerfinput/bladerfinput.cpp b/plugins/samplesource/bladerfinput/bladerfinput.cpp index ba44e51d3..6bcd2d163 100644 --- a/plugins/samplesource/bladerfinput/bladerfinput.cpp +++ b/plugins/samplesource/bladerfinput/bladerfinput.cpp @@ -280,7 +280,7 @@ bool BladerfInput::handleMessage(const Message& message) if (m_settings.m_fileRecordName.size() != 0) { m_fileSink->setFileName(m_settings.m_fileRecordName); } else { - m_fileSink->setFileName(QString("rec%1_%2.sdriq").arg(m_deviceAPI->getDeviceUID()).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddThhmmss"))); + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); } m_fileSink->startRecording(); diff --git a/plugins/samplesource/fcdpro/fcdproinput.cpp b/plugins/samplesource/fcdpro/fcdproinput.cpp index 945ae0adc..d84fd40bd 100644 --- a/plugins/samplesource/fcdpro/fcdproinput.cpp +++ b/plugins/samplesource/fcdpro/fcdproinput.cpp @@ -250,7 +250,7 @@ bool FCDProInput::handleMessage(const Message& message) if (m_settings.m_fileRecordName.size() != 0) { m_fileSink->setFileName(m_settings.m_fileRecordName); } else { - m_fileSink->setFileName(QString("rec%1_%2.sdriq").arg(m_deviceAPI->getDeviceUID()).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddThhmmss"))); + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); } m_fileSink->startRecording(); diff --git a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp index 233eda8b9..0f61e9a6e 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp @@ -244,7 +244,7 @@ bool FCDProPlusInput::handleMessage(const Message& message) if (m_settings.m_fileRecordName.size() != 0) { m_fileSink->setFileName(m_settings.m_fileRecordName); } else { - m_fileSink->setFileName(QString("rec%1_%2.sdriq").arg(m_deviceAPI->getDeviceUID()).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddThhmmss"))); + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); } m_fileSink->startRecording(); diff --git a/plugins/samplesource/hackrfinput/hackrfinput.cpp b/plugins/samplesource/hackrfinput/hackrfinput.cpp index 06f5ac9c5..b287f9b16 100644 --- a/plugins/samplesource/hackrfinput/hackrfinput.cpp +++ b/plugins/samplesource/hackrfinput/hackrfinput.cpp @@ -263,7 +263,7 @@ bool HackRFInput::handleMessage(const Message& message) if (m_settings.m_fileRecordName.size() != 0) { m_fileSink->setFileName(m_settings.m_fileRecordName); } else { - m_fileSink->setFileName(QString("rec%1_%2.sdriq").arg(m_deviceAPI->getDeviceUID()).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddThhmmss"))); + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); } m_fileSink->startRecording(); diff --git a/plugins/samplesource/limesdrinput/limesdrinput.cpp b/plugins/samplesource/limesdrinput/limesdrinput.cpp index 6d4adacbc..ff7877da1 100644 --- a/plugins/samplesource/limesdrinput/limesdrinput.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinput.cpp @@ -692,7 +692,7 @@ bool LimeSDRInput::handleMessage(const Message& message) if (m_settings.m_fileRecordName.size() != 0) { m_fileSink->setFileName(m_settings.m_fileRecordName); } else { - m_fileSink->setFileName(QString("rec%1_%2.sdriq").arg(m_deviceAPI->getDeviceUID()).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddThhmmss"))); + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); } m_fileSink->startRecording(); diff --git a/plugins/samplesource/perseus/perseusinput.cpp b/plugins/samplesource/perseus/perseusinput.cpp index 847c16d62..beca7d33f 100644 --- a/plugins/samplesource/perseus/perseusinput.cpp +++ b/plugins/samplesource/perseus/perseusinput.cpp @@ -197,7 +197,7 @@ bool PerseusInput::handleMessage(const Message& message) if (m_settings.m_fileRecordName.size() != 0) { m_fileSink->setFileName(m_settings.m_fileRecordName); } else { - m_fileSink->setFileName(QString("rec%1_%2.sdriq").arg(m_deviceAPI->getDeviceUID()).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddThhmmss"))); + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); } m_fileSink->startRecording(); diff --git a/plugins/samplesource/plutosdrinput/plutosdrinput.cpp b/plugins/samplesource/plutosdrinput/plutosdrinput.cpp index b913cd7c8..bd9d1afae 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinput.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinput.cpp @@ -195,7 +195,7 @@ bool PlutoSDRInput::handleMessage(const Message& message) if (m_settings.m_fileRecordName.size() != 0) { m_fileSink->setFileName(m_settings.m_fileRecordName); } else { - m_fileSink->setFileName(QString("rec%1_%2.sdriq").arg(m_deviceAPI->getDeviceUID()).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddThhmmss"))); + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); } m_fileSink->startRecording(); diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp index 23d20f1c5..d0d722a16 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp @@ -309,7 +309,7 @@ bool RTLSDRInput::handleMessage(const Message& message) if (m_settings.m_fileRecordName.size() != 0) { m_fileSink->setFileName(m_settings.m_fileRecordName); } else { - m_fileSink->setFileName(QString("rec%1_%2.sdriq").arg(m_deviceAPI->getDeviceUID()).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddThhmmss"))); + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); } m_fileSink->startRecording(); diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp index 23677f9eb..62fc4cadd 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp @@ -190,7 +190,7 @@ bool SDRdaemonSourceInput::handleMessage(const Message& message) if (m_settings.m_fileRecordName.size() != 0) { m_fileSink->setFileName(m_settings.m_fileRecordName); } else { - m_fileSink->setFileName(QString("rec%1_%2.sdriq").arg(m_deviceAPI->getDeviceUID()).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddThhmmss"))); + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); } m_fileSink->startRecording(); diff --git a/plugins/samplesource/sdrplay/sdrplayinput.cpp b/plugins/samplesource/sdrplay/sdrplayinput.cpp index e25e1fc84..a87b35e36 100644 --- a/plugins/samplesource/sdrplay/sdrplayinput.cpp +++ b/plugins/samplesource/sdrplay/sdrplayinput.cpp @@ -304,7 +304,7 @@ bool SDRPlayInput::handleMessage(const Message& message) if (m_settings.m_fileRecordName.size() != 0) { m_fileSink->setFileName(m_settings.m_fileRecordName); } else { - m_fileSink->setFileName(QString("rec%1_%2.sdriq").arg(m_deviceAPI->getDeviceUID()).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddThhmmss"))); + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); } m_fileSink->startRecording(); diff --git a/plugins/samplesource/testsource/testsourceinput.cpp b/plugins/samplesource/testsource/testsourceinput.cpp index 48cef3c70..382d966c9 100644 --- a/plugins/samplesource/testsource/testsourceinput.cpp +++ b/plugins/samplesource/testsource/testsourceinput.cpp @@ -182,7 +182,7 @@ bool TestSourceInput::handleMessage(const Message& message) if (m_settings.m_fileRecordName.size() != 0) { m_fileSink->setFileName(m_settings.m_fileRecordName); } else { - m_fileSink->setFileName(QString("rec%1_%2.sdriq").arg(m_deviceAPI->getDeviceUID()).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddThhmmss"))); + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); } m_fileSink->startRecording(); diff --git a/sdrbase/dsp/filerecord.cpp b/sdrbase/dsp/filerecord.cpp index 39e947a03..56f1e07cc 100644 --- a/sdrbase/dsp/filerecord.cpp +++ b/sdrbase/dsp/filerecord.cpp @@ -4,6 +4,7 @@ #include "util/message.h" #include +#include FileRecord::FileRecord() : BasebandSampleSink(), @@ -42,6 +43,11 @@ void FileRecord::setFileName(const QString& filename) } } +void FileRecord::genUniqueFileName(uint deviceUID) +{ + setFileName(QString("rec%1_%2.sdriq").arg(deviceUID).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddTHH_mm_ss_zzz"))); +} + void FileRecord::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly __attribute__((unused))) { // if no recording is active, send the samples to /dev/null diff --git a/sdrbase/dsp/filerecord.h b/sdrbase/dsp/filerecord.h index 00840c469..08970e004 100644 --- a/sdrbase/dsp/filerecord.h +++ b/sdrbase/dsp/filerecord.h @@ -29,6 +29,7 @@ public: quint64 getByteCount() const { return m_byteCount; } void setFileName(const QString& filename); + void genUniqueFileName(uint deviceUID); virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly); virtual void start();