From e1bef01b966348a238d0e87c0a91cf1d88865820 Mon Sep 17 00:00:00 2001 From: f4exb Date: Mon, 30 Jul 2018 01:38:48 +0200 Subject: [PATCH] RTL-SDR: fixed low sample rate setting --- plugins/samplesource/rtlsdr/rtlsdrgui.cpp | 5 ++++- plugins/samplesource/rtlsdr/rtlsdrinput.cpp | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins/samplesource/rtlsdr/rtlsdrgui.cpp b/plugins/samplesource/rtlsdr/rtlsdrgui.cpp index 2c7e63f66..381a2b053 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrgui.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrgui.cpp @@ -260,6 +260,7 @@ void RTLSDRGui::displaySettings() ui->fcPos->setCurrentIndex((int) m_settings.m_fcPos); ui->checkBox->setChecked(m_settings.m_noModMode); ui->agc->setChecked(m_settings.m_agc); + ui->lowSampleRate->setChecked(m_settings.m_lowSampleRate); } void RTLSDRGui::sendSettings() @@ -448,7 +449,9 @@ void RTLSDRGui::on_rfBW_changed(quint64 value) void RTLSDRGui::on_lowSampleRate_toggled(bool checked) { - if (checked) { + m_settings.m_lowSampleRate = checked; + + if (m_settings.m_lowSampleRate) { ui->sampleRate->setValueRange(7, RTLSDRInput::sampleRateLowRangeMin, RTLSDRInput::sampleRateLowRangeMax); } else { ui->sampleRate->setValueRange(7, RTLSDRInput::sampleRateHighRangeMin, RTLSDRInput::sampleRateHighRangeMax); diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp index 0f798c7c0..406f104ba 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp @@ -496,6 +496,11 @@ bool RTLSDRInput::applySettings(const RTLSDRSettings& settings, bool force) } } + if ((m_settings.m_lowSampleRate != settings.m_lowSampleRate) || force) + { + m_settings.m_lowSampleRate = settings.m_lowSampleRate; + } + if ((m_settings.m_rfBandwidth != settings.m_rfBandwidth) || force) { m_settings.m_rfBandwidth = settings.m_rfBandwidth; @@ -608,6 +613,7 @@ int RTLSDRInput::webapiSettingsPutPatch( void RTLSDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const RTLSDRSettings& settings) { + qDebug("RTLSDRInput::webapiFormatDeviceSettings: m_lowSampleRate: %s", settings.m_lowSampleRate ? "true" : "false"); response.getRtlSdrSettings()->setAgc(settings.m_agc ? 1 : 0); response.getRtlSdrSettings()->setCenterFrequency(settings.m_centerFrequency); response.getRtlSdrSettings()->setDcBlock(settings.m_dcBlock ? 1 : 0);