75 std::span<const ParamInfo> old_params,
76 std::span<const ParamInfo> new_params) {
77 std::vector<ParamOrderingViolation> violations;
79 const auto id_present_in_new = [&](
ParamID id) {
80 for (
const auto& p : new_params)
81 if (p.id ==
id)
return true;
85 for (std::size_t i = 0; i < old_params.size(); ++i) {
86 const ParamID old_id = old_params[i].id;
87 if (i < new_params.size()) {
88 const ParamID new_id = new_params[i].id;
89 if (new_id != old_id) {
95 if (!id_present_in_new(old_id)) {
118 std::span<const ParamInfo> new_params) {
Centralized parameter storage with lock-free value access.
Definition store.hpp:164
std::span< const ParamInfo > all_params() const
View of all registered parameters (in registration order).
Definition store.hpp:439
SequencerStateChannel is the audio-safe transport for a plugin's structured NON-parameter state: the ...
Definition audio_device_manager.hpp:48
std::vector< ParamOrderingViolation > diff_param_ordering(std::span< const ParamInfo > old_params, std::span< const ParamInfo > new_params)
Diff two parameter descriptors (old vs new) and return every ordering / identity violation,...
Definition param_ordering.hpp:74
bool param_ordering_stable(std::span< const ParamInfo > old_params, std::span< const ParamInfo > new_params)
True iff new_params is an append-only, identity-preserving evolution of old_params (no re-order,...
Definition param_ordering.hpp:117
uint32_t ParamID
Unique parameter identifier, stable across plugin versions.
Definition parameter.hpp:55
One way a new descriptor version broke a previously-shipped parameter's host-facing identity.
Definition param_ordering.hpp:46
Kind
Definition param_ordering.hpp:47
@ ParamRemoved
A host-facing ID present in the old version is absent from the new version entirely.
Definition param_ordering.hpp:55
@ IdChangedAtIndex
The parameter that used to occupy index now carries a different host-facing ID (it was re-ID'd,...
Definition param_ordering.hpp:52
std::size_t index
Registration index in the OLD version.
Definition param_ordering.hpp:59
ParamID old_id
The ID the old version shipped at this slot.
Definition param_ordering.hpp:60
Kind kind
Definition param_ordering.hpp:58
ParamID new_id
The ID now at this index (0 for ParamRemoved).
Definition param_ordering.hpp:61