diff options
Diffstat (limited to 'lib/bladerf/bladerf_common.cc')
-rw-r--r-- | lib/bladerf/bladerf_common.cc | 63 |
1 files changed, 31 insertions, 32 deletions
diff --git a/lib/bladerf/bladerf_common.cc b/lib/bladerf/bladerf_common.cc index c10cc2e..0548027 100644 --- a/lib/bladerf/bladerf_common.cc +++ b/lib/bladerf/bladerf_common.cc @@ -35,10 +35,8 @@ #include <string> #include <boost/assign.hpp> -#include <boost/foreach.hpp> #include <boost/format.hpp> #include <boost/lexical_cast.hpp> -#include <boost/weak_ptr.hpp> #include "bladerf_common.h" @@ -50,8 +48,8 @@ static size_t const STREAM_TIMEOUT_MS = 3000; using namespace boost::assign; -boost::mutex bladerf_common::_devs_mutex; -std::list<boost::weak_ptr<struct bladerf>> bladerf_common::_devs; +std::mutex bladerf_common::_devs_mutex; +std::list<std::weak_ptr<struct bladerf> > bladerf_common::_devs; /* name for system-wide gain (which is not its own libbladeRF gain stage) */ static const char *SYSTEM_GAIN_NAME = "system"; @@ -135,7 +133,7 @@ size_t num_streams(bladerf_channel_layout layout) * Public methods ******************************************************************************/ bladerf_common::bladerf_common() : - _dev(NULL), + _dev(std::shared_ptr<struct bladerf>()), _pfx("[bladeRF common] "), _failures(0), _num_buffers(NUM_BUFFERS), @@ -414,7 +412,7 @@ size_t bladerf_common::get_max_channels(bladerf_direction direction) #ifdef BLADERF_COMPATIBILITY return 1; #else - return bladerf_get_channel_count(_dev.get(), (BLADERF_TX == direction)); + return bladerf_get_channel_count(_dev.get(), direction); #endif } @@ -499,7 +497,7 @@ int bladerf_common::channel2rfport(bladerf_channel ch) bladerf_channel bladerf_common::chan2channel(bladerf_direction direction, size_t chan) { - BOOST_FOREACH(bladerf_channel_map::value_type &i, _chanmap) { + for (bladerf_channel_map::value_type &i : _chanmap) { bladerf_channel ch = i.first; if ( (i.second == (int)chan) && ( @@ -526,7 +524,7 @@ osmosdr::meta_range_t bladerf_common::sample_rates(bladerf_channel ch) #else int status; - bladerf_range brf_sample_rates; + const bladerf_range *brf_sample_rates; status = bladerf_get_sample_rate_range(_dev.get(), ch, &brf_sample_rates); if (status != 0) { @@ -534,15 +532,15 @@ osmosdr::meta_range_t bladerf_common::sample_rates(bladerf_channel ch) } /* Suggest a variety of sample rates */ - sample_rates += osmosdr::range_t(brf_sample_rates.min, - brf_sample_rates.max / 4.0, - brf_sample_rates.max / 16.0); - sample_rates += osmosdr::range_t(brf_sample_rates.max / 4.0, - brf_sample_rates.max / 2.0, - brf_sample_rates.max / 8.0); - sample_rates += osmosdr::range_t(brf_sample_rates.max / 2.0, - brf_sample_rates.max, - brf_sample_rates.max / 4.0); + sample_rates += osmosdr::range_t(brf_sample_rates->min, + brf_sample_rates->max / 4.0, + brf_sample_rates->max / 16.0); + sample_rates += osmosdr::range_t(brf_sample_rates->max / 4.0, + brf_sample_rates->max / 2.0, + brf_sample_rates->max / 8.0); + sample_rates += osmosdr::range_t(brf_sample_rates->max / 2.0, + brf_sample_rates->max, + brf_sample_rates->max / 4.0); #endif return sample_rates; @@ -587,16 +585,16 @@ osmosdr::freq_range_t bladerf_common::freq_range(bladerf_channel ch) #else int status; - struct bladerf_range range; + const struct bladerf_range *range; status = bladerf_get_frequency_range(_dev.get(), ch, &range); if (status != 0) { BLADERF_THROW_STATUS(status, "bladerf_get_frequency_range failed"); }; - return osmosdr::freq_range_t(static_cast<double>(range.min), - static_cast<double>(range.max), - static_cast<double>(range.step)); + return osmosdr::freq_range_t(static_cast<double>(range->min), + static_cast<double>(range->max), + static_cast<double>(range->step)); #endif } @@ -643,19 +641,19 @@ osmosdr::freq_range_t bladerf_common::filter_bandwidths(bladerf_channel ch) 0.75, 0.875, 1.25, 1.375, 1.5, 1.92, 2.5, 2.75, 3, 3.5, 4.375, 5, 6, 7, 10, 14; - BOOST_FOREACH( double half_bw, half_bandwidths ) + for (double half_bw : half_bandwidths) bandwidths += osmosdr::range_t( half_bw * 2e6 ); #else int status; - bladerf_range range; + const bladerf_range *range; status = bladerf_get_bandwidth_range(_dev.get(), ch, &range); if (status != 0) { BLADERF_THROW_STATUS(status, "bladerf_get_bandwidth_range failed"); } - bandwidths += osmosdr::range_t(range.min, range.max, range.step); + bandwidths += osmosdr::range_t(range->min, range->max, range->step); #endif return bandwidths; @@ -717,6 +715,7 @@ std::vector<std::string> bladerf_common::get_gain_names(bladerf_channel ch) for (int i = 0; i < count; ++i) { char *tmp = gain_names[i]; + printf("FOUND %s\n", tmp); names += std::string(tmp); }; #endif @@ -747,7 +746,7 @@ osmosdr::gain_range_t bladerf_common::get_gain_range(std::string const &name, #else int status; - struct bladerf_range range; + const bladerf_range *range; if (name == SYSTEM_GAIN_NAME) { status = bladerf_get_gain_range(_dev.get(), ch, &range); @@ -760,7 +759,7 @@ osmosdr::gain_range_t bladerf_common::get_gain_range(std::string const &name, "range for stage '%s'") % name)); } - return osmosdr::gain_range_t(range.min, range.max, range.step); + return osmosdr::gain_range_t(range->min, range->max, range->step); #endif } @@ -1078,7 +1077,7 @@ bladerf_sptr bladerf_common::open(std::string const &device_name) struct bladerf *raw_dev = NULL; struct bladerf_devinfo devinfo; - boost::unique_lock<boost::mutex> lock(_devs_mutex); + std::lock_guard<std::mutex> lock(_devs_mutex); /* Initialize the information used to identify the desired device * to all wildcard (i.e., "any device") values */ @@ -1108,15 +1107,15 @@ bladerf_sptr bladerf_common::open(std::string const &device_name) /* Add the device handle to our cache */ bladerf_sptr dev = bladerf_sptr(raw_dev, bladerf_common::close); - _devs.push_back(static_cast<boost::weak_ptr<struct bladerf>>(dev)); + _devs.push_back(static_cast<std::weak_ptr<struct bladerf> >(dev)); return dev; } void bladerf_common::close(void *dev) { - boost::unique_lock<boost::mutex> lock(_devs_mutex); - std::list<boost::weak_ptr<struct bladerf>>::iterator it(_devs.begin()); + std::lock_guard<std::mutex> lock(_devs_mutex); + std::list<std::weak_ptr<struct bladerf> >::iterator it(_devs.begin()); /* Prune expired entries from device cache */ while (it != _devs.end()) { @@ -1136,7 +1135,7 @@ bladerf_sptr bladerf_common::get_cached_device(struct bladerf_devinfo devinfo) int status; struct bladerf_devinfo other_devinfo; - BOOST_FOREACH(boost::weak_ptr<struct bladerf> dev, _devs) { + for (std::weak_ptr<struct bladerf> dev : _devs) { status = bladerf_get_devinfo(bladerf_sptr(dev).get(), &other_devinfo); if (status < 0) { BLADERF_THROW_STATUS(status, "Failed to get devinfo for cached device"); @@ -1199,7 +1198,7 @@ void bladerf_common::print_device_info() bool bladerf_common::is_antenna_valid(bladerf_direction dir, const std::string &antenna) { - BOOST_FOREACH(std::string ant, get_antennas(dir)) { + for (std::string ant : get_antennas(dir)) { if (antenna == ant) { return true; } |