From b2e78e1411a27992d4c815068c43e80898cf16ae Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 9 May 2015 19:03:17 +0200 Subject: [PATCH] Properly fixed frequency shift when there is no decimation --- plugins/samplesource/rtlsdr/rtlsdrinput.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp index aeb7a948c..ca7e6c6d8 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp @@ -201,14 +201,7 @@ int RTLSDRInput::getSampleRate() const quint64 RTLSDRInput::getCenterFrequency() const { - if (m_settings.m_log2Decim == 0) // Little wooby-doop if no decimation - { - return m_generalSettings.m_centerFrequency + (m_settings.m_samplerate / 4); - } - else - { - return m_generalSettings.m_centerFrequency; - } + return m_generalSettings.m_centerFrequency; } bool RTLSDRInput::handleMessage(Message* message) @@ -267,8 +260,15 @@ bool RTLSDRInput::applySettings(const GeneralSettings& generalSettings, const Se m_generalSettings.m_centerFrequency = generalSettings.m_centerFrequency; if(m_dev != NULL) { - if(rtlsdr_set_center_freq( m_dev, m_generalSettings.m_centerFrequency - + (m_settings.m_samplerate / 4) ) != 0) + qint64 centerFrequency = m_generalSettings.m_centerFrequency + (m_settings.m_samplerate / 4); + + if (m_settings.m_log2Decim == 0) { // Little wooby-doop if no decimation + centerFrequency = m_generalSettings.m_centerFrequency; + } else { + centerFrequency = m_generalSettings.m_centerFrequency + (m_settings.m_samplerate / 4); + } + + if(rtlsdr_set_center_freq( m_dev, centerFrequency ) != 0) qDebug("osmosdr_set_center_freq(%lld) failed", m_generalSettings.m_centerFrequency); }