Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
graph_timing_contract.hpp
Go to the documentation of this file.
1#pragma once
2
3// Control-side timing evidence for a prepared SignalGraph. This header is a
4// deliberately small public seam: it keeps the typed timing contract out of
5// the large SignalGraph runtime declaration and has no audio-thread API.
6
7#include <cstdint>
8
9namespace pulp::host {
10
11class SignalGraph;
12
13enum class GraphTimingDisposition : std::uint8_t {
17};
18
36
37// A declaration keeps semantic delay (the musical/audio meaning of a delay)
38// separate from algorithmic latency and host PDC. Only integer, zero-tail,
39// fixed-partition declarations are currently certifiable by this evaluator.
52
53// Measurements are supplied by an independent control-side oracle. The
54// evaluator never treats declaration fields as measurements.
65
85
86// Evaluate one declaration against the graph's immutable prepared snapshot.
87// This is observational and control-thread only: no topology, authoring
88// generation, or execution state is changed by a call.
89GraphTimingEvidence
91 const GraphTimingMeasurements& measurements) noexcept;
92
93} // namespace pulp::host
Definition signal_graph_runtime.hpp:83
Definition graph_runtime_buffer_assignment.hpp:8
Bounded event contracts shared by host ingress and graph-authored nodes.
Definition anticipation_eligibility.hpp:9
GraphTimingReason
Definition graph_timing_contract.hpp:19
@ PartitionUnsupported
Definition graph_timing_contract.hpp:26
@ LatencyMismatch
Definition graph_timing_contract.hpp:24
@ GroupDelayUnmeasured
Definition graph_timing_contract.hpp:33
@ InvalidField
Definition graph_timing_contract.hpp:22
@ HostPdcUnmeasured
Definition graph_timing_contract.hpp:31
@ SemanticDelayUnmeasured
Definition graph_timing_contract.hpp:30
@ SchedulingUnavailable
Definition graph_timing_contract.hpp:25
@ Unprepared
Definition graph_timing_contract.hpp:21
@ TailUnsupported
Definition graph_timing_contract.hpp:27
@ MeasurementMismatch
Definition graph_timing_contract.hpp:34
@ BlockCapacity
Definition graph_timing_contract.hpp:23
@ FractionalDelay
Definition graph_timing_contract.hpp:28
@ AlgorithmicLatencyUnmeasured
Definition graph_timing_contract.hpp:32
@ None
Definition anticipation_eligibility.hpp:22
@ MultiTap
Definition bounded_delay_descriptor.hpp:15
GraphTimingEvidence evaluate_graph_timing_contract(const SignalGraph &graph, const GraphTimingDeclaration &declaration, const GraphTimingMeasurements &measurements) noexcept
GraphTimingDisposition
Definition graph_timing_contract.hpp:13
@ Proven
Definition graph_timing_contract.hpp:14
@ Refused
Definition graph_timing_contract.hpp:15
@ Unsupported
Definition custom_node_diagnostics.hpp:14
Definition graph_timing_contract.hpp:40
bool scheduling_guaranteed
Definition graph_timing_contract.hpp:47
int semantic_delay_samples
Definition graph_timing_contract.hpp:41
int host_pdc_samples
Definition graph_timing_contract.hpp:43
bool fractional_delay
Definition graph_timing_contract.hpp:49
int partition_size
Definition graph_timing_contract.hpp:44
bool anticipation_required
Definition graph_timing_contract.hpp:48
int block_size
Definition graph_timing_contract.hpp:46
int tail_samples
Definition graph_timing_contract.hpp:45
int algorithmic_latency_samples
Definition graph_timing_contract.hpp:42
bool multi_tap
Definition graph_timing_contract.hpp:50
Definition graph_timing_contract.hpp:66
int tail_samples
Definition graph_timing_contract.hpp:74
bool scheduling_guaranteed
Definition graph_timing_contract.hpp:76
GraphTimingDisposition disposition
Definition graph_timing_contract.hpp:67
bool runtime_snapshot_available
Definition graph_timing_contract.hpp:78
int semantic_delay_samples
Definition graph_timing_contract.hpp:70
int block_size
Definition graph_timing_contract.hpp:75
int algorithmic_latency_samples
Definition graph_timing_contract.hpp:71
int measured_latency_samples
Definition graph_timing_contract.hpp:69
int partition_size
Definition graph_timing_contract.hpp:73
bool anticipation_required
Definition graph_timing_contract.hpp:77
int host_pdc_samples
Definition graph_timing_contract.hpp:72
int impulse_group_delay_samples
Definition graph_timing_contract.hpp:79
GraphTimingReason reason
Definition graph_timing_contract.hpp:68
Definition graph_timing_contract.hpp:55
int semantic_delay_samples
Definition graph_timing_contract.hpp:60
bool impulse_group_delay_measured
Definition graph_timing_contract.hpp:59
bool algorithmic_latency_measured
Definition graph_timing_contract.hpp:57
int impulse_group_delay_samples
Definition graph_timing_contract.hpp:63
int host_pdc_samples
Definition graph_timing_contract.hpp:62
bool semantic_delay_measured
Definition graph_timing_contract.hpp:56
bool host_pdc_measured
Definition graph_timing_contract.hpp:58
int algorithmic_latency_samples
Definition graph_timing_contract.hpp:61