From 7ac1f9e8f184676d6c6fe4a3d61fe856fd5cb9d0 Mon Sep 17 00:00:00 2001 From: f4exb Date: Thu, 17 Aug 2017 00:38:08 +0200 Subject: [PATCH] UDPSink plugin: typedef for UDP block buffer --- plugins/channeltx/udpsink/udpsinkgui.cpp | 1 + plugins/channeltx/udpsink/udpsinkudphandler.cpp | 14 +++++++------- plugins/channeltx/udpsink/udpsinkudphandler.h | 12 +++++++----- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/plugins/channeltx/udpsink/udpsinkgui.cpp b/plugins/channeltx/udpsink/udpsinkgui.cpp index 24c080798..77e78dea5 100644 --- a/plugins/channeltx/udpsink/udpsinkgui.cpp +++ b/plugins/channeltx/udpsink/udpsinkgui.cpp @@ -166,6 +166,7 @@ bool UDPSinkGUI::deserialize(const QByteArray& data) ui->udpAddress->setText(strtmp); d.readS32(10, &s32tmp, 10); ui->volume->setValue(s32tmp); + ui->volumeText->setText(tr("%1").arg(s32tmp/10.0, 0, 'f', 1)); d.readS32(11, &s32tmp, 2500); ui->fmDeviation->setText(QString("%1").arg(s32tmp)); diff --git a/plugins/channeltx/udpsink/udpsinkudphandler.cpp b/plugins/channeltx/udpsink/udpsinkudphandler.cpp index 7091826ef..5f9033eb2 100644 --- a/plugins/channeltx/udpsink/udpsinkudphandler.cpp +++ b/plugins/channeltx/udpsink/udpsinkudphandler.cpp @@ -28,9 +28,9 @@ UDPSinkUDPHandler::UDPSinkUDPHandler() : m_dataConnected(false), m_udpReadBytes(0), m_writeIndex(0), - m_readFrameIndex(m_nbUDPFrames/2), + m_readFrameIndex(m_minNbUDPFrames/2), m_readIndex(0), - m_rwDelta(m_nbUDPFrames/2), + m_rwDelta(m_minNbUDPFrames/2), m_d(0), m_feedbackMessageQueue(0) { @@ -102,7 +102,7 @@ void UDPSinkUDPHandler::moveData() { memcpy(m_udpBuf[m_writeIndex], m_udpTmpBuf, m_udpBlockSize); - if (m_writeIndex < m_nbUDPFrames - 1) { + if (m_writeIndex < m_minNbUDPFrames - 1) { m_writeIndex++; } else { m_writeIndex = 0; @@ -131,14 +131,14 @@ void UDPSinkUDPHandler::advanceReadPointer(int nbBytes) { m_readIndex = 0; - if (m_readFrameIndex < m_nbUDPFrames - 1) + if (m_readFrameIndex < m_minNbUDPFrames - 1) { m_readFrameIndex++; } else { m_rwDelta = m_writeIndex; // raw R/W delta estimate - float d = (m_rwDelta - (m_nbUDPFrames/2))/(float) m_nbUDPFrames; + float d = (m_rwDelta - (m_minNbUDPFrames/2))/(float) m_minNbUDPFrames; //qDebug("UDPSinkUDPHandler::advanceReadPointer: w: %02d d: %f", m_writeIndex, d); if ((d < -0.45) || (d > 0.45)) @@ -182,8 +182,8 @@ void UDPSinkUDPHandler::configureUDPLink(const QString& address, quint16 port) void UDPSinkUDPHandler::resetReadIndex() { - m_readFrameIndex = (m_writeIndex + (m_nbUDPFrames/2)) % m_nbUDPFrames; - m_rwDelta = m_nbUDPFrames/2; + m_readFrameIndex = (m_writeIndex + (m_minNbUDPFrames/2)) % m_minNbUDPFrames; + m_rwDelta = m_minNbUDPFrames/2; m_readIndex = 0; m_d = 0.0f; } diff --git a/plugins/channeltx/udpsink/udpsinkudphandler.h b/plugins/channeltx/udpsink/udpsinkudphandler.h index a95be48bf..f573e8c8f 100644 --- a/plugins/channeltx/udpsink/udpsinkudphandler.h +++ b/plugins/channeltx/udpsink/udpsinkudphandler.h @@ -49,17 +49,19 @@ public: */ inline int32_t getBufferGauge() const { - int32_t val = m_rwDelta - (m_nbUDPFrames/2); - return (100*val) / m_nbUDPFrames; + int32_t val = m_rwDelta - (m_minNbUDPFrames/2); + return (100*val) / m_minNbUDPFrames; } static const int m_udpBlockSize = 512; // UDP block size in number of bytes - static const int m_nbUDPFrames = 256; // number of frames of block size in the UDP buffer + static const int m_minNbUDPFrames = 256; // number of frames of block size in the UDP buffer public slots: void dataReadyRead(); private: + typedef char (udpBlk_t)[m_udpBlockSize]; + void moveData(); void advanceReadPointer(int nbBytes); @@ -68,9 +70,9 @@ private: QHostAddress m_remoteAddress; quint16 m_dataPort; bool m_dataConnected; - char m_udpTmpBuf[m_udpBlockSize]; + udpBlk_t m_udpTmpBuf; qint64 m_udpReadBytes; - char m_udpBuf[m_nbUDPFrames][m_udpBlockSize]; + udpBlk_t m_udpBuf[m_minNbUDPFrames]; int m_writeIndex; int m_readFrameIndex; int m_readIndex;