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

#include <program.hpp>

Public Member Functions

timeline::ItemId id () const noexcept
ProgramGeneration generation () const noexcept
ProviderSelectorProgram provider () const noexcept
RendererStatePolicy state_policy () const noexcept
RendererStatePolicy requested_state_policy () const noexcept
 The control-thread policy before registered arrangement content widens it to Stateless.
const timeline::ProductionDeclaration & arrangement_production () const noexcept
std::span< const timeline::ItemId > ordered_clip_ids () const noexcept
std::span< const NoteProgramEvent > arrangement_note_events () const noexcept
std::span< const ControllerProgramEvent > arrangement_controller_events () const noexcept
 Controller and expression values in controller_program_event_less order.
std::span< const CompiledNoteModifier > note_modifiers () const noexcept
 Sorted by note id. Empty for a track whose notes all play by default.
const AudioTrackRendererProgram * audio_program () const noexcept
std::span< const timeline::ItemId > ordered_device_placement_ids () const noexcept
const TrackAutomationProgram * automation_program () const noexcept
const std::shared_ptr< const TrackAutomationProgram > & automation_program_owner () const noexcept
std::uint64_t expanded_clip_count () const noexcept
std::uint64_t expanded_note_event_count () const noexcept
std::uint64_t generated_id_count () const noexcept
std::uint64_t generated_id_start () const noexcept
const TrackMixerProgram & mixer () const noexcept
 The track's own level and stereo placement, with any lanes that automate them already resolved.

Friends

class ProgramCompilerTask

Member Function Documentation

◆ arrangement_controller_events()

std::span< const ControllerProgramEvent > pulp::playback::TrackProgram::arrangement_controller_events ( ) const
inlinenoexcept

Controller and expression values in controller_program_event_less order.

Empty for a track that authors no lanes, so an arrangement without controllers pays one empty-span check and carries no data.

This is the surface a host or a Forge node consumes to reproduce the authored streams: every event carries its own wire address and its authored provenance, so no side table is needed to interpret it.

◆ arrangement_note_events()

std::span< const NoteProgramEvent > pulp::playback::TrackProgram::arrangement_note_events ( ) const
inlinenoexcept

◆ arrangement_production()

const timeline::ProductionDeclaration & pulp::playback::TrackProgram::arrangement_production ( ) const
inlinenoexcept

◆ audio_program()

const AudioTrackRendererProgram * pulp::playback::TrackProgram::audio_program ( ) const
inlinenoexcept

◆ automation_program()

const TrackAutomationProgram * pulp::playback::TrackProgram::automation_program ( ) const
inlinenoexcept

◆ automation_program_owner()

const std::shared_ptr< const TrackAutomationProgram > & pulp::playback::TrackProgram::automation_program_owner ( ) const
inlinenoexcept

◆ expanded_clip_count()

std::uint64_t pulp::playback::TrackProgram::expanded_clip_count ( ) const
inlinenoexcept

◆ expanded_note_event_count()

std::uint64_t pulp::playback::TrackProgram::expanded_note_event_count ( ) const
inlinenoexcept

◆ generated_id_count()

std::uint64_t pulp::playback::TrackProgram::generated_id_count ( ) const
inlinenoexcept

◆ generated_id_start()

std::uint64_t pulp::playback::TrackProgram::generated_id_start ( ) const
inlinenoexcept

◆ generation()

ProgramGeneration pulp::playback::TrackProgram::generation ( ) const
inlinenoexcept

◆ id()

timeline::ItemId pulp::playback::TrackProgram::id ( ) const
inlinenoexcept

◆ mixer()

const TrackMixerProgram & pulp::playback::TrackProgram::mixer ( ) const
inlinenoexcept

The track's own level and stereo placement, with any lanes that automate them already resolved.

Borrows from automation_program_, which this program holds alive.

◆ note_modifiers()

std::span< const CompiledNoteModifier > pulp::playback::TrackProgram::note_modifiers ( ) const
inlinenoexcept

Sorted by note id. Empty for a track whose notes all play by default.

◆ ordered_clip_ids()

std::span< const timeline::ItemId > pulp::playback::TrackProgram::ordered_clip_ids ( ) const
inlinenoexcept

◆ ordered_device_placement_ids()

std::span< const timeline::ItemId > pulp::playback::TrackProgram::ordered_device_placement_ids ( ) const
inlinenoexcept

◆ provider()

ProviderSelectorProgram pulp::playback::TrackProgram::provider ( ) const
inlinenoexcept

◆ requested_state_policy()

RendererStatePolicy pulp::playback::TrackProgram::requested_state_policy ( ) const
inlinenoexcept

The control-thread policy before registered arrangement content widens it to Stateless.

Kept separately so removing a Reset renderer can relax the effective policy again on the next compile.

◆ state_policy()

RendererStatePolicy pulp::playback::TrackProgram::state_policy ( ) const
inlinenoexcept

◆ ProgramCompilerTask

friend class ProgramCompilerTask
friend

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