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

Allocation-free linear forward one-shot reader over immutable sample assets. More...

#include <sample_stream_voice_reader.hpp>

Public Member Functions

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

Detailed Description

Allocation-free linear forward one-shot reader over immutable sample assets.

Looping, reverse playback, and crossfade-region planning are separate policies.

Member Function Documentation

◆ enqueue_demands()

template<std::size_t InboxCapacity>
SampleStreamVoiceDemandEnqueueResult pulp::audio::SampleStreamVoiceReader::enqueue_demands ( const SampleStreamVoiceBlockPlan & plan,
SampleStreamCommandInbox< InboxCapacity > & inbox,
std::uint32_t start_index = 0 ) const
inlinenoexcept

◆ plan_block() [1/2]

SampleStreamVoiceBlockPlan pulp::audio::SampleStreamVoiceReader::plan_block ( const SampleAssetView & asset,
std::uint32_t output_frames,
double source_frames_per_output,
double output_sample_rate ) const
inlinenoexcept

◆ plan_block() [2/2]

SampleStreamVoiceBlockPlan pulp::audio::SampleStreamVoiceReader::plan_block ( const SampleAssetView & asset,
std::uint32_t output_frames,
double source_frames_per_output,
double output_sample_rate,
SampleStreamConsumptionDeclaration consumption ) const
inlinenoexcept

◆ prepare()

bool pulp::audio::SampleStreamVoiceReader::prepare ( const SampleAssetView & asset,
SampleStreamRequesterToken requester,
SampleStarvationEnvelopeConfig starvation = kDefaultSampleStarvationEnvelopeConfig )
inlinenoexcept

◆ render_block()

SampleStreamVoiceBlockResult pulp::audio::SampleStreamVoiceReader::render_block ( const SampleAssetView & asset,
const SampleStreamVoiceBlockPlan & plan,
BufferView< float > destination )
inlinenoexcept

◆ reset()

void pulp::audio::SampleStreamVoiceReader::reset ( )
inlinenoexcept

◆ seek()

bool pulp::audio::SampleStreamVoiceReader::seek ( const SampleAssetView & asset,
double source_frame )
inlinenoexcept

◆ source_position()

double pulp::audio::SampleStreamVoiceReader::source_position ( ) const
inlinenoexcept

◆ starvation_mode()

SampleStarvationMode pulp::audio::SampleStreamVoiceReader::starvation_mode ( ) const
inlinenoexcept

◆ starvation_stats()

SampleStarvationEnvelopeStats pulp::audio::SampleStreamVoiceReader::starvation_stats ( ) const
inlinenoexcept

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