Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
audio_probe_snapshot.hpp File Reference

The realtime-produced probe summary — the shared schema between the RT producer (pulp::audio::AudioProbe, the audio callback) and the non-RT consumers (UI / offline analysis). More...

#include <cstdint>
#include <type_traits>

Go to the source code of this file.

Classes

struct  pulp::audio::AudioProbeSnapshot
 Realtime-produced, fixed-capacity, trivially-copyable probe summary. More...

Namespaces

namespace  pulp
namespace  pulp::audio

Enumerations

enum class  pulp::audio::AudioProbeStage : std::uint32_t {
  pulp::audio::kUnknown = 0 , pulp::audio::kProcessorOutput = 1 , pulp::audio::kStandaloneOutputBoundary = 2 , pulp::audio::kMeterBridge = 3 ,
  pulp::audio::kDeviceCallback = 4 , pulp::audio::kGraphNode = 5
}
 Identifies which audio boundary a snapshot was produced at. More...

Detailed Description

The realtime-produced probe summary — the shared schema between the RT producer (pulp::audio::AudioProbe, the audio callback) and the non-RT consumers (UI / offline analysis).

Producer and consumers share this data type only; they never share an implementation path.

AudioProbeSnapshot is POD-like and trivially copyable so it can ride a runtime::TripleBuffer (latest-wins summary) without allocation. It is fixed-capacity: per-channel scalar metrics live in a compile-time-sized array (kMaxChannels). The producer fills only channel_count entries; a prepare()-set capacity must be <= kMaxChannels.

Carries the identity tuple {sample_rate, block_size, channel_count, stage_id, sequence_number} so a reader can detect stale or mismatched data, plus explicit stale/drop/overwrite/sequence-gap accounting so a silently-dropped snapshot is visible, not invisible.