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

Off-audio-thread owner for immutable sampler metadata and resident preload. More...

#include <sample_asset.hpp>

Public Member Functions

 SampleAsset ()=default
 SampleAsset (const SampleAsset &)=delete
SampleAsset & operator= (const SampleAsset &)=delete
 SampleAsset (SampleAsset &&)=delete
SampleAsset & operator= (SampleAsset &&)=delete
template<typename SampleType>
bool prepare (const SampleAssetConfig &config, BufferView< SampleType > preload)
bool prepare_owned (const SampleAssetConfig &config, Buffer< float > preload, SampleMemoryLease preload_lease)
 Takes ownership of an already-filled preload without allocating and copying a second planar sample store.
void release () noexcept
bool prepared () const noexcept
SampleAssetView view () const noexcept

Detailed Description

Off-audio-thread owner for immutable sampler metadata and resident preload.

prepare() copies the preload and fixes its channel pointers. Destructive prepare/release is only valid after all borrowed SampleAssetView readers are quiescent.

Constructor & Destructor Documentation

◆ SampleAsset() [1/3]

pulp::audio::SampleAsset::SampleAsset ( )
default

◆ SampleAsset() [2/3]

pulp::audio::SampleAsset::SampleAsset ( const SampleAsset & )
delete

◆ SampleAsset() [3/3]

pulp::audio::SampleAsset::SampleAsset ( SampleAsset && )
delete

Member Function Documentation

◆ operator=() [1/2]

SampleAsset & pulp::audio::SampleAsset::operator= ( const SampleAsset & )
delete

◆ operator=() [2/2]

SampleAsset & pulp::audio::SampleAsset::operator= ( SampleAsset && )
delete

◆ prepare()

template<typename SampleType>
bool pulp::audio::SampleAsset::prepare ( const SampleAssetConfig & config,
BufferView< SampleType > preload )
inline

◆ prepare_owned()

bool pulp::audio::SampleAsset::prepare_owned ( const SampleAssetConfig & config,
Buffer< float > preload,
SampleMemoryLease preload_lease )
inline

Takes ownership of an already-filled preload without allocating and copying a second planar sample store.

The preload lease must account for exactly this buffer in the shared sampler-memory governor.

◆ prepared()

bool pulp::audio::SampleAsset::prepared ( ) const
inlinenoexcept

◆ release()

void pulp::audio::SampleAsset::release ( )
inlinenoexcept

◆ view()

SampleAssetView pulp::audio::SampleAsset::view ( ) const
inlinenoexcept

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