Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
custom_node_diagnostics.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <array>
4#include <cstddef>
5#include <cstdint>
6#include <span>
7#include <string>
8
9namespace pulp::host {
10
11// These reads are control-thread operations, never audio callback operations.
21enum class CustomNodeDiagnosticConsistency : std::uint8_t {
23 // Caller promises its sole audio process caller is stopped. Worker telemetry
24 // may still advance; this does not certify drain or per-sequence uniqueness.
26};
28 std::uint64_t graph_identity = 0;
29 std::uint64_t graph_generation = 0;
30 std::uint32_t node_id = 0;
31};
43// Sibling registration preserves CustomNodeType's positional aggregate layout.
44// Query callbacks must finish without waiting, allocation or lifecycle mutation.
45// Write an owned trivially-copyable report with memcpy, never a cast of output.
47 static constexpr std::size_t kMaximumReportBytes = 4096;
48 std::string type_id;
49 int type_version = 1;
50 std::uint64_t schema = 0;
51 std::size_t report_bytes = 0;
52 CustomNodeDiagnosticAvailability (*query)(const void* instance, std::span<std::byte> output,
53 std::uint64_t& preparation_generation) noexcept =
54 nullptr;
55 // Wrappers retain the original producer identity while registering an alias.
56 std::string producer_type_id;
58};
59
60} // namespace pulp::host
Bounded event contracts shared by host ingress and graph-authored nodes.
Definition anticipation_eligibility.hpp:9
@ NotPrepared
Definition baked_graph_processor.hpp:70
CustomNodeDiagnosticAvailability
Definition custom_node_diagnostics.hpp:12
@ SchemaMismatch
Definition custom_node_diagnostics.hpp:19
@ Available
Definition custom_node_diagnostics.hpp:13
@ Unsupported
Definition custom_node_diagnostics.hpp:14
@ Busy
Definition custom_node_diagnostics.hpp:18
@ MissingNode
Definition custom_node_diagnostics.hpp:15
@ StaleHandle
Definition custom_node_diagnostics.hpp:16
CustomNodeDiagnosticConsistency
Definition custom_node_diagnostics.hpp:21
@ LiveApproximate
Definition custom_node_diagnostics.hpp:22
@ AudioCallerStopped
Definition custom_node_diagnostics.hpp:25
Definition custom_node_diagnostics.hpp:27
std::uint32_t node_id
Definition custom_node_diagnostics.hpp:30
std::uint64_t graph_identity
Definition custom_node_diagnostics.hpp:28
std::uint64_t graph_generation
Definition custom_node_diagnostics.hpp:29
Definition custom_node_diagnostics.hpp:32
std::uint64_t schema
Definition custom_node_diagnostics.hpp:36
int type_version
Definition custom_node_diagnostics.hpp:38
int producer_type_version
Definition custom_node_diagnostics.hpp:41
CustomNodeDiagnosticAvailability availability
Definition custom_node_diagnostics.hpp:33
CustomNodeDiagnosticConsistency consistency
Definition custom_node_diagnostics.hpp:34
std::array< char, 128 > type_id
Definition custom_node_diagnostics.hpp:39
std::array< char, 128 > producer_type_id
Definition custom_node_diagnostics.hpp:40
std::uint64_t preparation_generation
Definition custom_node_diagnostics.hpp:37
CustomNodeDiagnosticHandle handle
Definition custom_node_diagnostics.hpp:35
Definition custom_node_diagnostics.hpp:46
int type_version
Definition custom_node_diagnostics.hpp:49
std::string type_id
Definition custom_node_diagnostics.hpp:48
std::uint64_t schema
Definition custom_node_diagnostics.hpp:50
std::size_t report_bytes
Definition custom_node_diagnostics.hpp:51
CustomNodeDiagnosticAvailability(* query)(const void *instance, std::span< std::byte > output, std::uint64_t &preparation_generation) noexcept
Definition custom_node_diagnostics.hpp:52
int producer_type_version
Definition custom_node_diagnostics.hpp:57
static constexpr std::size_t kMaximumReportBytes
Definition custom_node_diagnostics.hpp:47
std::string producer_type_id
Definition custom_node_diagnostics.hpp:56