Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::playback::ProgramWireAutomationConsumer Class Reference

Allocation-free automation consumer over one uniquely pinned wire payload. More...

#include <program_wire.hpp>

Public Member Functions

 ProgramWireAutomationConsumer (std::span< ProgramWireLaneState > lane_state, std::size_t track_capacity, std::size_t wire_byte_capacity) noexcept
 ProgramWireAutomationConsumer (std::span< ProgramWireLaneState > lane_state, std::size_t track_capacity) noexcept
 ProgramWireAutomationConsumer (std::span< ProgramWireLaneState > lane_state) noexcept
 ProgramWireAutomationConsumer (const ProgramWireAutomationConsumer &)=delete
ProgramWireAutomationConsumer & operator= (const ProgramWireAutomationConsumer &)=delete
ProgramWireAdoptionResult adopt (ProgramWireBytePin candidate, const timebase::CompiledTempoMap &tempo_map, std::span< const timebase::TempoPoint > tempo_points) noexcept
ProgramWireAutomationRenderResult render (const TransportSnapshot &transport, std::span< ProgramWireAutomationLaneOutput > output) noexcept
std::span< const std::byte > active_bytes () const noexcept
std::size_t lane_count () const noexcept

Static Public Attributes

static constexpr std::size_t kDefaultWireByteCapacity = 16u * 1'024u * 1'024u

Detailed Description

Allocation-free automation consumer over one uniquely pinned wire payload.

Adoption validates the exact prepared tempo-map identity and commits only after every lane and ceiling has passed. Rendering delegates to the same AutomationCursor algorithm used by direct PlaybackProgram consumers.

Constructor & Destructor Documentation

◆ ProgramWireAutomationConsumer() [1/4]

pulp::playback::ProgramWireAutomationConsumer::ProgramWireAutomationConsumer ( std::span< ProgramWireLaneState > lane_state,
std::size_t track_capacity,
std::size_t wire_byte_capacity )
inlineexplicitnoexcept

◆ ProgramWireAutomationConsumer() [2/4]

pulp::playback::ProgramWireAutomationConsumer::ProgramWireAutomationConsumer ( std::span< ProgramWireLaneState > lane_state,
std::size_t track_capacity )
inlineexplicitnoexcept

◆ ProgramWireAutomationConsumer() [3/4]

pulp::playback::ProgramWireAutomationConsumer::ProgramWireAutomationConsumer ( std::span< ProgramWireLaneState > lane_state)
inlineexplicitnoexcept

◆ ProgramWireAutomationConsumer() [4/4]

pulp::playback::ProgramWireAutomationConsumer::ProgramWireAutomationConsumer ( const ProgramWireAutomationConsumer & )
delete

Member Function Documentation

◆ active_bytes()

std::span< const std::byte > pulp::playback::ProgramWireAutomationConsumer::active_bytes ( ) const
inlinenoexcept

◆ adopt()

ProgramWireAdoptionResult pulp::playback::ProgramWireAutomationConsumer::adopt ( ProgramWireBytePin candidate,
const timebase::CompiledTempoMap & tempo_map,
std::span< const timebase::TempoPoint > tempo_points )
noexcept

◆ lane_count()

std::size_t pulp::playback::ProgramWireAutomationConsumer::lane_count ( ) const
inlinenoexcept

◆ operator=()

ProgramWireAutomationConsumer & pulp::playback::ProgramWireAutomationConsumer::operator= ( const ProgramWireAutomationConsumer & )
delete

◆ render()

ProgramWireAutomationRenderResult pulp::playback::ProgramWireAutomationConsumer::render ( const TransportSnapshot & transport,
std::span< ProgramWireAutomationLaneOutput > output )
noexcept

Member Data Documentation

◆ kDefaultWireByteCapacity

std::size_t pulp::playback::ProgramWireAutomationConsumer::kDefaultWireByteCapacity = 16u * 1'024u * 1'024u
staticconstexpr

The documentation for this class was generated from the following file:
  • /home/runner/work/pulp/pulp/core/playback/include/pulp/playback/program_wire.hpp