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 |
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().
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
| bool pulp::playback::CaptureEngine::prepare | ( | const CaptureEngineConfig & | config | ) |
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |