diff options
author | Josh Blum <josh@joshknows.com> | 2017-02-02 11:33:34 -0800 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2017-02-02 11:33:34 -0800 |
commit | 2a2236cc9e97581e59cfc8018bd03d90659e6acc (patch) | |
tree | ee7259bc583835a32993a3fe039b40f3a9019904 /lib/soapy/soapy_common.cc | |
parent | 3511defbf42a3f8cf0fd74b8ae19869406f18b6f (diff) |
soapy: support step size in gain ranges
* This change is backwards compatible and checks for API support for step size.
* Created soapy_common.cc/h to house common gain range functions
* Moved factory mutex declaration to common source files as well
Diffstat (limited to 'lib/soapy/soapy_common.cc')
-rw-r--r-- | lib/soapy/soapy_common.cc | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/soapy/soapy_common.cc b/lib/soapy/soapy_common.cc new file mode 100644 index 0000000..0e277e4 --- /dev/null +++ b/lib/soapy/soapy_common.cc @@ -0,0 +1,43 @@ +/* -*- c++ -*- */ +/* + * Copyright 2017 Josh Blum <josh@joshknows.com> + * + * GNU Radio 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, or (at your option) + * any later version. + * + * GNU Radio 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 GNU Radio; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "soapy_common.h" +#include <SoapySDR/Version.hpp> + +osmosdr::gain_range_t soapy_range_to_gain_range(const SoapySDR::Range &r) +{ + //default step size when unspecified + double step = 1.0; + + //support the step size in 0.6 API and above + //but do not allow unspecified steps + //to avoid device by zero in some applications + #ifdef SOAPY_SDR_API_HAS_RANGE_TYPE_STEP + if (r.step() != 0.0) step = r.step(); + #endif + + return osmosdr::gain_range_t(r.minimum(), r.maximum(), step); +} + +boost::mutex &get_soapy_maker_mutex(void) +{ + static boost::mutex m; + return m; +} |