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 +#include 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 +#include 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; }