From 4867d84b1eced2b7ec2f7104d0f222d0daf86e11 Mon Sep 17 00:00:00 2001 From: Dmitry Sharshakov Date: Mon, 13 Nov 2023 11:05:27 +0300 Subject: [PATCH] host: change UHD pointer types based on UHD version Follow-up: 58b4d869d48cf7b44ba4cb90cbf3f0e7f6f27100 --- host/umtrx_common.hpp | 12 ++++++++++++ host/umtrx_fifo_ctrl.hpp | 4 +++- host/umtrx_iface.hpp | 4 +++- host/umtrx_impl.hpp | 5 +++-- host/umtrx_io_impl.cpp | 20 ++++++++++---------- 5 files changed, 31 insertions(+), 14 deletions(-) create mode 100644 host/umtrx_common.hpp diff --git a/host/umtrx_common.hpp b/host/umtrx_common.hpp new file mode 100644 index 00000000..bab206b4 --- /dev/null +++ b/host/umtrx_common.hpp @@ -0,0 +1,12 @@ +#ifndef INCLUDED_UMTRX_COMMON_HPP +#define INCLUDED_UMTRX_COMMON_HPP + +#include + +#if UHD_VERSION >= 4000000 +#define UMTRX_UHD_PTR_NAMESPACE std +#else +#define UMTRX_UHD_PTR_NAMESPACE boost +#endif + +#endif /* INCLUDED_UMTRX_COMMON_HPP */ diff --git a/host/umtrx_fifo_ctrl.hpp b/host/umtrx_fifo_ctrl.hpp index 12d18263..b78a1792 100644 --- a/host/umtrx_fifo_ctrl.hpp +++ b/host/umtrx_fifo_ctrl.hpp @@ -27,6 +27,8 @@ #include #include +#include "umtrx_common.hpp" + /*! * The umtrx FIFO control class: * Provide high-speed peek/poke interface. @@ -34,7 +36,7 @@ class umtrx_fifo_ctrl : public uhd::wb_iface, public uhd::spi_iface { public: - typedef std::shared_ptr sptr; + typedef UMTRX_UHD_PTR_NAMESPACE::shared_ptr sptr; //! Make a new FIFO control object static sptr make(uhd::transport::zero_copy_if::sptr xport, const boost::uint32_t sid, const size_t window_size); diff --git a/host/umtrx_iface.hpp b/host/umtrx_iface.hpp index 23de9237..27b330ea 100644 --- a/host/umtrx_iface.hpp +++ b/host/umtrx_iface.hpp @@ -27,6 +27,8 @@ #include #include +#include "umtrx_common.hpp" + /*! * The umtrx interface class: * Provides a set of functions to implementation layer. @@ -34,7 +36,7 @@ */ class umtrx_iface : public uhd::wb_iface, public uhd::spi_iface, public uhd::i2c_iface{ public: - typedef std::shared_ptr sptr; + typedef UMTRX_UHD_PTR_NAMESPACE::shared_ptr sptr; /*! * Make a new umtrx interface with the control transport. * \param ctrl_transport the udp transport object diff --git a/host/umtrx_impl.hpp b/host/umtrx_impl.hpp index 6b42880d..fea39b1c 100644 --- a/host/umtrx_impl.hpp +++ b/host/umtrx_impl.hpp @@ -20,6 +20,7 @@ #define INCLUDED_UMTRX_IMPL_HPP #include "usrp2/fw_common.h" +#include "umtrx_common.hpp" #include "umtrx_iface.hpp" #include "umtrx_fifo_ctrl.hpp" #include "lms6002d_ctrl.hpp" @@ -236,8 +237,8 @@ private: void client_query_handle1(const boost::property_tree::ptree &request, boost::property_tree::ptree &response); //streaming - std::vector > _rx_streamers; - std::vector > _tx_streamers; + std::vector > _rx_streamers; + std::vector > _tx_streamers; boost::mutex _setupMutex; }; diff --git a/host/umtrx_io_impl.cpp b/host/umtrx_io_impl.cpp index 8d757196..f40be398 100644 --- a/host/umtrx_io_impl.cpp +++ b/host/umtrx_io_impl.cpp @@ -105,8 +105,8 @@ void umtrx_impl::update_rates(void) void umtrx_impl::update_rx_samp_rate(const size_t dsp, const double rate) { - std::shared_ptr my_streamer = - std::dynamic_pointer_cast(_rx_streamers[dsp].lock()); + UMTRX_UHD_PTR_NAMESPACE::shared_ptr my_streamer = + UMTRX_UHD_PTR_NAMESPACE::dynamic_pointer_cast(_rx_streamers[dsp].lock()); if (not my_streamer) return; my_streamer->set_samp_rate(rate); @@ -116,8 +116,8 @@ void umtrx_impl::update_rx_samp_rate(const size_t dsp, const double rate) void umtrx_impl::update_tx_samp_rate(const size_t dsp, const double rate) { - std::shared_ptr my_streamer = - std::dynamic_pointer_cast(_tx_streamers[dsp].lock()); + UMTRX_UHD_PTR_NAMESPACE::shared_ptr my_streamer = + UMTRX_UHD_PTR_NAMESPACE::dynamic_pointer_cast(_tx_streamers[dsp].lock()); if (not my_streamer) return; my_streamer->set_samp_rate(rate); @@ -130,15 +130,15 @@ void umtrx_impl::update_tick_rate(const double rate) //update the tick rate on all existing streamers -> thread safe for (size_t i = 0; i < _rx_streamers.size(); i++) { - std::shared_ptr my_streamer = - std::dynamic_pointer_cast(_rx_streamers[i].lock()); + UMTRX_UHD_PTR_NAMESPACE::shared_ptr my_streamer = + UMTRX_UHD_PTR_NAMESPACE::dynamic_pointer_cast(_rx_streamers[i].lock()); if (not my_streamer) continue; my_streamer->set_tick_rate(rate); } for (size_t i = 0; i < _tx_streamers.size(); i++) { - std::shared_ptr my_streamer = - std::dynamic_pointer_cast(_tx_streamers[i].lock()); + UMTRX_UHD_PTR_NAMESPACE::shared_ptr my_streamer = + UMTRX_UHD_PTR_NAMESPACE::dynamic_pointer_cast(_tx_streamers[i].lock()); if (not my_streamer) continue; my_streamer->set_tick_rate(rate); } @@ -228,7 +228,7 @@ uhd::rx_streamer::sptr umtrx_impl::get_rx_stream(const uhd::stream_args_t &args_ const size_t spp = unsigned(args.args.cast("spp", bpp/bpi)); //make the new streamer given the samples per packet - std::shared_ptr my_streamer = std::make_shared(spp); + UMTRX_UHD_PTR_NAMESPACE::shared_ptr my_streamer = UMTRX_UHD_PTR_NAMESPACE::make_shared(spp); //init some streamer stuff my_streamer->resize(args.channels.size()); @@ -454,7 +454,7 @@ uhd::tx_streamer::sptr umtrx_impl::get_tx_stream(const uhd::stream_args_t &args_ const size_t spp = bpp/convert::get_bytes_per_item(args.otw_format); //make the new streamer given the samples per packet - std::shared_ptr my_streamer = std::make_shared(spp); + UMTRX_UHD_PTR_NAMESPACE::shared_ptr my_streamer = UMTRX_UHD_PTR_NAMESPACE::make_shared(spp); //init some streamer stuff my_streamer->resize(args.channels.size());