summaryrefslogtreecommitdiffstats
path: root/host/include
diff options
context:
space:
mode:
Diffstat (limited to 'host/include')
-rw-r--r--host/include/uhd/CMakeLists.txt1
-rw-r--r--host/include/uhd/config.hpp11
-rw-r--r--host/include/uhd/device.hpp35
-rw-r--r--host/include/uhd/device.ipp79
4 files changed, 109 insertions, 17 deletions
diff --git a/host/include/uhd/CMakeLists.txt b/host/include/uhd/CMakeLists.txt
index d63062032..c0339dbd3 100644
--- a/host/include/uhd/CMakeLists.txt
+++ b/host/include/uhd/CMakeLists.txt
@@ -24,6 +24,7 @@ ADD_SUBDIRECTORY(utils)
INSTALL(FILES
config.hpp
device.hpp
+ device.ipp
wax.hpp
DESTINATION ${INCLUDE_DIR}/uhd
)
diff --git a/host/include/uhd/config.hpp b/host/include/uhd/config.hpp
index b23a4dc00..013354d33 100644
--- a/host/include/uhd/config.hpp
+++ b/host/include/uhd/config.hpp
@@ -78,7 +78,7 @@
#endif // UHD_DLL
// Define force inline macro
-#ifdef BOOST_MSVC
+#if defined(BOOST_MSVC)
#define UHD_INLINE __forceinline
#elif defined(__GNUG__) && __GNUG__ >= 4
#define UHD_INLINE inline __attribute__((always_inline))
@@ -86,4 +86,13 @@
#define UHD_INLINE inline
#endif
+// Define deprecated attribute macro
+#if defined(BOOST_MSVC)
+ #define UHD_DEPRECATED __declspec(deprecated)
+#elif defined(__GNUG__) && __GNUG__ >= 4
+ #define UHD_DEPRECATED __attribute__ ((deprecated))
+#else
+ #define UHD_DEPRECATED
+#endif
+
#endif /* INCLUDED_UHD_CONFIG_HPP */
diff --git a/host/include/uhd/device.hpp b/host/include/uhd/device.hpp
index e5ef1181f..a0c29f2e6 100644
--- a/host/include/uhd/device.hpp
+++ b/host/include/uhd/device.hpp
@@ -26,6 +26,7 @@
#include <boost/utility.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/function.hpp>
+#include <boost/asio/buffer.hpp>
#include <vector>
namespace uhd{
@@ -128,19 +129,19 @@ public:
/*!
* Convenience wrapper for send that takes a single buffer.
*/
- inline size_t send(
+ size_t send(
const void *buff,
size_t nsamps_per_buff,
const tx_metadata_t &metadata,
const io_type_t &io_type,
send_mode_t send_mode
- ){
- return send(
- std::vector<const void *>(1, buff),
- nsamps_per_buff, metadata,
- io_type, send_mode
- );
- }
+ );
+
+ //! Deprecated
+ size_t send(
+ const boost::asio::const_buffer &, const tx_metadata_t &,
+ const io_type_t &, send_mode_t send_mode
+ );
/*!
* Receive buffers containing IF data described by the metadata.
@@ -186,19 +187,19 @@ public:
/*!
* Convenience wrapper for recv that takes a single buffer.
*/
- inline size_t recv(
+ size_t recv(
void *buff,
size_t nsamps_per_buff,
rx_metadata_t &metadata,
const io_type_t &io_type,
recv_mode_t recv_mode
- ){
- return recv(
- std::vector<void *>(1, buff),
- nsamps_per_buff, metadata,
- io_type, recv_mode
- );
- }
+ );
+
+ //! Deprecated
+ size_t recv(
+ const boost::asio::mutable_buffer &, rx_metadata_t &,
+ const io_type_t &, recv_mode_t
+ );
/*!
* Get the maximum number of samples per packet on send.
@@ -216,4 +217,6 @@ public:
} //namespace uhd
+#include <uhd/device.ipp>
+
#endif /* INCLUDED_UHD_DEVICE_HPP */
diff --git a/host/include/uhd/device.ipp b/host/include/uhd/device.ipp
new file mode 100644
index 000000000..c38a2e43e
--- /dev/null
+++ b/host/include/uhd/device.ipp
@@ -0,0 +1,79 @@
+//
+// Copyright 2010 Ettus Research LLC
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+//
+
+#ifndef INCLUDED_UHD_DEVICE_IPP
+#define INCLUDED_UHD_DEVICE_IPP
+
+namespace uhd{
+
+ UHD_INLINE size_t device::send(
+ const void *buff,
+ size_t nsamps_per_buff,
+ const tx_metadata_t &metadata,
+ const io_type_t &io_type,
+ send_mode_t send_mode
+ ){
+ return this->send(
+ std::vector<const void *>(1, buff),
+ nsamps_per_buff, metadata,
+ io_type, send_mode
+ );
+ }
+
+ UHD_DEPRECATED UHD_INLINE size_t device::send(
+ const boost::asio::const_buffer &buff,
+ const tx_metadata_t &metadata,
+ const io_type_t &io_type,
+ send_mode_t send_mode
+ ){
+ return this->send(
+ boost::asio::buffer_cast<const void *>(buff),
+ boost::asio::buffer_size(buff)/io_type.size,
+ metadata, io_type, send_mode
+ );
+ }
+
+ UHD_INLINE size_t device::recv(
+ void *buff,
+ size_t nsamps_per_buff,
+ rx_metadata_t &metadata,
+ const io_type_t &io_type,
+ recv_mode_t recv_mode
+ ){
+ return this->recv(
+ std::vector<void *>(1, buff),
+ nsamps_per_buff, metadata,
+ io_type, recv_mode
+ );
+ }
+
+ UHD_DEPRECATED UHD_INLINE size_t device::recv(
+ const boost::asio::mutable_buffer &buff,
+ rx_metadata_t &metadata,
+ const io_type_t &io_type,
+ recv_mode_t recv_mode
+ ){
+ return this->recv(
+ boost::asio::buffer_cast<void *>(buff),
+ boost::asio::buffer_size(buff)/io_type.size,
+ metadata, io_type, recv_mode
+ );
+ }
+
+} //namespace uhd
+
+#endif /* INCLUDED_UHD_DEVICE_IPP */