Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::audio::AudioIoTiming Struct Reference

Immutable control-thread snapshot of one audio route's I/O timing. More...

#include <audio_io_timing.hpp>

Public Attributes

std::optional< std::uint32_t > input_latency_frames
std::optional< std::uint32_t > output_latency_frames
std::optional< std::uint32_t > input_safety_offset_frames
std::optional< std::uint32_t > output_safety_offset_frames
std::optional< std::uint32_t > io_buffer_frames
 Frames in each CoreAudio I/O cycle.
double sample_rate_hz = 0.0
AudioTimestampDomain timestamp_domain = AudioTimestampDomain::unspecified
AudioTimingSource timestamp_source = AudioTimingSource::unspecified
AudioTimingConfidence confidence = AudioTimingConfidence::unavailable
std::uint64_t route_instance_token = 0
 Process-local identity of the AudioDevice instance that minted this report.
std::uint64_t calibration_generation = 0

Detailed Description

Immutable control-thread snapshot of one audio route's I/O timing.

Every present latency, safety-offset, and I/O-buffer value is measured in audio sample frames at sample_rate_hz; absence is distinct from a reported zero. A backend must increment calibration_generation whenever a route change or calibration update can make a previously published value stale. Generation zero is reserved for an unavailable/uninitialized report.

Member Data Documentation

◆ calibration_generation

std::uint64_t pulp::audio::AudioIoTiming::calibration_generation = 0

◆ confidence

AudioTimingConfidence pulp::audio::AudioIoTiming::confidence = AudioTimingConfidence::unavailable

◆ input_latency_frames

std::optional<std::uint32_t> pulp::audio::AudioIoTiming::input_latency_frames

◆ input_safety_offset_frames

std::optional<std::uint32_t> pulp::audio::AudioIoTiming::input_safety_offset_frames

◆ io_buffer_frames

std::optional<std::uint32_t> pulp::audio::AudioIoTiming::io_buffer_frames

Frames in each CoreAudio I/O cycle.

For CoreAudio this contributes once to each complete directional presentation path: once for input placement, once for output scheduling, and therefore twice for a complete input-through-graph-to-output monitoring path.

◆ output_latency_frames

std::optional<std::uint32_t> pulp::audio::AudioIoTiming::output_latency_frames

◆ output_safety_offset_frames

std::optional<std::uint32_t> pulp::audio::AudioIoTiming::output_safety_offset_frames

◆ route_instance_token

std::uint64_t pulp::audio::AudioIoTiming::route_instance_token = 0

Process-local identity of the AudioDevice instance that minted this report.

Backends must publish a nonzero token and must not reuse it.

◆ sample_rate_hz

double pulp::audio::AudioIoTiming::sample_rate_hz = 0.0

◆ timestamp_domain

AudioTimestampDomain pulp::audio::AudioIoTiming::timestamp_domain = AudioTimestampDomain::unspecified

◆ timestamp_source

AudioTimingSource pulp::audio::AudioIoTiming::timestamp_source = AudioTimingSource::unspecified

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