diff --git a/plugins/samplesource/filesource/filesourcegui.cpp b/plugins/samplesource/filesource/filesourcegui.cpp index 1de88aa7f..d679ae889 100644 --- a/plugins/samplesource/filesource/filesourcegui.cpp +++ b/plugins/samplesource/filesource/filesourcegui.cpp @@ -175,6 +175,7 @@ bool FileSourceGui::handleMessage(const Message& message) else if (FileSourceInput::MsgReportFileSourceStreamData::match(message)) { m_sampleRate = ((FileSourceInput::MsgReportFileSourceStreamData&)message).getSampleRate(); + m_sampleSize = ((FileSourceInput::MsgReportFileSourceStreamData&)message).getSampleSize(); m_centerFrequency = ((FileSourceInput::MsgReportFileSourceStreamData&)message).getCenterFrequency(); m_startingTimeStamp = ((FileSourceInput::MsgReportFileSourceStreamData&)message).getStartingTimeStamp(); m_recordLength = ((FileSourceInput::MsgReportFileSourceStreamData&)message).getRecordLength(); @@ -312,6 +313,7 @@ void FileSourceGui::updateWithStreamData() { ui->centerFrequency->setValue(m_centerFrequency/1000); ui->sampleRateText->setText(tr("%1k").arg((float)m_sampleRate / 1000)); + ui->sampleSizeText->setText(tr("%1b").arg(m_sampleSize)); ui->play->setEnabled(m_acquisition); QTime recordLength(0, 0, 0, 0); recordLength = recordLength.addSecs(m_recordLength); diff --git a/plugins/samplesource/filesource/filesourcegui.h b/plugins/samplesource/filesource/filesourcegui.h index e5a040346..a580d528f 100644 --- a/plugins/samplesource/filesource/filesourcegui.h +++ b/plugins/samplesource/filesource/filesourcegui.h @@ -63,6 +63,7 @@ private: bool m_acquisition; QString m_fileName; int m_sampleRate; + quint32 m_sampleSize; quint64 m_centerFrequency; quint32 m_recordLength; std::time_t m_startingTimeStamp; diff --git a/plugins/samplesource/filesource/filesourcegui.ui b/plugins/samplesource/filesource/filesourcegui.ui index f33b1e2a7..20ec4bc82 100644 --- a/plugins/samplesource/filesource/filesourcegui.ui +++ b/plugins/samplesource/filesource/filesourcegui.ui @@ -6,7 +6,7 @@ 0 0 - 246 + 300 190 @@ -231,16 +231,56 @@ + + + 40 + 0 + + 8 - Record sample rate + Record sample rate (kS/s) - 0k + 00000k + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Vertical + + + + + + + + 22 + 0 + + + + + 8 + + + + Record sample size (bits) + + + 00b + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter diff --git a/plugins/samplesource/filesource/filesourceinput.cpp b/plugins/samplesource/filesource/filesourceinput.cpp index c48f966f4..354a0ad65 100644 --- a/plugins/samplesource/filesource/filesourceinput.cpp +++ b/plugins/samplesource/filesource/filesourceinput.cpp @@ -99,6 +99,7 @@ void FileSourceInput::openFileStream() << " length: " << m_recordLength << " seconds"; MsgReportFileSourceStreamData *report = MsgReportFileSourceStreamData::create(m_sampleRate, + m_sampleSize, m_centerFrequency, m_startingTimeStamp, m_recordLength); // file stream data diff --git a/plugins/samplesource/filesource/filesourceinput.h b/plugins/samplesource/filesource/filesourceinput.h index c56d59bba..92df61eab 100644 --- a/plugins/samplesource/filesource/filesourceinput.h +++ b/plugins/samplesource/filesource/filesourceinput.h @@ -173,30 +173,35 @@ public: public: int getSampleRate() const { return m_sampleRate; } + quint32 getSampleSize() const { return m_sampleSize; } quint64 getCenterFrequency() const { return m_centerFrequency; } std::time_t getStartingTimeStamp() const { return m_startingTimeStamp; } quint32 getRecordLength() const { return m_recordLength; } static MsgReportFileSourceStreamData* create(int sampleRate, + quint32 sampleSize, quint64 centerFrequency, std::time_t startingTimeStamp, quint32 recordLength) { - return new MsgReportFileSourceStreamData(sampleRate, centerFrequency, startingTimeStamp, recordLength); + return new MsgReportFileSourceStreamData(sampleRate, sampleSize, centerFrequency, startingTimeStamp, recordLength); } protected: int m_sampleRate; + quint32 m_sampleSize; quint64 m_centerFrequency; std::time_t m_startingTimeStamp; quint32 m_recordLength; MsgReportFileSourceStreamData(int sampleRate, + quint32 sampleSize, quint64 centerFrequency, std::time_t startingTimeStamp, quint32 recordLength) : Message(), m_sampleRate(sampleRate), + m_sampleSize(sampleSize), m_centerFrequency(centerFrequency), m_startingTimeStamp(startingTimeStamp), m_recordLength(recordLength) diff --git a/sdrbase/dsp/filerecord.cpp b/sdrbase/dsp/filerecord.cpp index e2e5606e3..469743b91 100644 --- a/sdrbase/dsp/filerecord.cpp +++ b/sdrbase/dsp/filerecord.cpp @@ -136,7 +136,8 @@ void FileRecord::readHeader(std::ifstream& sampleFile, Header& header) sampleFile.read((char *) &(header.centerFrequency), sizeof(quint64)); sampleFile.read((char *) &(header.startTimeStamp), sizeof(std::time_t)); sampleFile.read((char *) &(header.sampleSize), sizeof(quint32)); - if ((header.sampleSize != 16) || (header.sampleSize != 24)) { // assume 16 bits if garbage (old I/Q file) + if ((header.sampleSize != 16) && (header.sampleSize != 24)) { // assume 16 bits if garbage (old I/Q file) header.sampleSize = 16; } + qDebug("FileRecord::readHeader: sampleSize: %u", header.sampleSize); }