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.cc81
1 files changed, 12 insertions, 69 deletions
diff --git a/gr-uhd/lib/usrp_sink_impl.cc b/gr-uhd/lib/usrp_sink_impl.cc
index bd56e992fd..4e2e9467dd 100644
--- a/gr-uhd/lib/usrp_sink_impl.cc
+++ b/gr-uhd/lib/usrp_sink_impl.cc
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2010-2015 Free Software Foundation, Inc.
+ * Copyright 2010-2016 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -31,26 +31,6 @@ namespace gr {
usrp_sink::sptr
usrp_sink::make(const ::uhd::device_addr_t &device_addr,
- const ::uhd::io_type_t &io_type,
- size_t num_channels)
- {
- //fill in the streamer args
- ::uhd::stream_args_t stream_args;
- switch(io_type.tid) {
- case ::uhd::io_type_t::COMPLEX_FLOAT32: stream_args.cpu_format = "fc32"; break;
- case ::uhd::io_type_t::COMPLEX_INT16: stream_args.cpu_format = "sc16"; break;
- default: throw std::runtime_error("only complex float and shorts known to work");
- }
-
- stream_args.otw_format = "sc16"; //only sc16 known to work
- for(size_t chan = 0; chan < num_channels; chan++)
- stream_args.channels.push_back(chan); //linear mapping
-
- return usrp_sink::make(device_addr, stream_args, "");
- }
-
- usrp_sink::sptr
- usrp_sink::make(const ::uhd::device_addr_t &device_addr,
const ::uhd::stream_args_t &stream_args,
const std::string &length_tag_name)
{
@@ -62,9 +42,9 @@ namespace gr {
usrp_sink_impl::usrp_sink_impl(const ::uhd::device_addr_t &device_addr,
const ::uhd::stream_args_t &stream_args,
const std::string &length_tag_name)
- : usrp_block("gr uhd usrp sink",
- args_to_io_sig(stream_args),
- io_signature::make(0, 0, 0)),
+ : usrp_block("usrp_sink",
+ args_to_io_sig(stream_args),
+ io_signature::make(0, 0, 0)),
usrp_block_impl(device_addr, stream_args, length_tag_name),
_length_tag_key(length_tag_name.empty() ? pmt::PMT_NIL : pmt::string_to_symbol(length_tag_name)),
_nitems_to_send(0)
@@ -80,11 +60,7 @@ namespace gr {
usrp_sink_impl::get_usrp_info(size_t chan)
{
chan = _stream_args.channels[chan];
-#ifdef UHD_USRP_MULTI_USRP_GET_USRP_INFO_API
return _dev->get_usrp_tx_info(chan);
-#else
- throw std::runtime_error("not implemented in this version");
-#endif
}
void
@@ -119,11 +95,7 @@ namespace gr {
::uhd::meta_range_t
usrp_sink_impl::get_samp_rates(void)
{
-#ifdef UHD_USRP_MULTI_USRP_GET_RATES_API
return _dev->get_tx_rates(_stream_args.channels[0]);
-#else
- throw std::runtime_error("not implemented in this version");
-#endif
}
::uhd::tune_result_t
@@ -282,11 +254,7 @@ namespace gr {
size_t chan)
{
chan = _stream_args.channels[chan];
-#ifdef UHD_USRP_MULTI_USRP_FRONTEND_CAL_API
return _dev->set_tx_dc_offset(offset, chan);
-#else
- throw std::runtime_error("not implemented in this version");
-#endif
}
void
@@ -294,11 +262,7 @@ namespace gr {
size_t chan)
{
chan = _stream_args.channels[chan];
-#ifdef UHD_USRP_MULTI_USRP_FRONTEND_CAL_API
return _dev->set_tx_iq_balance(correction, chan);
-#else
- throw std::runtime_error("not implemented in this version");
-#endif
}
::uhd::sensor_value_t
@@ -326,12 +290,9 @@ namespace gr {
usrp_sink_impl::set_stream_args(const ::uhd::stream_args_t &stream_args)
{
_update_stream_args(stream_args);
-#ifdef GR_UHD_USE_STREAM_API
- if(_tx_stream)
+ if (_tx_stream) {
_tx_stream.reset();
-#else
- throw std::runtime_error("not implemented in this version");
-#endif
+ }
}
/***********************************************************************
@@ -375,16 +336,11 @@ namespace gr {
}
}
- boost::this_thread::disable_interruption disable_interrupt;
-#ifdef GR_UHD_USE_STREAM_API
//send all ninput_items with metadata
- const size_t num_sent = _tx_stream->send
- (input_items, ninput_items, _metadata, 1.0);
-#else
- const size_t num_sent = _dev->get_device()->send
- (input_items, ninput_items, _metadata,
- *_type, ::uhd::device::SEND_MODE_FULL_BUFF, 1.0);
-#endif
+ boost::this_thread::disable_interruption disable_interrupt;
+ const size_t num_sent = _tx_stream->send(
+ input_items, ninput_items, _metadata, 1.0
+ );
boost::this_thread::restore_interruption restore_interrupt(disable_interrupt);
//if using length_tags, decrement items left to send by the number of samples sent
@@ -579,9 +535,7 @@ namespace gr {
bool
usrp_sink_impl::start(void)
{
-#ifdef GR_UHD_USE_STREAM_API
_tx_stream = _dev->get_tx_stream(_stream_args);
-#endif
_metadata.start_of_burst = true;
_metadata.end_of_burst = false;
@@ -596,14 +550,8 @@ namespace gr {
_metadata.time_spec = get_time_now() + ::uhd::time_spec_t(0.15);
}
-#ifdef GR_UHD_USE_STREAM_API
_tx_stream->send
(gr_vector_const_void_star(_nchan), 0, _metadata, 1.0);
-#else
- _dev->get_device()->send
- (gr_vector_const_void_star(_nchan), 0, _metadata,
- *_type, ::uhd::device::SEND_MODE_ONE_PACKET, 1.0);
-#endif
return true;
}
@@ -617,14 +565,9 @@ namespace gr {
_metadata.has_time_spec = false;
_nitems_to_send = 0;
-#ifdef GR_UHD_USE_STREAM_API
- if(_tx_stream)
+ if (_tx_stream) {
_tx_stream->send(gr_vector_const_void_star(_nchan), 0, _metadata, 1.0);
-#else
- _dev->get_device()->send
- (gr_vector_const_void_star(_nchan), 0, _metadata,
- *_type, ::uhd::device::SEND_MODE_ONE_PACKET, 1.0);
-#endif
+ }
return true;
}