36 return a.id == b.id &&
37 a.range.min == b.range.min &&
38 a.range.max == b.range.max &&
39 a.range.default_value == b.range.default_value &&
40 a.range.step == b.range.step &&
41 a.range.skew == b.range.skew &&
42 a.range.symmetric_skew == b.range.symmetric_skew &&
43 a.is_trigger == b.is_trigger &&
47 a.designation == b.designation;
55 for (std::size_t i = 0; i < params.size(); ++i)
56 for (std::size_t j = i + 1; j < params.size(); ++j)
57 if (params[i].
id == params[j].
id)
return false;
66 std::vector<std::string> out;
90 out.push_back(
"parameter " + std::to_string(l.id) +
" ('" + l.name +
91 "') removed in candidate");
95 out.push_back(
"parameter " + std::to_string(l.id) +
" ('" + l.name +
96 "') range/flags changed");
99 for (
const auto& c : candidate.all_params()) {
100 if (!live.
info(c.id)) {
102 out.push_back(
"parameter " + std::to_string(c.id) +
" ('" + c.name +
103 "') added in candidate");
162 for (
const auto& c : candidate.all_params()) {
164 if (!live.
info(c.id))
181 std::size_t carried = 0;
183 if (candidate.info(l.id)) {
184 candidate.set_value(l.id, live.
get_value(l.id));
Centralized parameter storage with lock-free value access.
Definition store.hpp:164
float get_value(ParamID id) const
Read a parameter's base value (lock-free).
Definition store.hpp:186
const ParamInfo * info(ParamID id) const
Look up immutable metadata for a parameter.
std::span< const ParamInfo > all_params() const
View of all registered parameters (in registration order).
Definition store.hpp:439
bool is_bypass_param(const ParamInfo &info)
Decide whether info is a bypass control.
Definition parameter.hpp:514
Immutable parameter metadata, registered once at plugin initialization.
Definition parameter.hpp:316