153template <
class Connection>
154constexpr bool is_event(
const Connection& c)
noexcept {
157template <
class Connection>
161template <
class Connection>
165template <
class Connection>
constexpr bool is_spectral(
const Connection& c)
noexcept {
170 std::vector<GraphRuntimeNodePlan>
nodes;
217 bool ok() const noexcept {
223 std::span<const GraphRuntimeNodeSpec>
nodes,
224 std::span<const GraphRuntimeConnectionSpec>
connections,
Definition graph_runtime_buffer_assignment.hpp:8
GraphRuntimeNodeKind
Definition graph_runtime_plan.hpp:12
@ SpectralStage
Definition graph_runtime_plan.hpp:21
@ AudioOutput
Definition graph_runtime_plan.hpp:14
@ AudioInput
Definition graph_runtime_plan.hpp:13
@ Custom
Definition graph_runtime_plan.hpp:19
@ Utility
Definition graph_runtime_plan.hpp:16
@ SpectralAnalysis
Definition graph_runtime_plan.hpp:20
@ MidiOutput
Definition graph_runtime_plan.hpp:18
@ SpectralSynthesis
Definition graph_runtime_plan.hpp:22
@ Processor
Definition graph_runtime_plan.hpp:15
@ MidiInput
Definition graph_runtime_plan.hpp:17
std::uint32_t NodeId
Definition graph_types.hpp:7
constexpr bool is_spectral(const Connection &c) noexcept
Definition graph_runtime_plan.hpp:165
GraphRuntimeConnectionKind
Definition graph_runtime_plan.hpp:85
@ Event
Definition graph_runtime_plan.hpp:87
@ Audio
Definition graph_runtime_plan.hpp:86
@ Automation
Definition graph_runtime_plan.hpp:88
@ Spectral
Definition graph_runtime_plan.hpp:89
@ Trigger
Definition graph_runtime_plan.hpp:92
GraphRuntimePlanResult build_graph_runtime_plan(std::span< const GraphRuntimeNodeSpec > nodes, std::span< const GraphRuntimeConnectionSpec > connections, GraphRuntimeLimits limits={})
std::uint32_t PortIndex
Definition graph_types.hpp:8
constexpr bool is_event(const Connection &c) noexcept
Definition graph_runtime_plan.hpp:154
GraphRuntimePlanErrorCode
Definition graph_runtime_plan.hpp:186
@ UnknownSourceNode
Definition graph_runtime_plan.hpp:195
@ InvalidNodePortCount
Definition graph_runtime_plan.hpp:194
@ TooManyConnections
Definition graph_runtime_plan.hpp:190
@ DuplicateNodeId
Definition graph_runtime_plan.hpp:193
@ InvalidConnectionKind
Definition graph_runtime_plan.hpp:203
@ TooManyPorts
Definition graph_runtime_plan.hpp:191
@ None
Definition graph_runtime_plan.hpp:187
@ TooManyNodes
Definition graph_runtime_plan.hpp:189
@ DestinationPortOutOfRange
Definition graph_runtime_plan.hpp:198
@ UnknownDestinationNode
Definition graph_runtime_plan.hpp:196
@ SourcePortOutOfRange
Definition graph_runtime_plan.hpp:197
@ AllocationFailed
Definition graph_runtime_plan.hpp:200
@ InvalidNodeId
Definition graph_runtime_plan.hpp:192
@ CycleDetected
Definition graph_runtime_plan.hpp:199
@ UnsupportedTrigger
Definition graph_runtime_plan.hpp:201
@ InvalidLimits
Definition graph_runtime_plan.hpp:188
@ NonAudioFeedback
Definition graph_runtime_plan.hpp:202
constexpr bool is_automation_conn(const Connection &c) noexcept
Definition graph_runtime_plan.hpp:158
constexpr bool carries_audio(const Connection &c) noexcept
Definition graph_runtime_plan.hpp:162
Definition graph_runtime_plan.hpp:65
float range_lo
Definition graph_runtime_plan.hpp:67
float smoothing_ms
Definition graph_runtime_plan.hpp:69
float bounds_hi
Definition graph_runtime_plan.hpp:73
bool mix_add
Definition graph_runtime_plan.hpp:70
std::uint32_t param_id
Definition graph_runtime_plan.hpp:66
float bounds_lo
Definition graph_runtime_plan.hpp:72
bool audio_rate
Definition graph_runtime_plan.hpp:71
float range_hi
Definition graph_runtime_plan.hpp:68
Definition graph_runtime_plan.hpp:135
PortIndex dest_port
Definition graph_runtime_plan.hpp:139
std::uint32_t dest_index
Definition graph_runtime_plan.hpp:138
std::uint32_t source_index
Definition graph_runtime_plan.hpp:136
GraphRuntimeAutomationSpec automation
Definition graph_runtime_plan.hpp:143
PortIndex source_port
Definition graph_runtime_plan.hpp:137
bool feedback
Definition graph_runtime_plan.hpp:140
bool sidechain
Definition graph_runtime_plan.hpp:145
GraphRuntimeConnectionKind kind
Definition graph_runtime_plan.hpp:142
Definition graph_runtime_plan.hpp:95
NodeId dest_node
Definition graph_runtime_plan.hpp:98
NodeId source_node
Definition graph_runtime_plan.hpp:96
PortIndex dest_port
Definition graph_runtime_plan.hpp:99
bool feedback
Definition graph_runtime_plan.hpp:100
PortIndex source_port
Definition graph_runtime_plan.hpp:97
bool sidechain
Definition graph_runtime_plan.hpp:110
GraphRuntimeConnectionKind kind
Definition graph_runtime_plan.hpp:104
GraphRuntimeAutomationSpec automation
Definition graph_runtime_plan.hpp:105
Definition graph_runtime_plan.hpp:25
std::uint32_t max_nodes
Definition graph_runtime_plan.hpp:26
std::uint32_t max_connections
Definition graph_runtime_plan.hpp:27
std::uint32_t max_ports_per_node
Definition graph_runtime_plan.hpp:28
std::uint32_t max_total_ports
Definition graph_runtime_plan.hpp:29
Definition graph_runtime_plan.hpp:113
std::uint32_t latency_samples
Definition graph_runtime_plan.hpp:123
std::uint32_t output_ports
Definition graph_runtime_plan.hpp:117
bool persistent_output
Definition graph_runtime_plan.hpp:121
std::uint32_t spectral_output_ports
Definition graph_runtime_plan.hpp:132
std::uint32_t event_output_ports
Definition graph_runtime_plan.hpp:119
std::uint32_t single_audio_inbound_connection
Definition graph_runtime_plan.hpp:129
std::uint32_t inbound_connection_count
Definition graph_runtime_plan.hpp:125
std::uint32_t event_input_ports
Definition graph_runtime_plan.hpp:118
std::uint32_t spectral_input_ports
Definition graph_runtime_plan.hpp:131
std::uint32_t audio_inbound_connection_count
Definition graph_runtime_plan.hpp:128
std::uint64_t audio_inbound_port_mask
Definition graph_runtime_plan.hpp:130
std::uint32_t first_outbound_connection
Definition graph_runtime_plan.hpp:126
GraphRuntimeNodeKind kind
Definition graph_runtime_plan.hpp:115
std::uint32_t outbound_connection_count
Definition graph_runtime_plan.hpp:127
std::uint32_t first_inbound_connection
Definition graph_runtime_plan.hpp:124
std::uint32_t input_ports
Definition graph_runtime_plan.hpp:116
Definition graph_runtime_plan.hpp:32
std::uint32_t event_input_ports
Definition graph_runtime_plan.hpp:37
std::uint32_t input_ports
Definition graph_runtime_plan.hpp:35
std::uint32_t spectral_output_ports
Definition graph_runtime_plan.hpp:54
bool persistent_output
Definition graph_runtime_plan.hpp:46
std::uint32_t spectral_input_ports
Definition graph_runtime_plan.hpp:53
std::uint32_t event_output_ports
Definition graph_runtime_plan.hpp:38
GraphRuntimeNodeKind kind
Definition graph_runtime_plan.hpp:34
std::uint32_t latency_samples
Definition graph_runtime_plan.hpp:52
std::uint32_t output_ports
Definition graph_runtime_plan.hpp:36
Definition graph_runtime_plan.hpp:206
GraphRuntimePlanErrorCode code
Definition graph_runtime_plan.hpp:207
std::uint32_t index
Definition graph_runtime_plan.hpp:208
std::string message
Definition graph_runtime_plan.hpp:210
NodeId node_id
Definition graph_runtime_plan.hpp:209
Definition graph_runtime_plan.hpp:213
GraphRuntimePlan plan
Definition graph_runtime_plan.hpp:214
GraphRuntimePlanError error
Definition graph_runtime_plan.hpp:215
bool ok() const noexcept
Definition graph_runtime_plan.hpp:217
Definition graph_runtime_plan.hpp:169
std::vector< std::uint32_t > outbound_connection_indices
Definition graph_runtime_plan.hpp:173
std::uint32_t connection_count() const noexcept
std::vector< std::uint32_t > inbound_connection_indices
Definition graph_runtime_plan.hpp:172
std::vector< GraphRuntimeConnectionPlan > connections
Definition graph_runtime_plan.hpp:171
std::vector< std::uint32_t > processing_order_indices
Definition graph_runtime_plan.hpp:179
std::vector< GraphRuntimeNodePlan > nodes
Definition graph_runtime_plan.hpp:170
std::uint32_t node_count() const noexcept