summaryrefslogtreecommitdiff
path: root/gr-uhd/lib/usrp_source_impl.cc
diff options
context:
space:
mode:
authorSebastian Koslowski <koslowski@kit.edu>2017-01-05 20:51:35 +0100
committerSebastian Koslowski <koslowski@kit.edu>2017-01-05 20:51:35 +0100
commit10e7e270773a258b0356bafc3a5bbc4853f38a4c (patch)
tree5e55f5358a39e8caf453448ddc724ed66b61f387 /gr-uhd/lib/usrp_source_impl.cc
parent7f25c0120fc7bc6a6eeee87878cf387647d51614 (diff)
parent8d80d0adacc98b02392428ab5284d8417df9c776 (diff)
Merge remote-tracking branch 'upstream/next' into gtk3
Diffstat (limited to 'gr-uhd/lib/usrp_source_impl.cc')
-rw-r--r--gr-uhd/lib/usrp_source_impl.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/gr-uhd/lib/usrp_source_impl.cc b/gr-uhd/lib/usrp_source_impl.cc
index c840c43db1..8cdaebc4ca 100644
--- a/gr-uhd/lib/usrp_source_impl.cc
+++ b/gr-uhd/lib/usrp_source_impl.cc
@@ -154,12 +154,16 @@ namespace gr {
void usrp_source_impl::set_normalized_gain(double norm_gain, size_t chan)
{
+#ifdef UHD_USRP_MULTI_USRP_NORMALIZED_GAIN
+ _dev->set_normalized_rx_gain(norm_gain, chan);
+#else
if (norm_gain > 1.0 || norm_gain < 0.0) {
throw std::runtime_error("Normalized gain out of range, must be in [0, 1].");
}
::uhd::gain_range_t gain_range = get_gain_range(chan);
double abs_gain = (norm_gain * (gain_range.stop() - gain_range.start())) + gain_range.start();
set_gain(abs_gain, chan);
+#endif
}
double
@@ -179,6 +183,9 @@ namespace gr {
double
usrp_source_impl::get_normalized_gain(size_t chan)
{
+#ifdef UHD_USRP_MULTI_USRP_NORMALIZED_GAIN
+ return _dev->get_normalized_rx_gain(chan);
+#else
::uhd::gain_range_t gain_range = get_gain_range(chan);
double norm_gain =
(get_gain(chan) - gain_range.start()) /
@@ -187,6 +194,7 @@ namespace gr {
if (norm_gain > 1.0) return 1.0;
if (norm_gain < 0.0) return 0.0;
return norm_gain;
+#endif
}
std::vector<std::string>
@@ -553,6 +561,7 @@ namespace gr {
gr_vector_void_star &output_items)
{
boost::recursive_mutex::scoped_lock lock(d_mutex);
+ boost::this_thread::disable_interruption disable_interrupt;
//In order to allow for low-latency:
//We receive all available packets without timeout.
//This call can timeout under regular operation...
@@ -563,6 +572,7 @@ namespace gr {
_recv_timeout,
true /* one packet -> minimize latency */
);
+ boost::this_thread::restore_interruption restore_interrupt(disable_interrupt);
//handle possible errors conditions
switch(_metadata.error_code) {