blob: 10cb727357a4582117e58db07c5e9fe83f6ad17f [file] [log] [blame]
// Copyright 2023 The Fuchsia Authors.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.audio.controller;
/// Gain settings.
type GainSettings = table {
/// Whether to mute the audio stream. If unspecified, do not adjust the existing mute value.
///
/// Optional.
1: mute bool;
/// Gain level in dB. If unspecified, do not adjust stream or device gain.
///
/// Optional.
2: gain float32;
};
/// Reference clock options for an `AudioRenderer` or `AudioCapturer`.
type ClockType = flexible union {
/// Use a flexible clock.
1: flexible struct {};
/// Use the system monotonic clock.
2: system_monotonic struct {};
/// Use a monotonic clock with possible rate adjustment and offset relative to the system
/// monotonic clock.
3: custom @generated_name("CustomClockConfig") table {
/// Frequency rate adjustment to a clone of the system monotonic clock,
/// in parts per million relative to the system monotonic rate.
///
/// Must fall within [ZX_CLOCK_UPDATE_MIN_RATE_ADJUST, ZX_CLOCK_UPDATE_MAX_RATE_ADJUST].
/// For more info, see `zx_clock_update`.
///
/// Optional. If not specified, the reference clock's default rate is used.
1: rate_adjust int32;
/// Starting delta between the reference clock passed to AudioRenderer or Capturer
/// and the system monotonic clock.
///
/// Optional. If not specified, the reference clock offset is unchanged.
2: offset int32;
};
};