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

Pre-allocated scratch buffers backing the routing process() path. More...

#include <graph_runtime_executor.hpp>

Classes

struct  DelayRing
struct  BoundNode

Public Member Functions

void clear_history () noexcept
 Render-owner reset of prepared audio/PDC storage without reallocating.
 GraphRuntimeBufferPool ()=default
 GraphRuntimeBufferPool (const GraphRuntimeBufferPool &other)
GraphRuntimeBufferPool & operator= (const GraphRuntimeBufferPool &other)
 GraphRuntimeBufferPool (GraphRuntimeBufferPool &&) noexcept=default
GraphRuntimeBufferPool & operator= (GraphRuntimeBufferPool &&) noexcept=default
bool reset (std::uint32_t slot_count, std::uint32_t max_frames)
bool reset (std::uint32_t slot_count, std::uint32_t max_frames, std::span< const std::uint32_t > connection_delay_samples)
void clear () noexcept
std::uint32_t slot_count () const noexcept
std::uint32_t max_frames () const noexcept
float * slot_data (std::uint32_t index) noexcept
const float * slot_data (std::uint32_t index) const noexcept
DelayRing delay_ring (std::uint32_t index) noexcept
bool can_adopt_delay_ring_state (std::uint32_t index, const GraphRuntimeBufferPool &source, std::uint32_t source_index) const noexcept
bool adopt_delay_ring_state (std::uint32_t index, const GraphRuntimeBufferPool &source, std::uint32_t source_index) noexcept
bool bind (const GraphRuntimeSnapshot &snapshot) noexcept
bool bound_to (const GraphRuntimeSnapshot &snapshot) const noexcept
BoundNode & bound_node (std::uint32_t index) noexcept
bool alias_host_input (const BusBuffer *input, const BusBuffer *output, std::uint32_t frames) noexcept
void release_host_input () noexcept
bool fits (const GraphRuntimeSnapshot &snapshot, std::uint32_t frames) const noexcept

Detailed Description

Pre-allocated scratch buffers backing the routing process() path.

One slot is a mono buffer of max_frames floats — the same "slot" the snapshot's GraphRuntimeBufferAssignment indexes. The caller sizes the pool off-RT from a snapshot's buffer_slot_count() and the maximum block size, then reuses it across realtime blocks. The executor never resizes it.

Scope: this is the SHARED inter-node routing scratch for one serial walk. Per-worker scratch for a parallel executor is a separate concern and must not be overloaded onto this shared pool.

Constructor & Destructor Documentation

◆ GraphRuntimeBufferPool() [1/3]

pulp::format::GraphRuntimeBufferPool::GraphRuntimeBufferPool ( )
default

◆ GraphRuntimeBufferPool() [2/3]

pulp::format::GraphRuntimeBufferPool::GraphRuntimeBufferPool ( const GraphRuntimeBufferPool & other)

◆ GraphRuntimeBufferPool() [3/3]

pulp::format::GraphRuntimeBufferPool::GraphRuntimeBufferPool ( GraphRuntimeBufferPool && )
defaultnoexcept

Member Function Documentation

◆ adopt_delay_ring_state()

bool pulp::format::GraphRuntimeBufferPool::adopt_delay_ring_state ( std::uint32_t index,
const GraphRuntimeBufferPool & source,
std::uint32_t source_index )
noexcept

◆ alias_host_input()

bool pulp::format::GraphRuntimeBufferPool::alias_host_input ( const BusBuffer * input,
const BusBuffer * output,
std::uint32_t frames )
noexcept

◆ bind()

bool pulp::format::GraphRuntimeBufferPool::bind ( const GraphRuntimeSnapshot & snapshot)
noexcept

◆ bound_node()

BoundNode & pulp::format::GraphRuntimeBufferPool::bound_node ( std::uint32_t index)
inlinenoexcept

◆ bound_to()

bool pulp::format::GraphRuntimeBufferPool::bound_to ( const GraphRuntimeSnapshot & snapshot) const
inlinenoexcept

◆ can_adopt_delay_ring_state()

bool pulp::format::GraphRuntimeBufferPool::can_adopt_delay_ring_state ( std::uint32_t index,
const GraphRuntimeBufferPool & source,
std::uint32_t source_index ) const
noexcept

◆ clear()

void pulp::format::GraphRuntimeBufferPool::clear ( )
noexcept

◆ clear_history()

void pulp::format::GraphRuntimeBufferPool::clear_history ( )
noexcept

Render-owner reset of prepared audio/PDC storage without reallocating.

◆ delay_ring()

DelayRing pulp::format::GraphRuntimeBufferPool::delay_ring ( std::uint32_t index)
inlinenoexcept

◆ fits()

bool pulp::format::GraphRuntimeBufferPool::fits ( const GraphRuntimeSnapshot & snapshot,
std::uint32_t frames ) const
inlinenoexcept

◆ max_frames()

std::uint32_t pulp::format::GraphRuntimeBufferPool::max_frames ( ) const
inlinenoexcept

◆ operator=() [1/2]

GraphRuntimeBufferPool & pulp::format::GraphRuntimeBufferPool::operator= ( const GraphRuntimeBufferPool & other)

◆ operator=() [2/2]

GraphRuntimeBufferPool & pulp::format::GraphRuntimeBufferPool::operator= ( GraphRuntimeBufferPool && )
defaultnoexcept

◆ release_host_input()

void pulp::format::GraphRuntimeBufferPool::release_host_input ( )
noexcept

◆ reset() [1/2]

bool pulp::format::GraphRuntimeBufferPool::reset ( std::uint32_t slot_count,
std::uint32_t max_frames )

◆ reset() [2/2]

bool pulp::format::GraphRuntimeBufferPool::reset ( std::uint32_t slot_count,
std::uint32_t max_frames,
std::span< const std::uint32_t > connection_delay_samples )

◆ slot_count()

std::uint32_t pulp::format::GraphRuntimeBufferPool::slot_count ( ) const
inlinenoexcept

◆ slot_data() [1/2]

const float * pulp::format::GraphRuntimeBufferPool::slot_data ( std::uint32_t index) const
inlinenoexcept

◆ slot_data() [2/2]

float * pulp::format::GraphRuntimeBufferPool::slot_data ( std::uint32_t index)
inlinenoexcept

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