diff options
author | Josh Blum <josh@joshknows.com> | 2010-10-08 13:53:40 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-10-08 13:53:40 -0700 |
commit | 2eb813f6845e8cd208d6a59e1d7873cf84c51b03 (patch) | |
tree | 5092d49313d9e2d09569504a7999eb0a0a49f9e1 /host/lib/usrp/misc_utils.cpp | |
parent | 83fd99cc7badb91a2e8c97048eb9ea694aba22eb (diff) | |
parent | a4f8ad59b2abc6d4b1a6c65aa2652083486e3065 (diff) | |
download | uhd-2eb813f6845e8cd208d6a59e1d7873cf84c51b03.tar.gz uhd-2eb813f6845e8cd208d6a59e1d7873cf84c51b03.tar.bz2 uhd-2eb813f6845e8cd208d6a59e1d7873cf84c51b03.zip |
Merge branch 'subdev_enable' into next
Diffstat (limited to 'host/lib/usrp/misc_utils.cpp')
-rw-r--r-- | host/lib/usrp/misc_utils.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/host/lib/usrp/misc_utils.cpp b/host/lib/usrp/misc_utils.cpp index 5cfcdc8d3..05308baba 100644 --- a/host/lib/usrp/misc_utils.cpp +++ b/host/lib/usrp/misc_utils.cpp @@ -17,6 +17,7 @@ #include <uhd/usrp/misc_utils.hpp> #include <uhd/utils/assert.hpp> +#include <uhd/utils/algorithm.hpp> #include <uhd/utils/gain_group.hpp> #include <uhd/usrp/dboard_id.hpp> #include <uhd/usrp/subdev_props.hpp> @@ -186,6 +187,22 @@ static void verify_xx_subdev_spec( "Validate %s subdev spec failed: %s\n %s" ) % xx_type % subdev_spec.to_string() % e.what())); } + + //now use the subdev spec to enable the subdevices in use and vice-versa + BOOST_FOREACH(const std::string &db_name, mboard[dboard_names_prop].as<prop_names_t>()){ + wax::obj dboard = mboard[named_prop_t(dboard_prop, db_name)]; + BOOST_FOREACH(const std::string &sd_name, dboard[DBOARD_PROP_SUBDEV_NAMES].as<prop_names_t>()){ + try{ + bool enable = std::has(subdev_spec, subdev_spec_pair_t(db_name, sd_name)); + dboard[named_prop_t(DBOARD_PROP_SUBDEV, sd_name)][SUBDEV_PROP_ENABLED] = enable; + } + catch(const std::exception &e){ + throw std::runtime_error(str(boost::format( + "Cannot set enabled property on subdevice %s:%s\n %s" + ) % db_name % sd_name % e.what())); + } + } + } } void usrp::verify_rx_subdev_spec(subdev_spec_t &subdev_spec, wax::obj mboard){ |