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... | |
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.