From 07babe997d6149b3a6ca91521292fd65fe57f1e5 Mon Sep 17 00:00:00 2001 From: Ryan Tucker Date: Tue, 27 Jun 2017 14:39:56 -0400 Subject: bladerf_common: cleanup on set_gain_mode Turns out that source/sink_impl already handle the AGC->MGC gain preservation, so this was redundant and counterproductive. Also DRY the code a bit. --- lib/bladerf/bladerf_common.cc | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/lib/bladerf/bladerf_common.cc b/lib/bladerf/bladerf_common.cc index 9a56615..573e6ea 100644 --- a/lib/bladerf/bladerf_common.cc +++ b/lib/bladerf/bladerf_common.cc @@ -809,22 +809,11 @@ osmosdr::gain_range_t bladerf_common::get_gain_range( const std::string & name, bool bladerf_common::set_gain_mode( bool automatic, size_t chan ) { int ret = 0; + bladerf_gain_mode mode = automatic ? BLADERF_GAIN_DEFAULT : BLADERF_GAIN_MGC; - if (automatic) { - ret = bladerf_set_gain_mode( _dev.get(), - static_cast(chan), - BLADERF_GAIN_DEFAULT ); - } else { - /* read the gain (presumably automatic), switch to MGC, then set the - * gain to that value to minimize surprise */ - double gain = get_gain(chan); - ret = bladerf_set_gain_mode( _dev.get(), - static_cast(chan), - BLADERF_GAIN_MGC ); - if (!ret) { - set_gain(gain, chan); - } - } + ret = bladerf_set_gain_mode( _dev.get(), + static_cast(chan), + mode ); if( ret ) { throw std::runtime_error( std::string(__FUNCTION__) + " " + -- cgit v1.2.3