diff --git a/lib/uhd/uhd_sink_c.cc b/lib/uhd/uhd_sink_c.cc index 255d8bf..d53e66b 100644 --- a/lib/uhd/uhd_sink_c.cc +++ b/lib/uhd/uhd_sink_c.cc @@ -262,3 +262,25 @@ std::string uhd_sink_c::get_antenna( size_t chan ) { return _snk->get_antenna(chan); } + +double uhd_sink_c::set_bandwidth( double bandwidth, size_t chan ) +{ + _snk->set_bandwidth(bandwidth, chan); + + return _snk->get_bandwidth(chan); +} + +double uhd_sink_c::get_bandwidth( size_t chan ) +{ + return _snk->get_bandwidth(chan); +} + +osmosdr::freq_range_t uhd_sink_c::get_bandwidth_range( size_t chan ) +{ + osmosdr::freq_range_t bandwidths; + + BOOST_FOREACH( uhd::range_t bw, _snk->get_bandwidth_range(chan) ) + bandwidths += osmosdr::range_t( bw.start(), bw.stop(), bw.step() ); + + return bandwidths; +} diff --git a/lib/uhd/uhd_sink_c.h b/lib/uhd/uhd_sink_c.h index c85dfb1..f3f05f2 100644 --- a/lib/uhd/uhd_sink_c.h +++ b/lib/uhd/uhd_sink_c.h @@ -71,6 +71,10 @@ public: std::string set_antenna( const std::string & antenna, size_t chan = 0 ); std::string get_antenna( size_t chan = 0 ); + double set_bandwidth( double bandwidth, size_t chan = 0 ); + double get_bandwidth( size_t chan = 0 ); + osmosdr::freq_range_t get_bandwidth_range( size_t chan = 0 ); + private: double _lo_offset; gr::uhd::usrp_sink::sptr _snk; diff --git a/lib/uhd/uhd_source_c.cc b/lib/uhd/uhd_source_c.cc index 3137b27..3d28ea6 100644 --- a/lib/uhd/uhd_source_c.cc +++ b/lib/uhd/uhd_source_c.cc @@ -262,3 +262,25 @@ std::string uhd_source_c::get_antenna( size_t chan ) { return _src->get_antenna(chan); } + +double uhd_source_c::set_bandwidth( double bandwidth, size_t chan ) +{ + _src->set_bandwidth(bandwidth, chan); + + return _src->get_bandwidth(chan); +} + +double uhd_source_c::get_bandwidth( size_t chan ) +{ + return _src->get_bandwidth(chan); +} + +osmosdr::freq_range_t uhd_source_c::get_bandwidth_range( size_t chan ) +{ + osmosdr::freq_range_t bandwidths; + + BOOST_FOREACH( uhd::range_t bw, _src->get_bandwidth_range(chan) ) + bandwidths += osmosdr::range_t( bw.start(), bw.stop(), bw.step() ); + + return bandwidths; +} diff --git a/lib/uhd/uhd_source_c.h b/lib/uhd/uhd_source_c.h index 90da3bc..18da97c 100644 --- a/lib/uhd/uhd_source_c.h +++ b/lib/uhd/uhd_source_c.h @@ -71,6 +71,10 @@ public: std::string set_antenna( const std::string & antenna, size_t chan = 0 ); std::string get_antenna( size_t chan = 0 ); + double set_bandwidth( double bandwidth, size_t chan = 0 ); + double get_bandwidth( size_t chan = 0 ); + osmosdr::freq_range_t get_bandwidth_range( size_t chan = 0 ); + private: double _lo_offset; gr::uhd::usrp_source::sptr _src;