blob: fe99bc20531ee52327c30169d6fa5528efa09f94 [file] [log] [blame]
// Copyright 2024 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.bluetooth.le;
using fuchsia.bluetooth as bt;
using zx;
/// This protocol allows us to retrieve controller local delay values. It is not intended to be
/// used stand-alone, but to be composed into protocols that need access to this information.
@available(added=HEAD)
closed protocol CodecDelay {
/// Retrieve the range of controller delay for the codec specified with the provided stream
/// attributes.
///
/// On success, returns the minimum and maximum allowed delay.
///
/// Returns ZX_ERR_NOT_SUPPORTED if reading the delay is not supported.
/// Returns ZX_ERR_INTERNAL for all other failures.
strict GetCodecLocalDelayRange(table {
/// Logical transport type being used. Currenly only supports LE transport mechanisms
/// (CIS or BIS). Required.
1: logical_transport_type bt.LogicalTransportType;
/// Indicates direction of data flow. Required.
2: data_direction bt.DataDirection;
/// Codec being used over the air. Required.
3: codec_attributes bt.CodecAttributes;
}) -> (table {
/// Minimum controller delay for the specified configuration, in the range [0, 4] seconds.
/// Always provided on success.
1: min_controller_delay zx.Duration;
/// Maximum controller delay for the specified configuration, in the range [0, 4] seconds.
/// Always provided on success.
2: max_controller_delay zx.Duration;
}) error zx.Status;
};