diff --git a/lib/osmosdr_sink_c_impl.cc b/lib/osmosdr_sink_c_impl.cc index e780867..ab7101a 100644 --- a/lib/osmosdr_sink_c_impl.cc +++ b/lib/osmosdr_sink_c_impl.cc @@ -517,7 +517,7 @@ double osmosdr_sink_c_impl::set_bandwidth( double bandwidth, size_t chan ) BOOST_FOREACH( osmosdr_snk_iface *dev, _devs ) for (size_t dev_chan = 0; dev_chan < dev->get_num_channels(); dev_chan++) if ( chan == channel++ ) { - if ( _bandwidth[ chan ] != bandwidth ) { + if ( _bandwidth[ chan ] != bandwidth || 0.0f == bandwidth ) { _bandwidth[ chan ] = bandwidth; return dev->set_bandwidth( bandwidth, dev_chan ); } else { return _bandwidth[ chan ]; } diff --git a/lib/osmosdr_source_c_impl.cc b/lib/osmosdr_source_c_impl.cc index bac2e90..a6f58f7 100644 --- a/lib/osmosdr_source_c_impl.cc +++ b/lib/osmosdr_source_c_impl.cc @@ -721,7 +721,7 @@ double osmosdr_source_c_impl::set_bandwidth( double bandwidth, size_t chan ) BOOST_FOREACH( osmosdr_src_iface *dev, _devs ) for (size_t dev_chan = 0; dev_chan < dev->get_num_channels(); dev_chan++) if ( chan == channel++ ) { - if ( _bandwidth[ chan ] != bandwidth ) { + if ( _bandwidth[ chan ] != bandwidth || 0.0f == bandwidth ) { _bandwidth[ chan ] = bandwidth; return dev->set_bandwidth( bandwidth, dev_chan ); } else { return _bandwidth[ chan ]; }