|
| bool | prepare (const SampleAssetView &asset, SampleStreamRequesterToken requester, const LoopRegion ®ion, double playback_rate) noexcept |
| bool | prepare (const SampleAssetView &asset, SampleStreamRequesterToken requester, const LoopRegion ®ion, double playback_rate, SampleInterpolationPolicy interpolation) noexcept |
| bool | prepare (const SampleAssetView &asset, SampleStreamRequesterToken requester, const LoopRegion ®ion, double playback_rate, const PreparedSampleInterpolation &interpolation, SampleStarvationEnvelopeConfig starvation=kDefaultSampleStarvationEnvelopeConfig) noexcept |
| void | reset () noexcept |
| bool | set_playback_rate (double playback_rate) noexcept |
| bool | set_playback_rate (const SampleAssetView &asset, double playback_rate) noexcept |
| bool | set_interpolation (const SampleAssetView &asset, const PreparedSampleInterpolation &interpolation) noexcept |
| const LoopPlaybackCursor & | cursor () const noexcept |
| const PreparedSampleInterpolation & | interpolation () const noexcept |
| bool | active () const noexcept |
| SampleStarvationMode | starvation_mode () const noexcept |
| SampleStarvationEnvelopeStats | starvation_stats () const noexcept |
| void | mark_held_starvation (std::uint64_t frames) noexcept |
| | Records an externally held all-silent block without advancing the cursor.
|
| bool | synchronize_cursor (const SampleAssetView &asset, const LoopPlaybackCursor &cursor) noexcept |
| SampleStreamLoopBlockPlan | plan_block (const SampleAssetView &asset, std::uint32_t output_frames, double output_sample_rate, SampleStreamDemandClass demand_class=SampleStreamDemandClass::Sustain) const noexcept |
| SampleStreamLoopBlockPlan | plan_block (const SampleAssetView &asset, std::uint32_t output_frames, double output_sample_rate, SampleStreamConsumptionDeclaration consumption, SampleStreamDemandClass demand_class=SampleStreamDemandClass::Sustain) const noexcept |
| template<std::size_t InboxCapacity> |
| SampleStreamVoiceDemandEnqueueResult | enqueue_demands (const SampleStreamLoopBlockPlan &plan, SampleStreamCommandInbox< InboxCapacity > &inbox, std::uint32_t start_index=0, std::uint64_t resident_source_frame_offset=0, std::uint32_t end_index=std::numeric_limits< std::uint32_t >::max()) const noexcept |
| bool | commit_planned_timeline (const SampleAssetView &asset, const SampleStreamLoopBlockPlan &plan) noexcept |
| SampleStreamVoiceBlockResult | render_block (const SampleAssetView &asset, const SampleStreamLoopBlockPlan &plan, BufferView< float > destination) noexcept |
Allocation-free paged adapter for LoopPlaybackCursor.
Planning snapshots all pages needed by primary, interpolation, and wrap-crossfade reads; rendering then replays the same cursor state and advances the musical timeline even when a page is missing.