diff --git a/plugins/samplesource/sdrdaemon/sdrdaemonbuffer.h b/plugins/samplesource/sdrdaemon/sdrdaemonbuffer.h index 425ccef0e..b47c8553a 100644 --- a/plugins/samplesource/sdrdaemon/sdrdaemonbuffer.h +++ b/plugins/samplesource/sdrdaemon/sdrdaemonbuffer.h @@ -74,6 +74,7 @@ public: bool isSyncLocked() const { return m_syncLock; } uint32_t getFrameSize() const { return m_frameSize; } bool isLz4Compressed() const { return m_lz4; } + float getCompressionRatio() const { return (m_frameSize ? (float) m_lz4InSize / (float) m_frameSize : 1.0); } static const int m_udpPayloadSize; static const int m_sampleSize; diff --git a/plugins/samplesource/sdrdaemon/sdrdaemongui.cpp b/plugins/samplesource/sdrdaemon/sdrdaemongui.cpp index 71dfb1ad9..08bd72604 100644 --- a/plugins/samplesource/sdrdaemon/sdrdaemongui.cpp +++ b/plugins/samplesource/sdrdaemon/sdrdaemongui.cpp @@ -202,6 +202,7 @@ bool SDRdaemonGui::handleMessage(const Message& message) m_syncLocked = ((SDRdaemonInput::MsgReportSDRdaemonStreamTiming&)message).getSyncLock(); m_frameSize = ((SDRdaemonInput::MsgReportSDRdaemonStreamTiming&)message).getFrameSize(); m_lz4 = ((SDRdaemonInput::MsgReportSDRdaemonStreamTiming&)message).getLz4Compression(); + m_compressionRatio = ((SDRdaemonInput::MsgReportSDRdaemonStreamTiming&)message).getLz4Compression(); updateWithStreamTime(); return true; } @@ -319,6 +320,9 @@ void SDRdaemonGui::updateWithStreamTime() } else { ui->lz4Compressed->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); } + + s = QString::number(m_compressionRatio, 'f', 2); + ui->compressionRatioText->setText(tr("%1").arg(s)); } void SDRdaemonGui::tick() diff --git a/plugins/samplesource/sdrdaemon/sdrdaemongui.h b/plugins/samplesource/sdrdaemon/sdrdaemongui.h index 3674b861a..0035c8ff8 100644 --- a/plugins/samplesource/sdrdaemon/sdrdaemongui.h +++ b/plugins/samplesource/sdrdaemon/sdrdaemongui.h @@ -62,6 +62,7 @@ private: bool m_syncLocked; uint32_t m_frameSize; bool m_lz4; + float m_compressionRatio; int m_samplesCount; std::size_t m_tickCount; diff --git a/plugins/samplesource/sdrdaemon/sdrdaemongui.ui b/plugins/samplesource/sdrdaemon/sdrdaemongui.ui index 81e0be2ca..959be62cf 100644 --- a/plugins/samplesource/sdrdaemon/sdrdaemongui.ui +++ b/plugins/samplesource/sdrdaemon/sdrdaemongui.ui @@ -4,7 +4,7 @@ - 360 + 340 0 @@ -472,7 +472,7 @@ - 50 + 80 16777215 diff --git a/plugins/samplesource/sdrdaemon/sdrdaemoninput.h b/plugins/samplesource/sdrdaemon/sdrdaemoninput.h index 28ad15337..ff927ca26 100644 --- a/plugins/samplesource/sdrdaemon/sdrdaemoninput.h +++ b/plugins/samplesource/sdrdaemon/sdrdaemoninput.h @@ -176,13 +176,15 @@ public: uint32_t tv_usec, bool syncLock, uint32_t frameSize, - bool lz4) + bool lz4, + float compressionRatio) { return new MsgReportSDRdaemonStreamTiming(tv_sec, tv_usec, syncLock, frameSize, - lz4); + lz4, + compressionRatio); } protected: @@ -191,18 +193,21 @@ public: bool m_syncLock; uint32_t m_frameSize; bool m_lz4; + float m_compressionRatio; MsgReportSDRdaemonStreamTiming(uint32_t tv_sec, uint32_t tv_usec, bool syncLock, uint32_t frameSize, - bool lz4) : + bool lz4, + float compressionRatio) : Message(), m_tv_sec(tv_sec), m_tv_usec(tv_usec), m_syncLock(syncLock), m_frameSize(frameSize), - m_lz4(lz4) + m_lz4(lz4), + m_compressionRatio(compressionRatio) { } }; diff --git a/plugins/samplesource/sdrdaemon/sdrdaemonudphandler.cpp b/plugins/samplesource/sdrdaemon/sdrdaemonudphandler.cpp index d72380057..4e2b25e74 100644 --- a/plugins/samplesource/sdrdaemon/sdrdaemonudphandler.cpp +++ b/plugins/samplesource/sdrdaemon/sdrdaemonudphandler.cpp @@ -211,7 +211,8 @@ void SDRdaemonUDPHandler::tick() m_tv_usec, m_sdrDaemonBuffer.isSyncLocked(), m_sdrDaemonBuffer.getFrameSize(), - m_sdrDaemonBuffer.isLz4Compressed()); + m_sdrDaemonBuffer.isLz4Compressed(), + m_sdrDaemonBuffer.getCompressionRatio()); m_outputMessageQueueToGUI->push(report); } }