Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
graph_event_contract.hpp File Reference
#include <pulp/midi/buffer.hpp>
#include <pulp/midi/mpe_buffer.hpp>
#include <pulp/midi/ump_buffer.hpp>
#include <algorithm>
#include <array>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <span>

Go to the source code of this file.

Classes

struct  pulp::host::HostEventRecord
 One immutable host event in the graph's epoch-local sample domain. More...
class  pulp::host::HostEventIngress< Capacity >
 Fixed-capacity host ingress staging area. More...
struct  pulp::host::GraphAuthoredEvent
struct  pulp::host::GraphEventCounters
class  pulp::host::GraphAuthoredEventLane< MaxFrames, MaxAcceptedPerSample >
 Explicit producer/consumer phases for a bounded, single-producer event lane. More...

Namespaces

namespace  pulp
namespace  pulp::host
 Bounded event contracts shared by host ingress and graph-authored nodes.
namespace  pulp::host::detail

Enumerations

enum class  pulp::host::HostEventResult : std::uint8_t {
  pulp::host::Accepted , pulp::host::StaleEpoch , pulp::host::Unbound , pulp::host::OutOfRange ,
  pulp::host::Late , pulp::host::Overflow , pulp::host::InvalidSequence , pulp::host::OutputCapacity ,
  pulp::host::Busy
}
enum class  pulp::host::GraphEventResult : std::uint8_t {
  pulp::host::Accepted , pulp::host::StaleEpoch , pulp::host::Unbound , pulp::host::OutOfRange ,
  pulp::host::Future , pulp::host::Late , pulp::host::Overflow , pulp::host::AttemptLimit ,
  pulp::host::InvalidPhase , pulp::host::Busy
}

Functions

HostEventResult pulp::host::derive_mpe (std::span< const HostEventRecord > events, std::uint64_t block_start, midi::MpeVoiceTracker &tracker, midi::MpeBuffer &out) noexcept
 Convert projected records to the existing MPE sidecar.
HostEventResult pulp::host::project_host_event_block (std::span< const HostEventRecord > records, std::uint64_t block_start, std::size_t frames, midi::MidiBuffer &midi_out, midi::MpeVoiceTracker *tracker=nullptr, midi::MpeBuffer *mpe_out=nullptr) noexcept
 Project an already-sorted absolute host-event block into the fixed MIDI, UMP, and optional MPE sidecars consumed by SignalGraph's existing ingress mailbox.