From daa537d329f8e758b86db3d98500f211e4736f55 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Wed, 17 Nov 2010 10:02:37 -0800 Subject: uhd: added to printable string methods for ranges --- host/include/uhd/types/ranges.hpp | 9 ++++++++- host/include/uhd/types/ranges.ipp | 19 ++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) (limited to 'host/include') diff --git a/host/include/uhd/types/ranges.hpp b/host/include/uhd/types/ranges.hpp index 25120de40..8a7ca0310 100644 --- a/host/include/uhd/types/ranges.hpp +++ b/host/include/uhd/types/ranges.hpp @@ -21,6 +21,7 @@ #include #include #include +#include namespace uhd{ @@ -55,8 +56,11 @@ namespace uhd{ //! Get the step value for this range. const T step(void) const; + //! Convert this range to a printable string + const std::string to_pp_string(void) const; + private: - UHD_PIMPL_DECL(impl) _impl; + UHD_PIMPL_DECL(impl) _impl; }; /*! @@ -102,6 +106,9 @@ namespace uhd{ */ const T clip(const T &value, bool clip_step = false) const; + //! Convert this meta-range to a printable string + const std::string to_pp_string(void) const; + }; //! export a symbol for the gain range type diff --git a/host/include/uhd/types/ranges.ipp b/host/include/uhd/types/ranges.ipp index 8b602a24d..29f389fca 100644 --- a/host/include/uhd/types/ranges.ipp +++ b/host/include/uhd/types/ranges.ipp @@ -22,7 +22,7 @@ #include #include #include -#include +#include namespace uhd{ @@ -66,6 +66,15 @@ namespace uhd{ return _impl->step; } + template const std::string range_t::to_pp_string(void) const{ + std::stringstream ss; + ss << "(" << this->start(); + if (this->start() != this->stop()) ss << ", " << this->stop(); + if (this->step() != T(0)) ss << ", " << this->step(); + ss << ")"; + return ss.str(); + } + /******************************************************************* * meta_range_t implementation code ******************************************************************/ @@ -163,6 +172,14 @@ namespace uhd{ return last_stop; } + template const std::string meta_range_t::to_pp_string(void) const{ + std::stringstream ss; + BOOST_FOREACH(const range_t &r, (*this)){ + ss << r.to_pp_string() << std::endl; + } + return ss.str(); + } + } //namespace uhd #endif /* INCLUDED_UHD_TYPES_RANGES_IPP */ -- cgit v1.2.3