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

Immutable compiler-supplied grouping of one track's compiled automation lanes. More...

#include <track_automation_program.hpp>

Public Member Functions

timeline::ItemId track_id () const noexcept
const timebase::CompiledTempoMap & tempo_map () const noexcept
const std::shared_ptr< const timebase::CompiledTempoMap > & tempo_map_owner () const noexcept
std::span< const std::shared_ptr< const AutomationProgram > > programs () const noexcept
const AutomationProgram * find_lane (timeline::ItemId lane_id) const noexcept

Static Public Member Functions

static runtime::Result< std::shared_ptr< const TrackAutomationProgram >, TrackAutomationProgramError > create (timeline::ItemId track_id, std::shared_ptr< const timebase::CompiledTempoMap > tempo_map, std::vector< std::shared_ptr< const AutomationProgram > > programs)

Friends

class detail::TrackAutomationCompiler

Detailed Description

Immutable compiler-supplied grouping of one track's compiled automation lanes.

This type validates the grouping but does not prove document attachment. Programs are canonicalized by lane identity while retaining their exact owners, so a rebuilt aggregate can reuse unchanged lane generations and instance tokens.

Member Function Documentation

◆ create()

runtime::Result< std::shared_ptr< const TrackAutomationProgram >, TrackAutomationProgramError > pulp::playback::TrackAutomationProgram::create ( timeline::ItemId track_id,
std::shared_ptr< const timebase::CompiledTempoMap > tempo_map,
std::vector< std::shared_ptr< const AutomationProgram > > programs )
static

◆ find_lane()

const AutomationProgram * pulp::playback::TrackAutomationProgram::find_lane ( timeline::ItemId lane_id) const
noexcept

◆ programs()

std::span< const std::shared_ptr< const AutomationProgram > > pulp::playback::TrackAutomationProgram::programs ( ) const
inlinenoexcept

◆ tempo_map()

const timebase::CompiledTempoMap & pulp::playback::TrackAutomationProgram::tempo_map ( ) const
inlinenoexcept

◆ tempo_map_owner()

const std::shared_ptr< const timebase::CompiledTempoMap > & pulp::playback::TrackAutomationProgram::tempo_map_owner ( ) const
inlinenoexcept

◆ track_id()

timeline::ItemId pulp::playback::TrackAutomationProgram::track_id ( ) const
inlinenoexcept

◆ detail::TrackAutomationCompiler

friend class detail::TrackAutomationCompiler
friend

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