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

Fixed-capacity input recorder. More...

#include <capture_engine.hpp>

Public Member Functions

bool prepare (const CaptureEngineConfig &config)
void release () noexcept
bool enqueue_command (const CaptureCommand &command) noexcept
bool pop_event (CaptureEvent &event) noexcept
CaptureProcessResult process (const audio::BufferView< const float > &input, audio::BufferView< float > &monitor_output, const midi::MidiBuffer &midi_input, const TransportSnapshot &transport) noexcept
bool copy_audio (CaptureTakeHandle take, audio::BufferView< float > destination) const noexcept
bool copy_midi (CaptureTakeHandle take, std::span< CapturedMidiEvent > destination, std::size_t &copied) const noexcept
float input_peak (std::size_t track_index) const noexcept
CaptureEngineStats stats () const noexcept
bool recording () const noexcept

Static Public Attributes

static constexpr std::size_t kMaximumTracks = 32
static constexpr std::size_t kMaximumTakeSlotsPerTrack = 64
static constexpr std::size_t kCommandQueueCapacity = 128
static constexpr std::size_t kEventQueueCapacity = 256
static constexpr audio::RtSafetyClass process_rt_safety_class

Detailed Description

Fixed-capacity input recorder.

prepare() owns every allocation; process() only mutates preallocated take slots and lock-free command/event queues. Completed slots remain immutable until ReleaseTake reaches process().

Member Function Documentation

◆ copy_audio()

bool pulp::playback::CaptureEngine::copy_audio ( CaptureTakeHandle take,
audio::BufferView< float > destination ) const
noexcept

◆ copy_midi()

bool pulp::playback::CaptureEngine::copy_midi ( CaptureTakeHandle take,
std::span< CapturedMidiEvent > destination,
std::size_t & copied ) const
noexcept

◆ enqueue_command()

bool pulp::playback::CaptureEngine::enqueue_command ( const CaptureCommand & command)
noexcept

◆ input_peak()

float pulp::playback::CaptureEngine::input_peak ( std::size_t track_index) const
noexcept

◆ pop_event()

bool pulp::playback::CaptureEngine::pop_event ( CaptureEvent & event)
noexcept

◆ prepare()

bool pulp::playback::CaptureEngine::prepare ( const CaptureEngineConfig & config)

◆ process()

CaptureProcessResult pulp::playback::CaptureEngine::process ( const audio::BufferView< const float > & input,
audio::BufferView< float > & monitor_output,
const midi::MidiBuffer & midi_input,
const TransportSnapshot & transport )
noexcept

◆ recording()

bool pulp::playback::CaptureEngine::recording ( ) const
noexcept

◆ release()

void pulp::playback::CaptureEngine::release ( )
noexcept

◆ stats()

CaptureEngineStats pulp::playback::CaptureEngine::stats ( ) const
noexcept

Member Data Documentation

◆ kCommandQueueCapacity

std::size_t pulp::playback::CaptureEngine::kCommandQueueCapacity = 128
staticconstexpr

◆ kEventQueueCapacity

std::size_t pulp::playback::CaptureEngine::kEventQueueCapacity = 256
staticconstexpr

◆ kMaximumTakeSlotsPerTrack

std::size_t pulp::playback::CaptureEngine::kMaximumTakeSlotsPerTrack = 64
staticconstexpr

◆ kMaximumTracks

std::size_t pulp::playback::CaptureEngine::kMaximumTracks = 32
staticconstexpr

◆ process_rt_safety_class

audio::RtSafetyClass pulp::playback::CaptureEngine::process_rt_safety_class
staticconstexpr
Initial value:

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