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

Allocation-free block renderer for one prepared track automation program. More...

#include <track_automation_renderer.hpp>

Public Member Functions

 TrackAutomationRenderer (const TrackAutomationRenderer &)=delete
TrackAutomationRenderer & operator= (const TrackAutomationRenderer &)=delete
 TrackAutomationRenderer (TrackAutomationRenderer &&) noexcept=default
TrackAutomationRenderer & operator= (TrackAutomationRenderer &&) noexcept=default
runtime::Result< TrackAutomationRendererAdoption, TrackAutomationRendererError > adopt (std::shared_ptr< const TrackAutomationProgram > program)
 Rebuilds prepared storage while the caller has exclusive access.
TrackAutomationRenderResult process (const TransportSnapshot &transport) noexcept
void reset () noexcept
timeline::ItemId track_id () const noexcept
const std::shared_ptr< const TrackAutomationProgram > & program () const noexcept
const AutomationPlaybackLimits & limits () const noexcept
std::span< const DeviceAutomationBatch > batches () const noexcept

Static Public Member Functions

static runtime::Result< TrackAutomationRenderer, TrackAutomationRendererError > create (std::shared_ptr< const TrackAutomationProgram > program, AutomationPlaybackLimits limits=AutomationPlaybackLimits::platform_defaults())

Static Public Attributes

static constexpr std::size_t kEventsPerDevice
static constexpr audio::RtSafetyClass process_rt_safety_class

Detailed Description

Allocation-free block renderer for one prepared track automation program.

Program adoption is a control-thread operation; it preserves cursor carry for lanes with the same identity and preallocates all block storage.

Constructor & Destructor Documentation

◆ TrackAutomationRenderer() [1/2]

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

◆ TrackAutomationRenderer() [2/2]

pulp::playback::TrackAutomationRenderer::TrackAutomationRenderer ( TrackAutomationRenderer && )
defaultnoexcept

Member Function Documentation

◆ adopt()

runtime::Result< TrackAutomationRendererAdoption, TrackAutomationRendererError > pulp::playback::TrackAutomationRenderer::adopt ( std::shared_ptr< const TrackAutomationProgram > program)

Rebuilds prepared storage while the caller has exclusive access.

A concurrently published renderer must instead be created afresh.

◆ batches()

std::span< const DeviceAutomationBatch > pulp::playback::TrackAutomationRenderer::batches ( ) const
inlinenoexcept

◆ create()

runtime::Result< TrackAutomationRenderer, TrackAutomationRendererError > pulp::playback::TrackAutomationRenderer::create ( std::shared_ptr< const TrackAutomationProgram > program,
AutomationPlaybackLimits limits = AutomationPlaybackLimits::platform_defaults() )
static

◆ limits()

const AutomationPlaybackLimits & pulp::playback::TrackAutomationRenderer::limits ( ) const
inlinenoexcept

◆ operator=() [1/2]

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

◆ operator=() [2/2]

TrackAutomationRenderer & pulp::playback::TrackAutomationRenderer::operator= ( TrackAutomationRenderer && )
defaultnoexcept

◆ process()

TrackAutomationRenderResult pulp::playback::TrackAutomationRenderer::process ( const TransportSnapshot & transport)
noexcept

◆ program()

const std::shared_ptr< const TrackAutomationProgram > & pulp::playback::TrackAutomationRenderer::program ( ) const
inlinenoexcept

◆ reset()

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

◆ track_id()

timeline::ItemId pulp::playback::TrackAutomationRenderer::track_id ( ) const
noexcept

Member Data Documentation

◆ kEventsPerDevice

std::size_t pulp::playback::TrackAutomationRenderer::kEventsPerDevice
staticconstexpr
Initial value:
=
static constexpr std::uint32_t kMaximumEventsPerDevicePerBlock
Definition automation_limits.hpp:18

◆ process_rt_safety_class

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

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