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

Allocation-free renderer for one immutable AutomationProgram. More...

#include <automation_cursor.hpp>

Public Member Functions

AutomationCursorResult process (const AutomationProgram &program, const TransportSnapshot &transport, std::span< AutomationBlockEvent > output, std::uint32_t max_intersecting_segments=std::numeric_limits< std::uint32_t >::max()) noexcept
AutomationCursorResult process (const AutomationProgramView &program, const TransportSnapshot &transport, std::span< AutomationBlockEvent > output, std::uint32_t max_intersecting_segments=std::numeric_limits< std::uint32_t >::max()) noexcept
void reset () noexcept
timeline::ItemId active_lane_id () const noexcept
ProgramGeneration active_generation () const noexcept

Static Public Attributes

static constexpr audio::RtSafetyClass process_rt_safety_class

Detailed Description

Allocation-free renderer for one immutable AutomationProgram.

The caller owns the output budget and routes the resulting plain-domain control points. A non-seed point describes the transition from the preceding emitted point in the same transport range. process() may use the span as bounded scratch; only its first emitted_events entries are defined when the call returns.

Member Function Documentation

◆ active_generation()

ProgramGeneration pulp::playback::AutomationCursor::active_generation ( ) const
inlinenoexcept

◆ active_lane_id()

timeline::ItemId pulp::playback::AutomationCursor::active_lane_id ( ) const
inlinenoexcept

◆ process() [1/2]

AutomationCursorResult pulp::playback::AutomationCursor::process ( const AutomationProgram & program,
const TransportSnapshot & transport,
std::span< AutomationBlockEvent > output,
std::uint32_t max_intersecting_segments = std::numeric_limits< std::uint32_t >::max() )
noexcept

◆ process() [2/2]

AutomationCursorResult pulp::playback::AutomationCursor::process ( const AutomationProgramView & program,
const TransportSnapshot & transport,
std::span< AutomationBlockEvent > output,
std::uint32_t max_intersecting_segments = std::numeric_limits< std::uint32_t >::max() )
noexcept

◆ reset()

void pulp::playback::AutomationCursor::reset ( )
noexcept

Member Data Documentation

◆ process_rt_safety_class

audio::RtSafetyClass pulp::playback::AutomationCursor::process_rt_safety_class
staticconstexpr
Initial value:

The documentation for this class was generated from the following file: