From f4d0066edf2dad114ee84ddf0b08deef0023ec53 Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 3 Apr 2019 23:01:29 +0200 Subject: [PATCH] RTL-SDR: fixed gain setting sequence (issue #321) --- app/main.cpp | 2 +- appbench/main.cpp | 2 +- appsrv/main.cpp | 2 +- debian/changelog | 6 +++++ plugins/samplesource/rtlsdr/rtlsdrinput.cpp | 27 ++++++++++---------- plugins/samplesource/rtlsdr/rtlsdrplugin.cpp | 2 +- 6 files changed, 23 insertions(+), 18 deletions(-) diff --git a/app/main.cpp b/app/main.cpp index 43a722cd0..e00284eff 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -35,7 +35,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo */ QCoreApplication::setOrganizationName("f4exb"); QCoreApplication::setApplicationName("SDRangel"); - QCoreApplication::setApplicationVersion("4.5.3"); + QCoreApplication::setApplicationVersion("4.5.4"); #if QT_VERSION >= 0x050600 QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // DPI support QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); //HiDPI pixmaps diff --git a/appbench/main.cpp b/appbench/main.cpp index f4c3e1a97..9a73d75b5 100644 --- a/appbench/main.cpp +++ b/appbench/main.cpp @@ -57,7 +57,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo QCoreApplication::setOrganizationName("f4exb"); QCoreApplication::setApplicationName("SDRangelBench"); - QCoreApplication::setApplicationVersion("4.5.3"); + QCoreApplication::setApplicationVersion("4.5.4"); int catchSignals[] = {SIGQUIT, SIGINT, SIGTERM, SIGHUP}; std::vector vsig(catchSignals, catchSignals + sizeof(catchSignals) / sizeof(int)); diff --git a/appsrv/main.cpp b/appsrv/main.cpp index 60833ea8a..671dc7d01 100644 --- a/appsrv/main.cpp +++ b/appsrv/main.cpp @@ -56,7 +56,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo QCoreApplication::setOrganizationName("f4exb"); QCoreApplication::setApplicationName("SDRangelSrv"); - QCoreApplication::setApplicationVersion("4.5.3"); + QCoreApplication::setApplicationVersion("4.5.4"); int catchSignals[] = {SIGQUIT, SIGINT, SIGTERM, SIGHUP}; std::vector vsig(catchSignals, catchSignals + sizeof(catchSignals) / sizeof(int)); diff --git a/debian/changelog b/debian/changelog index c8b87dcd1..e538dcd16 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +sdrangel (4.5.4-1) unstable; urgency=medium + + * Fixed RTL-SDR gain setting sequence. Fixes issue #321. + + -- Edouard Griffiths, F4EXB Fri, 05 Apr 2019 20:14:18 +0100 + sdrangel (4.5.3-1) unstable; urgency=medium * Fixed HackRF Rx/Tx frequency setting. Fixes issue #318. diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp index 233c46911..624d82d60 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp @@ -380,20 +380,6 @@ bool RTLSDRInput::applySettings(const RTLSDRSettings& settings, bool force) } } - if ((m_settings.m_gain != settings.m_gain) || force) - { - reverseAPIKeys.append("gain"); - - if(m_dev != 0) - { - if (rtlsdr_set_tuner_gain(m_dev, settings.m_gain) != 0) { - qCritical("RTLSDRInput::applySettings: rtlsdr_set_tuner_gain() failed"); - } else { - qDebug("RTLSDRInput::applySettings: rtlsdr_set_tuner_gain() to %d", settings.m_gain); - } - } - } - if ((m_settings.m_dcBlock != settings.m_dcBlock) || (m_settings.m_iqImbalance != settings.m_iqImbalance) || force) { reverseAPIKeys.append("dcBlock"); @@ -550,6 +536,19 @@ bool RTLSDRInput::applySettings(const RTLSDRSettings& settings, bool force) } } + if ((m_settings.m_gain != settings.m_gain) || force) + { + reverseAPIKeys.append("gain"); + + if(m_dev != 0) + { + if (rtlsdr_set_tuner_gain(m_dev, settings.m_gain) != 0) { + qCritical("RTLSDRInput::applySettings: rtlsdr_set_tuner_gain() failed"); + } else { + qDebug("RTLSDRInput::applySettings: rtlsdr_set_tuner_gain() to %d", settings.m_gain); + } + } + } if (settings.m_useReverseAPI) { diff --git a/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp b/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp index d590d4e31..cb2c5f5ae 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp @@ -14,7 +14,7 @@ const PluginDescriptor RTLSDRPlugin::m_pluginDescriptor = { QString("RTL-SDR Input"), - QString("4.5.2"), + QString("4.5.4"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true,