diff options
author | Dimitri Stolnikov <horiz0n@gmx.net> | 2012-07-01 11:38:46 +0200 |
---|---|---|
committer | Dimitri Stolnikov <horiz0n@gmx.net> | 2012-07-01 11:38:46 +0200 |
commit | 604a9d79b0e80a30edbfb2fbbd06a20d4ad166e8 (patch) | |
tree | 9a46a12576d16822dd0013b6b591471ce1596b69 /lib/rtl_tcp | |
parent | 1ea5a90b19af07438671f692a3d7e347fec1634e (diff) |
use clip method provided by range class to pick gain values
Diffstat (limited to 'lib/rtl_tcp')
-rw-r--r-- | lib/rtl_tcp/rtl_tcp_source_c.cc | 21 |
1 files changed, 1 insertions, 20 deletions
diff --git a/lib/rtl_tcp/rtl_tcp_source_c.cc b/lib/rtl_tcp/rtl_tcp_source_c.cc index b9e4a00..f5f3b20 100644 --- a/lib/rtl_tcp/rtl_tcp_source_c.cc +++ b/lib/rtl_tcp/rtl_tcp_source_c.cc @@ -239,30 +239,11 @@ bool rtl_tcp_source_c::get_gain_mode( size_t chan ) return _auto_gain; } -static double pick_closest_gain(osmosdr::gain_range_t &gains, double required) -{ - double result = required; - double distance = 100; - - BOOST_FOREACH(osmosdr::range_t gain, gains) - { - double diff = fabs(gain.start() - required); - - if (diff < distance) { - distance = diff; - result = gain.start(); - } - } - - return result; -} - double rtl_tcp_source_c::set_gain( double gain, size_t chan ) { osmosdr::gain_range_t gains = rtl_tcp_source_c::get_gain_range( chan ); - double picked_gain = pick_closest_gain( gains, gain ); - _src->set_gain( int(picked_gain * 10.0) ); + _src->set_gain( int(gains.clip(gain) * 10.0) ); _gain = gain; |