diff options
author | Josh Blum <josh@joshknows.com> | 2016-06-22 18:13:11 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2016-06-22 18:13:11 -0700 |
commit | ae686c462df73285fc13d3a0dc76f360a911500b (patch) | |
tree | 447d2d8f7579559c78d9fb0c84807f2f435e3207 | |
parent | 860e9a1a727688a0b7d2040ed4afdc0669331160 (diff) |
soapy: support newer getBandwidthRange() API call
Switch to the newer API call which can provide a list of ranges.
There are feature detection ifdefs provided by the library
so that code will always correctly compile.
-rw-r--r-- | lib/soapy/soapy_sink_c.cc | 8 | ||||
-rw-r--r-- | lib/soapy/soapy_source_c.cc | 8 |
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/soapy/soapy_sink_c.cc b/lib/soapy/soapy_sink_c.cc index b4dd219..9e3c364 100644 --- a/lib/soapy/soapy_sink_c.cc +++ b/lib/soapy/soapy_sink_c.cc @@ -39,6 +39,7 @@ #include "arg_helpers.h" #include "soapy_sink_c.h" #include <SoapySDR/Device.hpp> +#include <SoapySDR/Version.hpp> using namespace boost::assign; @@ -287,10 +288,17 @@ double soapy_sink_c::get_bandwidth( size_t chan) osmosdr::freq_range_t soapy_sink_c::get_bandwidth_range( size_t chan) { osmosdr::meta_range_t result; + #ifdef SOAPY_SDR_API_HAS_GET_BANDWIDTH_RANGE + BOOST_FOREACH(const SoapySDR::Range &r, _device->getBandwidthRange(SOAPY_SDR_TX, 0)) + { + result.push_back(osmosdr::range_t(r.minimum(), r.maximum())); + } + #else BOOST_FOREACH(const double bw, _device->listBandwidths(SOAPY_SDR_TX, 0)) { result.push_back(osmosdr::range_t(bw)); } + #endif return result; } diff --git a/lib/soapy/soapy_source_c.cc b/lib/soapy/soapy_source_c.cc index 5fc0dbc..608138e 100644 --- a/lib/soapy/soapy_source_c.cc +++ b/lib/soapy/soapy_source_c.cc @@ -40,6 +40,7 @@ #include "soapy_source_c.h" #include "osmosdr/source.h" #include <SoapySDR/Device.hpp> +#include <SoapySDR/Version.hpp> using namespace boost::assign; @@ -307,10 +308,17 @@ double soapy_source_c::get_bandwidth( size_t chan ) osmosdr::freq_range_t soapy_source_c::get_bandwidth_range( size_t chan ) { osmosdr::meta_range_t result; + #ifdef SOAPY_SDR_API_HAS_GET_BANDWIDTH_RANGE + BOOST_FOREACH(const SoapySDR::Range &r, _device->getBandwidthRange(SOAPY_SDR_RX, 0)) + { + result.push_back(osmosdr::range_t(r.minimum(), r.maximum())); + } + #else BOOST_FOREACH(const double bw, _device->listBandwidths(SOAPY_SDR_RX, 0)) { result.push_back(osmosdr::range_t(bw)); } + #endif return result; } |