From 4ef2386945d432359b0888e8d5d15b936f840448 Mon Sep 17 00:00:00 2001 From: f4exb Date: Fri, 24 Mar 2017 02:42:36 +0100 Subject: [PATCH] ATV Demod: show number of points per line --- plugins/channelrx/demodatv/atvdemod.cpp | 11 ++++++++--- plugins/channelrx/demodatv/atvdemod.h | 11 +++++++---- plugins/channelrx/demodatv/atvdemodgui.cpp | 2 ++ plugins/channelrx/demodatv/atvdemodgui.ui | 19 +++++++++++++++++++ 4 files changed, 36 insertions(+), 7 deletions(-) diff --git a/plugins/channelrx/demodatv/atvdemod.cpp b/plugins/channelrx/demodatv/atvdemod.cpp index ed19106ff..2ef760f03 100644 --- a/plugins/channelrx/demodatv/atvdemod.cpp +++ b/plugins/channelrx/demodatv/atvdemod.cpp @@ -705,7 +705,7 @@ void ATVDemod::applySettings() { m_objSettingsMutex.lock(); - m_objConfigPrivate.m_intTVSampleRate = (m_objConfig.m_intSampleRate / 1000000) * 1000000; // make sure working sample rate is a multiple of rate units + m_objConfigPrivate.m_intTVSampleRate = (m_objConfig.m_intSampleRate / 500000) * 500000; // make sure working sample rate is a multiple of rate units if (m_objConfigPrivate.m_intTVSampleRate > 0) { @@ -733,7 +733,7 @@ void ATVDemod::applySettings() { m_objSettingsMutex.lock(); - m_intNumberOfLines = (int) round(1.0f / (m_objConfig.m_fltLineDuration * m_objConfig.m_fltFramePerS)); + m_intNumberOfLines = (int) (1.0f / (m_objConfig.m_fltLineDuration * m_objConfig.m_fltFramePerS)); m_intNumberSamplePerLine = (int) (m_objConfig.m_fltLineDuration * m_objConfig.m_intSampleRate); m_intNumberOfRowsToDisplay = (int) (m_objConfig.m_fltRatioOfRowsToDisplay * m_objConfig.m_fltLineDuration * m_objConfig.m_intSampleRate); @@ -754,6 +754,11 @@ void ATVDemod::applySettings() m_intRowsLimit=0; m_objSettingsMutex.unlock(); + + int sampleRate = m_objRFConfig.m_blndecimatorEnable ? m_objConfigPrivate.m_intTVSampleRate : m_objConfig.m_intSampleRate; + MsgReportEffectiveSampleRate *report; + report = MsgReportEffectiveSampleRate::create(sampleRate, m_intNumberSamplePerLine); + getOutputMessageQueue()->push(report); } if ((m_objConfigPrivate.m_intTVSampleRate != m_objRunningPrivate.m_intTVSampleRate) @@ -762,7 +767,7 @@ void ATVDemod::applySettings() { int sampleRate = m_objRFConfig.m_blndecimatorEnable ? m_objConfigPrivate.m_intTVSampleRate : m_objConfig.m_intSampleRate; MsgReportEffectiveSampleRate *report; - report = MsgReportEffectiveSampleRate::create(sampleRate); + report = MsgReportEffectiveSampleRate::create(sampleRate, m_intNumberSamplePerLine); getOutputMessageQueue()->push(report); } diff --git a/plugins/channelrx/demodatv/atvdemod.h b/plugins/channelrx/demodatv/atvdemod.h index d25d68681..dcb04ccaf 100644 --- a/plugins/channelrx/demodatv/atvdemod.h +++ b/plugins/channelrx/demodatv/atvdemod.h @@ -112,18 +112,21 @@ public: public: int getSampleRate() const { return m_sampleRate; } + int getNbPointsPerLine() const { return m_nbPointsPerLine; } - static MsgReportEffectiveSampleRate* create(int sampleRate) + static MsgReportEffectiveSampleRate* create(int sampleRate, int nbPointsPerLine) { - return new MsgReportEffectiveSampleRate(sampleRate); + return new MsgReportEffectiveSampleRate(sampleRate, nbPointsPerLine); } protected: int m_sampleRate; + int m_nbPointsPerLine; - MsgReportEffectiveSampleRate(int sampleRate) : + MsgReportEffectiveSampleRate(int sampleRate, int nbPointsPerLine) : Message(), - m_sampleRate(sampleRate) + m_sampleRate(sampleRate), + m_nbPointsPerLine(nbPointsPerLine) { } }; diff --git a/plugins/channelrx/demodatv/atvdemodgui.cpp b/plugins/channelrx/demodatv/atvdemodgui.cpp index a7d6cf9f8..86a6187d9 100644 --- a/plugins/channelrx/demodatv/atvdemodgui.cpp +++ b/plugins/channelrx/demodatv/atvdemodgui.cpp @@ -203,7 +203,9 @@ bool ATVDemodGUI::handleMessage(const Message& objMessage) if (ATVDemod::MsgReportEffectiveSampleRate::match(objMessage)) { int sampleRate = ((ATVDemod::MsgReportEffectiveSampleRate&)objMessage).getSampleRate(); + int nbPointsPerLine = ((ATVDemod::MsgReportEffectiveSampleRate&)objMessage).getNbPointsPerLine(); ui->channelSampleRateText->setText(tr("%1k").arg(sampleRate/1000.0f, 0, 'f', 0)); + ui->nbPointsPerLineText->setText(tr("%1p").arg(nbPointsPerLine)); setRFFiltersSlidersRange(sampleRate); lineTimeUpdate(); diff --git a/plugins/channelrx/demodatv/atvdemodgui.ui b/plugins/channelrx/demodatv/atvdemodgui.ui index c215d7793..9c74d8f89 100644 --- a/plugins/channelrx/demodatv/atvdemodgui.ui +++ b/plugins/channelrx/demodatv/atvdemodgui.ui @@ -150,6 +150,25 @@ + + + + + 40 + 0 + + + + Number of points (samples) per line + + + 000p + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + +