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

Control-thread-prepared bank of clip-keyed realtime stretch processors. More...

#include <realtime_stretch_state_bank.hpp>

Public Member Functions

 RealtimeStretchStateBank ()
 ~RealtimeStretchStateBank ()
 RealtimeStretchStateBank (RealtimeStretchStateBank &&) noexcept
RealtimeStretchStateBank & operator= (RealtimeStretchStateBank &&) noexcept
 RealtimeStretchStateBank (const RealtimeStretchStateBank &)=delete
RealtimeStretchStateBank & operator= (const RealtimeStretchStateBank &)=delete
RealtimeStretchStateBankAdmission prepare (std::span< const RealtimeStretchStateSpec > specs, double sample_rate, std::uint32_t maximum_block_frames, const AudioRendererLimits &limits)
audio::RealtimeTimeStretchProcessor * state_for_epoch (timeline::ItemId clip_id, std::uint64_t playback_epoch) noexcept
const audio::RealtimeTimeStretchProcessor * find (timeline::ItemId clip_id) const noexcept
void reset () noexcept
std::size_t size () const noexcept
std::uint64_t reserved_state_bytes () const noexcept

Detailed Description

Control-thread-prepared bank of clip-keyed realtime stretch processors.

prepare() is transactional: it prepares a complete candidate and swaps it into service only after every state succeeds. state_for_epoch() and reset() are allocation-free and intended for the audio thread.

With exceptions enabled, allocation failures preserve the live bank and return AllocationFailed. In no-exception builds the standard containers' OOM behavior is process termination; prepare cannot report allocation failure because the allocator provides no recoverable failure channel.

Constructor & Destructor Documentation

◆ RealtimeStretchStateBank() [1/3]

pulp::playback::RealtimeStretchStateBank::RealtimeStretchStateBank ( )

◆ ~RealtimeStretchStateBank()

pulp::playback::RealtimeStretchStateBank::~RealtimeStretchStateBank ( )

◆ RealtimeStretchStateBank() [2/3]

pulp::playback::RealtimeStretchStateBank::RealtimeStretchStateBank ( RealtimeStretchStateBank && )
noexcept

◆ RealtimeStretchStateBank() [3/3]

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

Member Function Documentation

◆ find()

const audio::RealtimeTimeStretchProcessor * pulp::playback::RealtimeStretchStateBank::find ( timeline::ItemId clip_id) const
noexcept

◆ operator=() [1/2]

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

◆ operator=() [2/2]

RealtimeStretchStateBank & pulp::playback::RealtimeStretchStateBank::operator= ( RealtimeStretchStateBank && )
noexcept

◆ prepare()

RealtimeStretchStateBankAdmission pulp::playback::RealtimeStretchStateBank::prepare ( std::span< const RealtimeStretchStateSpec > specs,
double sample_rate,
std::uint32_t maximum_block_frames,
const AudioRendererLimits & limits )

◆ reserved_state_bytes()

std::uint64_t pulp::playback::RealtimeStretchStateBank::reserved_state_bytes ( ) const
inlinenoexcept

◆ reset()

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

◆ size()

std::size_t pulp::playback::RealtimeStretchStateBank::size ( ) const
inlinenoexcept

◆ state_for_epoch()

audio::RealtimeTimeStretchProcessor * pulp::playback::RealtimeStretchStateBank::state_for_epoch ( timeline::ItemId clip_id,
std::uint64_t playback_epoch )
noexcept

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