102 if (
byte < 0x20 ||
byte == 0x7f)
104 const auto wet_dry = std::bit_cast<float>(
wet_dry_bits);
105 return std::isfinite(wet_dry) && wet_dry >= 0.0f && wet_dry <= 1.0f;
DeviceSlotKind
Static signal-domain contract of one device slot.
Definition device_placement.hpp:29
DeviceChainPosition
Authored position of a device relative to the track fader.
Definition device_placement.hpp:21
DeviceKind
Format-neutral namespace of a durable device binding key.
Definition device_placement.hpp:39
constexpr std::size_t kMaximumDeviceBindingKeyBytes
Maximum UTF-8 byte length of a durable binding key.
Definition device_placement.hpp:51
@ AudioToAudio
Accepts audio and emits audio.
Definition device_placement.hpp:35
@ EventToEvent
Accepts events and emits events.
Definition device_placement.hpp:31
@ EventToAudio
Accepts events and emits audio.
Definition device_placement.hpp:33
@ PostFader
Runs after the authored track fader.
Definition device_placement.hpp:25
@ PreFader
Runs before the authored track fader.
Definition device_placement.hpp:23
@ Unresolved
Has no resolver binding yet.
Definition device_placement.hpp:41
@ Generated
Resolves through a generated-device namespace.
Definition device_placement.hpp:47
@ External
Resolves through an external device namespace.
Definition device_placement.hpp:45
@ BuiltIn
Resolves through Pulp's built-in device namespace.
Definition device_placement.hpp:43
@ External
Resolve the bytes outside the project package.
Definition assets.hpp:48
Definition program_compiler.hpp:18
Authored device configuration excluding placement identity and opaque state.
Definition device_placement.hpp:54
std::uint32_t wet_dry_bits
Exact IEEE-754 binary32 bits for the canonical [0, 1] wet fraction.
Definition device_placement.hpp:66
DeviceKind device_kind
Namespace used to interpret binding_key.
Definition device_placement.hpp:60
bool bypassed
Whether playback bypasses this declaration.
Definition device_placement.hpp:64
std::string binding_key
Format-neutral resolver key; empty only for Unresolved.
Definition device_placement.hpp:62
auto operator<=>(const DeviceConfiguration &) const =default
bool valid() const noexcept
Returns whether enums, binding key, and wet/dry value are canonical.
Definition device_placement.hpp:69
DeviceChainPosition position
Authored position relative to the track fader.
Definition device_placement.hpp:56
DeviceSlotKind slot_kind
Static input/output signal-domain contract.
Definition device_placement.hpp:58
Durable declaration for one logical placement in a Track device chain.
Definition device_placement.hpp:117
std::optional< ContentHash > state_ref
Optional content identity of opaque device state.
Definition device_placement.hpp:122
DeviceConfiguration configuration
Authored resolver and signal-domain declaration.
Definition device_placement.hpp:120
auto operator<=>(const DevicePlacement &) const =default
ItemId id
Definition device_placement.hpp:118
bool valid() const noexcept
Returns whether identity, declaration, and optional state hash are valid.
Definition device_placement.hpp:125
Nonzero monotonic identity for a Timeline-owned object.
Definition item_id.hpp:19