|
| bool | prepare (const SampleAssetView &asset, SampleStreamRequesterToken requester, SampleStarvationEnvelopeConfig starvation=kDefaultSampleStarvationEnvelopeConfig) noexcept |
| void | reset () noexcept |
| bool | seek (const SampleAssetView &asset, double source_frame) noexcept |
| double | source_position () const noexcept |
| SampleStarvationMode | starvation_mode () const noexcept |
| SampleStarvationEnvelopeStats | starvation_stats () const noexcept |
| SampleStreamVoiceBlockPlan | plan_block (const SampleAssetView &asset, std::uint32_t output_frames, double source_frames_per_output, double output_sample_rate) const noexcept |
| SampleStreamVoiceBlockPlan | plan_block (const SampleAssetView &asset, std::uint32_t output_frames, double source_frames_per_output, double output_sample_rate, SampleStreamConsumptionDeclaration consumption) const noexcept |
| template<std::size_t InboxCapacity> |
| SampleStreamVoiceDemandEnqueueResult | enqueue_demands (const SampleStreamVoiceBlockPlan &plan, SampleStreamCommandInbox< InboxCapacity > &inbox, std::uint32_t start_index=0) const noexcept |
| SampleStreamVoiceBlockResult | render_block (const SampleAssetView &asset, const SampleStreamVoiceBlockPlan &plan, BufferView< float > destination) noexcept |
Allocation-free linear forward one-shot reader over immutable sample assets.
Looping, reverse playback, and crossfade-region planning are separate policies.