Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
bounded_delay_descriptor.hpp
Go to the documentation of this file.
1#pragma once
2
4
5#include <cstdint>
6#include <string>
7
8namespace pulp::host {
9
10class SignalGraph;
11
12enum class BoundedDelayKind : std::uint8_t {
16};
17
26
38
40 static constexpr const char* kTypeId = "pulp.dspx02.bounded-delay";
41 static constexpr int kVersion = 1;
42 static constexpr std::uint32_t kMaxDelaySamples = 65535;
43 static constexpr std::uint32_t kMaxStateBytes = 1u << 20;
44
47 std::uint32_t delay_samples = 1;
48 std::uint32_t minimum_delay_samples = 0;
50 std::uint32_t tap_count = 1;
52
54 bool is_supported() const noexcept {
56 }
57};
58
62
63// Builds the graph custom-node identity. The descriptor is validated before
64// any callbacks or state are allocated.
66 BoundedDelayRegistration& registration);
67
68// Registers the canonical graph descriptor and makes it reachable through
69// SignalGraph::add_custom_node(kTypeId, kVersion).
71 const BoundedDelayDescriptor& descriptor);
72
73} // 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
@ None
Definition anticipation_eligibility.hpp:22
BoundedDelayRefusalReason
Definition bounded_delay_descriptor.hpp:27
@ UnsupportedKind
Definition bounded_delay_descriptor.hpp:29
@ StateBudgetExceeded
Definition bounded_delay_descriptor.hpp:34
@ RegistrationRejected
Definition bounded_delay_descriptor.hpp:36
@ None
Definition bounded_delay_descriptor.hpp:28
@ ArithmeticOverflow
Definition bounded_delay_descriptor.hpp:35
@ UnsupportedInterpolation
Definition bounded_delay_descriptor.hpp:30
@ InvalidDelayBounds
Definition bounded_delay_descriptor.hpp:31
@ DelayOutOfBounds
Definition bounded_delay_descriptor.hpp:32
@ InvalidTapCount
Definition bounded_delay_descriptor.hpp:33
BoundedDelayKind
Definition bounded_delay_descriptor.hpp:12
@ Fractional
Definition bounded_delay_descriptor.hpp:14
@ Integer
Definition bounded_delay_descriptor.hpp:13
@ MultiTap
Definition bounded_delay_descriptor.hpp:15
BoundedDelayRefusalReason register_bounded_delay(SignalGraph &graph, const BoundedDelayDescriptor &descriptor)
BoundedDelayRefusalReason make_bounded_delay_registration(const BoundedDelayDescriptor &descriptor, BoundedDelayRegistration &registration)
BoundedDelayInterpolation
Definition bounded_delay_descriptor.hpp:18
@ Hermite4
Definition bounded_delay_descriptor.hpp:24
@ Lagrange3
Definition bounded_delay_descriptor.hpp:21
@ Linear
Definition bounded_delay_descriptor.hpp:20
@ None
Definition bounded_delay_descriptor.hpp:19
@ Thiran1
Definition bounded_delay_descriptor.hpp:23
@ Lagrange5
Definition bounded_delay_descriptor.hpp:22
Definition bounded_delay_descriptor.hpp:39
static constexpr const char * kTypeId
Definition bounded_delay_descriptor.hpp:40
static constexpr int kVersion
Definition bounded_delay_descriptor.hpp:41
std::uint32_t minimum_delay_samples
Definition bounded_delay_descriptor.hpp:48
std::uint32_t tap_count
Definition bounded_delay_descriptor.hpp:50
std::uint32_t maximum_delay_samples
Definition bounded_delay_descriptor.hpp:49
BoundedDelayInterpolation interpolation
Definition bounded_delay_descriptor.hpp:46
std::uint32_t delay_samples
Definition bounded_delay_descriptor.hpp:47
BoundedDelayRefusalReason validate() const noexcept
std::uint32_t state_budget_bytes
Definition bounded_delay_descriptor.hpp:51
BoundedDelayKind kind
Definition bounded_delay_descriptor.hpp:45
bool is_supported() const noexcept
Definition bounded_delay_descriptor.hpp:54
static constexpr std::uint32_t kMaxDelaySamples
Definition bounded_delay_descriptor.hpp:42
static constexpr std::uint32_t kMaxStateBytes
Definition bounded_delay_descriptor.hpp:43
Definition bounded_delay_descriptor.hpp:59
CustomNodeType custom_type
Definition bounded_delay_descriptor.hpp:60
Definition custom_node_type.hpp:90