source/sink: fix automatic bandwidth selection
This commit is contained in:
parent
2d644d2eae
commit
6187f182d5
|
@ -517,7 +517,7 @@ double osmosdr_sink_c_impl::set_bandwidth( double bandwidth, size_t chan )
|
||||||
BOOST_FOREACH( osmosdr_snk_iface *dev, _devs )
|
BOOST_FOREACH( osmosdr_snk_iface *dev, _devs )
|
||||||
for (size_t dev_chan = 0; dev_chan < dev->get_num_channels(); dev_chan++)
|
for (size_t dev_chan = 0; dev_chan < dev->get_num_channels(); dev_chan++)
|
||||||
if ( chan == channel++ ) {
|
if ( chan == channel++ ) {
|
||||||
if ( _bandwidth[ chan ] != bandwidth ) {
|
if ( _bandwidth[ chan ] != bandwidth || 0.0f == bandwidth ) {
|
||||||
_bandwidth[ chan ] = bandwidth;
|
_bandwidth[ chan ] = bandwidth;
|
||||||
return dev->set_bandwidth( bandwidth, dev_chan );
|
return dev->set_bandwidth( bandwidth, dev_chan );
|
||||||
} else { return _bandwidth[ chan ]; }
|
} else { return _bandwidth[ chan ]; }
|
||||||
|
|
|
@ -721,7 +721,7 @@ double osmosdr_source_c_impl::set_bandwidth( double bandwidth, size_t chan )
|
||||||
BOOST_FOREACH( osmosdr_src_iface *dev, _devs )
|
BOOST_FOREACH( osmosdr_src_iface *dev, _devs )
|
||||||
for (size_t dev_chan = 0; dev_chan < dev->get_num_channels(); dev_chan++)
|
for (size_t dev_chan = 0; dev_chan < dev->get_num_channels(); dev_chan++)
|
||||||
if ( chan == channel++ ) {
|
if ( chan == channel++ ) {
|
||||||
if ( _bandwidth[ chan ] != bandwidth ) {
|
if ( _bandwidth[ chan ] != bandwidth || 0.0f == bandwidth ) {
|
||||||
_bandwidth[ chan ] = bandwidth;
|
_bandwidth[ chan ] = bandwidth;
|
||||||
return dev->set_bandwidth( bandwidth, dev_chan );
|
return dev->set_bandwidth( bandwidth, dev_chan );
|
||||||
} else { return _bandwidth[ chan ]; }
|
} else { return _bandwidth[ chan ]; }
|
||||||
|
|
Loading…
Reference in New Issue