Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity > Class Template Reference

Fixed-storage owner/worker decode pool. More...

#include <sample_stream_decode_pool.hpp>

Public Member Functions

 SampleStreamDecodePool ()=default
 ~SampleStreamDecodePool ()
 SampleStreamDecodePool (const SampleStreamDecodePool &)=delete
SampleStreamDecodePool & operator= (const SampleStreamDecodePool &)=delete
bool prepare (const SampleStreamDecodePoolConfig &config)
void release () noexcept
bool prepared () const noexcept
std::uint32_t worker_count () const noexcept
std::uint32_t source_capacity () const noexcept
std::uint64_t reserved_scratch_samples () const noexcept
SampleStreamDecodeSourceAddResult add_source (SampleStreamSourceToken token, std::uint32_t channels, FrameReader reader)
SampleStreamDecodeSourceAddResult add_source (SampleStreamSourceToken token, std::uint32_t channels, FrameReaderBinding binding)
SampleStreamDecodeSubmitStatus submit (const SampleStreamDecodeJob &job) noexcept
SampleStreamDecodeCancelStatus cancel_source (SampleStreamSourceToken token) noexcept
bool remove_idle_source (SampleStreamSourceToken token) noexcept
std::optional< SampleStreamDecodeCompletionView > try_pop_completion (std::uint32_t worker_index) noexcept
std::optional< SampleStreamDecodeCompletionView > wait_pop_completion (std::uint32_t worker_index) noexcept
bool release_completion (const SampleStreamDecodeCompletion &completion) noexcept
SampleStreamDecodePoolTelemetry telemetry () const noexcept

Detailed Description

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
class pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >

Fixed-storage owner/worker decode pool.

Its public methods are control- or service-thread operations; none are audio-callback APIs.

Constructor & Destructor Documentation

◆ SampleStreamDecodePool() [1/2]

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::SampleStreamDecodePool ( )
default

◆ ~SampleStreamDecodePool()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::~SampleStreamDecodePool ( )
inline

◆ SampleStreamDecodePool() [2/2]

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::SampleStreamDecodePool ( const SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity > & )
delete

Member Function Documentation

◆ add_source() [1/2]

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
SampleStreamDecodeSourceAddResult pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::add_source ( SampleStreamSourceToken token,
std::uint32_t channels,
FrameReader reader )
inline

◆ add_source() [2/2]

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
SampleStreamDecodeSourceAddResult pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::add_source ( SampleStreamSourceToken token,
std::uint32_t channels,
FrameReaderBinding binding )
inline

◆ cancel_source()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
SampleStreamDecodeCancelStatus pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::cancel_source ( SampleStreamSourceToken token)
inlinenoexcept

◆ operator=()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
SampleStreamDecodePool & pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::operator= ( const SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity > & )
delete

◆ prepare()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
bool pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::prepare ( const SampleStreamDecodePoolConfig & config)
inline

◆ prepared()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
bool pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::prepared ( ) const
inlinenoexcept

◆ release()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
void pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::release ( )
inlinenoexcept

◆ release_completion()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
bool pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::release_completion ( const SampleStreamDecodeCompletion & completion)
inlinenoexcept

◆ remove_idle_source()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
bool pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::remove_idle_source ( SampleStreamSourceToken token)
inlinenoexcept

◆ reserved_scratch_samples()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
std::uint64_t pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::reserved_scratch_samples ( ) const
inlinenoexcept

◆ source_capacity()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
std::uint32_t pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::source_capacity ( ) const
inlinenoexcept

◆ submit()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
SampleStreamDecodeSubmitStatus pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::submit ( const SampleStreamDecodeJob & job)
inlinenoexcept

◆ telemetry()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
SampleStreamDecodePoolTelemetry pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::telemetry ( ) const
inlinenoexcept

◆ try_pop_completion()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
std::optional< SampleStreamDecodeCompletionView > pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::try_pop_completion ( std::uint32_t worker_index)
inlinenoexcept

◆ wait_pop_completion()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
std::optional< SampleStreamDecodeCompletionView > pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::wait_pop_completion ( std::uint32_t worker_index)
inlinenoexcept

◆ worker_count()

template<std::size_t JobMailboxCapacity = 8, std::size_t CompletionMailboxCapacity = 8>
std::uint32_t pulp::audio::SampleStreamDecodePool< JobMailboxCapacity, CompletionMailboxCapacity >::worker_count ( ) const
inlinenoexcept

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