summaryrefslogtreecommitdiff
path: root/gr-uhd/lib/usrp_source_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-uhd/lib/usrp_source_impl.cc')
-rw-r--r--gr-uhd/lib/usrp_source_impl.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/gr-uhd/lib/usrp_source_impl.cc b/gr-uhd/lib/usrp_source_impl.cc
index fa910f1a9f..33edea4ab0 100644
--- a/gr-uhd/lib/usrp_source_impl.cc
+++ b/gr-uhd/lib/usrp_source_impl.cc
@@ -100,12 +100,13 @@ usrp_source_impl::set_center_freq(const ::uhd::tune_request_t tune_request, size
::uhd::tune_result_t
usrp_source_impl::_set_center_freq_from_internals(size_t chan, pmt::pmt_t direction)
{
- _chans_to_tune.reset(chan);
if (pmt::eqv(direction, ant_direction_tx())) {
// TODO: what happens if the TX device is not instantiated? Catch error?
- return _dev->set_tx_freq(_curr_tune_req[chan], _stream_args.channels[chan]);
+ _tx_chans_to_tune.reset(chan);
+ return _dev->set_tx_freq(_curr_tx_tune_req[chan], _stream_args.channels[chan]);
} else {
- return _dev->set_rx_freq(_curr_tune_req[chan], _stream_args.channels[chan]);
+ _rx_chans_to_tune.reset(chan);
+ return _dev->set_rx_freq(_curr_rx_tune_req[chan], _stream_args.channels[chan]);
}
}
@@ -121,10 +122,14 @@ double usrp_source_impl::get_center_freq(size_t chan)
return _dev->get_rx_freq_range(chan);
}
-void usrp_source_impl::set_gain(double gain, size_t chan)
+void usrp_source_impl::set_gain(double gain, size_t chan, pmt::pmt_t direction)
{
chan = _stream_args.channels[chan];
- return _dev->set_rx_gain(gain, chan);
+ if (pmt::eqv(direction, ant_direction_tx())) {
+ return _dev->set_tx_gain(gain, chan);
+ } else {
+ return _dev->set_rx_gain(gain, chan);
+ }
}
void usrp_source_impl::set_gain(double gain, const std::string& name, size_t chan)