30 std::chrono::steady_clock::time_point
time;
39 std::chrono::steady_clock::time_point
time;
76 void log_midi(uint8_t status, uint8_t data1, uint8_t data2,
77 const std::string& description = {});
97 mutable std::mutex mutex_;
99 bool metering_enabled_ =
false;
102 std::chrono::steady_clock::time_point callback_start_;
105 std::vector<BufferUnderrun> underruns_;
106 static constexpr size_t kMaxUnderruns = 50;
109 std::vector<MidiLogEntry> midi_log_;
110 static constexpr size_t kMaxMidi = 200;
113 std::vector<ChannelLevels> levels_;
115 std::atomic<float> telemetry_load_{0.0f};
116 std::atomic<float> telemetry_peak_load_{0.0f};
117 std::atomic<float> telemetry_last_load_{0.0f};
118 std::atomic<int64_t> telemetry_elapsed_ns_{0};
119 std::atomic<int64_t> telemetry_available_ns_{0};
120 std::atomic<uint64_t> telemetry_callback_count_{0};
121 std::atomic<uint64_t> telemetry_overload_count_{0};
122 std::atomic<uint64_t> telemetry_xrun_count_{0};
123 std::atomic<bool> telemetry_available_{
false};
std::vector< BufferUnderrun > recent_underruns() const
bool metering_enabled() const
Definition audio_inspector.hpp:93
void log_midi(uint8_t status, uint8_t data1, uint8_t data2, const std::string &description={})
void set_xrun_count(uint64_t xrun_count)
Update the independently valid backend xrun counter without claiming a process-load producer is attac...
void begin_callback()
Call at the start/end of each audio callback to measure duration.
AudioConfig config() const
void end_callback(uint64_t frame_number)
AudioRuntimeTelemetry runtime_telemetry() const
void clear_runtime_telemetry()
void set_metering_enabled(bool enabled)
Definition audio_inspector.hpp:94
void set_config(const AudioConfig &config)
void set_runtime_telemetry(const pulp::audio::AudioProcessLoadSnapshot &process_load, uint64_t xrun_count)
std::vector< ChannelLevels > latest_levels() const
std::vector< MidiLogEntry > recent_midi() const
void report_levels(const std::vector< ChannelLevels > &levels)
Report output levels for the current buffer.
Real-time CPU load measurement for audio callbacks.
Definition agent_context.hpp:7
Snapshot published by AudioProcessLoadMeasurer.
Definition load_measurer.hpp:25
Audio configuration snapshot.
Definition audio_inspector.hpp:17
int buffer_size
Definition audio_inspector.hpp:19
int latency_samples
Definition audio_inspector.hpp:22
double sample_rate
Definition audio_inspector.hpp:18
int output_channels
Definition audio_inspector.hpp:21
int input_channels
Definition audio_inspector.hpp:20
Cheap runtime telemetry bridge for agent/UI polling.
Definition audio_inspector.hpp:50
uint64_t xrun_count
Definition audio_inspector.hpp:52
bool available
Definition audio_inspector.hpp:53
pulp::audio::AudioProcessLoadSnapshot process_load
Definition audio_inspector.hpp:51
Buffer underrun event.
Definition audio_inspector.hpp:35
std::chrono::steady_clock::time_point time
Definition audio_inspector.hpp:39
float callback_time_ms
Definition audio_inspector.hpp:37
uint64_t frame
Definition audio_inspector.hpp:36
float budget_ms
Definition audio_inspector.hpp:38
Per-channel audio levels.
Definition audio_inspector.hpp:43
float rms
Definition audio_inspector.hpp:45
float peak
Definition audio_inspector.hpp:44
A single MIDI event for logging.
Definition audio_inspector.hpp:26
std::chrono::steady_clock::time_point time
Definition audio_inspector.hpp:30
uint8_t data1
Definition audio_inspector.hpp:28
uint8_t status
Definition audio_inspector.hpp:27
std::string description
Definition audio_inspector.hpp:31
uint8_t data2
Definition audio_inspector.hpp:29