summaryrefslogtreecommitdiff
path: root/gr-uhd/lib/usrp_sink_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-uhd/lib/usrp_sink_impl.cc')
-rw-r--r--gr-uhd/lib/usrp_sink_impl.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/gr-uhd/lib/usrp_sink_impl.cc b/gr-uhd/lib/usrp_sink_impl.cc
index 729db6a3d7..fbb0b876c2 100644
--- a/gr-uhd/lib/usrp_sink_impl.cc
+++ b/gr-uhd/lib/usrp_sink_impl.cc
@@ -84,7 +84,7 @@ double usrp_sink_impl::get_samp_rate(void)
::uhd::tune_result_t
usrp_sink_impl::set_center_freq(const ::uhd::tune_request_t tune_request, size_t chan)
{
- _curr_tune_req[chan] = tune_request;
+ _curr_tx_tune_req[chan] = tune_request;
chan = _stream_args.channels[chan];
return _dev->set_tx_freq(tune_request, chan);
}
@@ -92,12 +92,13 @@ usrp_sink_impl::set_center_freq(const ::uhd::tune_request_t tune_request, size_t
::uhd::tune_result_t usrp_sink_impl::_set_center_freq_from_internals(size_t chan,
pmt::pmt_t direction)
{
- _chans_to_tune.reset(chan);
if (pmt::eqv(direction, ant_direction_rx())) {
// TODO: what happens if the RX device is not instantiated? Catch error?
- 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]);
} else {
- 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]);
}
}
@@ -113,10 +114,14 @@ double usrp_sink_impl::get_center_freq(size_t chan)
return _dev->get_tx_freq_range(chan);
}
-void usrp_sink_impl::set_gain(double gain, size_t chan)
+void usrp_sink_impl::set_gain(double gain, size_t chan, pmt::pmt_t direction)
{
chan = _stream_args.channels[chan];
- return _dev->set_tx_gain(gain, chan);
+ if (pmt::eqv(direction, ant_direction_rx())) {
+ return _dev->set_rx_gain(gain, chan);
+ } else {
+ return _dev->set_tx_gain(gain, chan);
+ }
}
void usrp_sink_impl::set_gain(double gain, const std::string& name, size_t chan)