diff options
author | Brent Stapleton <brent.stapleton@ettus.com> | 2019-08-01 14:01:50 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2019-11-26 11:49:11 -0800 |
commit | d1a5b70a8f9a54a2a39e30415fbc0a4c607222f7 (patch) | |
tree | 46e36f89e15c1fc57246027d1f52895a81e8fe63 /host/lib/utils | |
parent | 75ad0c55164e8e2f08b4bfc9d5361f2445a80f52 (diff) | |
download | uhd-d1a5b70a8f9a54a2a39e30415fbc0a4c607222f7.tar.gz uhd-d1a5b70a8f9a54a2a39e30415fbc0a4c607222f7.tar.bz2 uhd-d1a5b70a8f9a54a2a39e30415fbc0a4c607222f7.zip |
gain_groups: Add zero-value gain groups
Add convenience factory for making a gain group that has a single
zero-valued element. This factory requires a name, which should
probably be ALL_GAINS, or something similar (these constants are
device-specific).
Using this new make_zero factory in the X300 radio control when we
don't find any gain elements so that our gain groups aren't empty. This
simplifies our later setters/getters because we know that we'll always
have _something_ cached.
Note that we only register this zero value gain group for TX, as our
ADC is registered as a gain element, so our RX gain groups are never
empty.
Diffstat (limited to 'host/lib/utils')
-rw-r--r-- | host/lib/utils/gain_group.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/host/lib/utils/gain_group.cpp b/host/lib/utils/gain_group.cpp index 50edf2515..0e4df6469 100644 --- a/host/lib/utils/gain_group.cpp +++ b/host/lib/utils/gain_group.cpp @@ -182,3 +182,14 @@ private: gain_group::sptr gain_group::make(void){ return sptr(new gain_group_impl()); } + +gain_group::sptr gain_group::make_zero() +{ + gain_fcns_t gain_fcns; + gain_fcns.get_range = []() { return meta_range_t(0.0, 0.0); }; + gain_fcns.get_value = []() { return 0.0; }; + gain_fcns.set_value = [](const double) {}; + auto gg = make(); + gg->register_fcns("null", gain_fcns); + return gg; +} |