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

Renders a SignalGraph offline at a fixed block size, using only the public SignalGraph API. More...

#include <offline_signal_graph_host.hpp>

Public Member Functions

 OfflineSignalGraphHost (SignalGraph &graph)
bool prepare (const OfflineSignalGraphConfig &config)
 Prepare the graph for config.block_frames blocks and pre-size the staging buffers so render() never allocates per block.
bool prepared () const noexcept
const OfflineSignalGraphConfig & config () const noexcept
OfflineSignalGraphResult render (const OfflineSignalGraphOptions &options)
 Render options.frame_count frames in config().block_frames steps.

Detailed Description

Renders a SignalGraph offline at a fixed block size, using only the public SignalGraph API.

Holds the graph by reference; the caller owns the graph and must keep it alive (and not re-prepare it concurrently) across render().

Constructor & Destructor Documentation

◆ OfflineSignalGraphHost()

pulp::host::OfflineSignalGraphHost::OfflineSignalGraphHost ( SignalGraph & graph)
explicit

Member Function Documentation

◆ config()

const OfflineSignalGraphConfig & pulp::host::OfflineSignalGraphHost::config ( ) const
inlinenoexcept

◆ prepare()

bool pulp::host::OfflineSignalGraphHost::prepare ( const OfflineSignalGraphConfig & config)

Prepare the graph for config.block_frames blocks and pre-size the staging buffers so render() never allocates per block.

Returns false if SignalGraph::prepare() fails or refuses the requested block size (the graph silently zero-fills blocks larger than its prepared max, so a prepared max below the requested block would corrupt the render).

◆ prepared()

bool pulp::host::OfflineSignalGraphHost::prepared ( ) const
inlinenoexcept

◆ render()

OfflineSignalGraphResult pulp::host::OfflineSignalGraphHost::render ( const OfflineSignalGraphOptions & options)

Render options.frame_count frames in config().block_frames steps.

The final block is shortened to the remainder. No heap allocation occurs inside the block loop; the output buffer is allocated once up front.


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