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 |
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.
| pulp::playback::RealtimeStretchStateBank::RealtimeStretchStateBank | ( | ) |
| pulp::playback::RealtimeStretchStateBank::~RealtimeStretchStateBank | ( | ) |
|
noexcept |
|
delete |
|
noexcept |
|
delete |
|
noexcept |
| RealtimeStretchStateBankAdmission pulp::playback::RealtimeStretchStateBank::prepare | ( | std::span< const RealtimeStretchStateSpec > | specs, |
| double | sample_rate, | ||
| std::uint32_t | maximum_block_frames, | ||
| const AudioRendererLimits & | limits ) |
|
inlinenoexcept |
|
noexcept |
|
inlinenoexcept |
|
noexcept |