43 std::vector<std::string_view> modes_in = {})
82 std::string_view unit_in, std::string_view description_in,
84 std::vector<ForgeParamChoice> choices_in = {},
85 std::vector<std::string_view> modes_in = {})
123 std::vector<ForgeRealizationSetting> settings_in = {})
134 std::vector<ForgeRealizationAxis>
axes;
136 std::vector<ForgeParamDescriptor>
params;
143 std::string_view key)
noexcept {
144 for (
const auto& param : node.params)
145 if (param.key == key)
152 if (param.realization_modes.empty())
154 for (
const auto& allowed : param.realization_modes)
161 if (choice.realization_modes.empty())
163 for (
const auto& allowed : choice.realization_modes)
Bounded event contracts shared by host ingress and graph-authored nodes.
Definition anticipation_eligibility.hpp:9
ForgeParamKind
Whether a parameter sweeps continuously or selects among named states.
Definition forge_param_descriptor.hpp:25
@ stepped
Definition forge_param_descriptor.hpp:25
@ continuous
Definition forge_param_descriptor.hpp:25
ForgeParamCurve
How a value maps to its control travel.
Definition forge_param_descriptor.hpp:29
@ logarithmic
Definition forge_param_descriptor.hpp:29
@ linear
Definition forge_param_descriptor.hpp:29
bool choice_applies(const ForgeParamChoice &choice, std::string_view mode) noexcept
Definition forge_param_descriptor.hpp:160
bool param_applies(const ForgeParamDescriptor ¶m, std::string_view mode) noexcept
True when param applies to the named realization mode.
Definition forge_param_descriptor.hpp:151
const ForgeParamDescriptor * find_param(const ForgeNodeDescriptor &node, std::string_view key) noexcept
Look up a parameter descriptor by its stable key.
Definition forge_param_descriptor.hpp:142
uint32_t ParamID
Unique parameter identifier, stable across plugin versions.
Definition parameter.hpp:55
One value of a compile-time realization axis.
Definition forge_param_descriptor.hpp:52
std::string_view label
Definition forge_param_descriptor.hpp:54
std::string_view token
Definition forge_param_descriptor.hpp:53
float value
Definition forge_param_descriptor.hpp:55
Definition forge_param_descriptor.hpp:127
std::string_view label
Definition forge_param_descriptor.hpp:130
std::string_view description
One or two sentences: what this node is for, in the vocabulary someone choosing it would use.
Definition forge_param_descriptor.hpp:133
std::vector< ForgeParamDescriptor > params
Definition forge_param_descriptor.hpp:136
std::string_view key
Stable family key, e.g. "fuzz".
Definition forge_param_descriptor.hpp:129
std::vector< ForgeRealization > realizations
Definition forge_param_descriptor.hpp:135
std::vector< ForgeRealizationAxis > axes
Definition forge_param_descriptor.hpp:134
One named state of a stepped parameter.
Definition forge_param_descriptor.hpp:33
std::string_view label
Definition forge_param_descriptor.hpp:35
std::vector< std::string_view > realization_modes
Empty means the choice is valid wherever its parameter is valid.
Definition forge_param_descriptor.hpp:39
ForgeParamChoice()=default
ForgeParamChoice(std::string_view token_in, std::string_view label_in, float value_in, std::vector< std::string_view > modes_in={})
Definition forge_param_descriptor.hpp:42
float value
Definition forge_param_descriptor.hpp:36
std::string_view token
Definition forge_param_descriptor.hpp:34
Definition forge_param_descriptor.hpp:58
std::string_view unit
Unit symbol as displayed ("dB", "Hz", "ms", "%"). Empty when unitless.
Definition forge_param_descriptor.hpp:67
ForgeParamDescriptor(std::string_view key_in, state::ParamID id_in, std::string_view label_in, std::string_view unit_in, std::string_view description_in, ForgeParamKind kind_in, ForgeParamCurve curve_in, std::vector< ForgeParamChoice > choices_in={}, std::vector< std::string_view > modes_in={})
Definition forge_param_descriptor.hpp:81
std::vector< ForgeParamChoice > choices
Required and non-empty when kind is stepped; empty otherwise.
Definition forge_param_descriptor.hpp:72
std::string_view label
Definition forge_param_descriptor.hpp:65
ForgeParamCurve curve
Definition forge_param_descriptor.hpp:70
state::ParamID id
The baked parameter this describes.
Definition forge_param_descriptor.hpp:64
std::vector< std::string_view > realization_modes
Empty means the parameter exists on every realization.
Definition forge_param_descriptor.hpp:78
ForgeParamKind kind
Definition forge_param_descriptor.hpp:69
std::string_view description
Definition forge_param_descriptor.hpp:68
ForgeParamDescriptor()=default
std::string_view key
Stable machine key, snake_case, unique within its node.
Definition forge_param_descriptor.hpp:61
A compile-time construction axis — a choice made when the node is built rather than automated afterwa...
Definition forge_param_descriptor.hpp:94
std::vector< ForgeAxisValue > values
Definition forge_param_descriptor.hpp:98
std::string_view description
Definition forge_param_descriptor.hpp:97
std::string_view label
Definition forge_param_descriptor.hpp:96
std::string_view key
Definition forge_param_descriptor.hpp:95
One axis/value selection used to construct a concrete realization.
Definition forge_param_descriptor.hpp:106
std::string_view value
Definition forge_param_descriptor.hpp:108
std::string_view axis
Definition forge_param_descriptor.hpp:107
ForgeRealization()=default
std::string mode
Stable mode key, e.g. "silicon_x4".
Definition forge_param_descriptor.hpp:115
ForgeRealization(std::string_view mode_in, std::string_view type_id_in, std::vector< ForgeRealizationSetting > settings_in={})
Definition forge_param_descriptor.hpp:122
std::vector< ForgeRealizationSetting > settings
Exactly one selection for each declared realization axis.
Definition forge_param_descriptor.hpp:119
std::string type_id
The node type id registered with the graph.
Definition forge_param_descriptor.hpp:117