From ce7c65ae38067168ff4802ad799081ff080b407f Mon Sep 17 00:00:00 2001 From: f4exb Date: Fri, 24 Mar 2017 01:01:53 +0100 Subject: [PATCH] ATV Demod: use sample period for line duration adjustment step --- plugins/channelrx/demodatv/atvdemod.cpp | 12 ++++++------ plugins/channelrx/demodatv/atvdemodgui.cpp | 8 +++++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/plugins/channelrx/demodatv/atvdemod.cpp b/plugins/channelrx/demodatv/atvdemod.cpp index 6f9858d1b..ed19106ff 100644 --- a/plugins/channelrx/demodatv/atvdemod.cpp +++ b/plugins/channelrx/demodatv/atvdemod.cpp @@ -737,12 +737,12 @@ void ATVDemod::applySettings() 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); -// qDebug() << "ATVDemod::applySettings:" -// << " m_fltLineDuration: " << m_objConfig.m_fltLineDuration -// << " m_fltFramePerS: " << m_objConfig.m_fltFramePerS -// << " m_intNumberOfLines: " << m_intNumberOfLines -// << " m_intNumberSamplePerLine: " << m_intNumberSamplePerLine -// << " m_intNumberOfRowsToDisplay: " << m_intNumberOfRowsToDisplay; + qDebug() << "ATVDemod::applySettings:" + << " m_fltLineDuration: " << m_objConfig.m_fltLineDuration + << " m_fltFramePerS: " << m_objConfig.m_fltFramePerS + << " m_intNumberOfLines: " << m_intNumberOfLines + << " m_intNumberSamplePerLine: " << m_intNumberSamplePerLine + << " m_intNumberOfRowsToDisplay: " << m_intNumberOfRowsToDisplay; m_intNumberSamplePerTop = (int) ((m_objConfig.m_fltTopDurationUs * m_objConfig.m_intSampleRate) / m_fltSecondToUs); m_objRegisteredATVScreen->resizeATVScreen(m_intNumberSamplePerLine, m_intNumberOfLines); diff --git a/plugins/channelrx/demodatv/atvdemodgui.cpp b/plugins/channelrx/demodatv/atvdemodgui.cpp index f36a7a95a..a7d6cf9f8 100644 --- a/plugins/channelrx/demodatv/atvdemodgui.cpp +++ b/plugins/channelrx/demodatv/atvdemodgui.cpp @@ -205,6 +205,7 @@ bool ATVDemodGUI::handleMessage(const Message& objMessage) int sampleRate = ((ATVDemod::MsgReportEffectiveSampleRate&)objMessage).getSampleRate(); ui->channelSampleRateText->setText(tr("%1k").arg(sampleRate/1000.0f, 0, 'f', 0)); setRFFiltersSlidersRange(sampleRate); + lineTimeUpdate(); return true; } @@ -618,7 +619,12 @@ void ATVDemodGUI::lineTimeUpdate() { float nominalLineTime = getNominalLineTime(ui->nbLines->currentIndex(), ui->fps->currentIndex()); int lineTimeScaleFactor = (int) std::log10(nominalLineTime); - m_fltLineTimeMultiplier = std::pow(10.0, lineTimeScaleFactor-3); + + if (m_objATVDemod->getEffectiveSampleRate() == 0) { + m_fltLineTimeMultiplier = std::pow(10.0, lineTimeScaleFactor-3); + } else { + m_fltLineTimeMultiplier = 1.0f / m_objATVDemod->getEffectiveSampleRate(); + } float lineTime = nominalLineTime + m_fltLineTimeMultiplier * ui->lineTime->value();