blob: 0886c1804260899ba90a5924844f286a279bfe00 [file] [log] [blame]
/** @file
* @brief Header for Bluetooth BAP LC3 presets.
*
* Copyright (c) 2023 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_BAP_LC3_PRESET_
#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_BAP_LC3_PRESET_
#include <zephyr/bluetooth/audio/audio.h>
/** Struct to hold a BAP defined LC3 preset */
struct bt_bap_lc3_preset {
/** The LC3 Codec */
struct bt_codec codec;
/** The BAP spec defined QoS values */
struct bt_codec_qos qos;
};
/** Helper to declare an LC3 preset structure */
#define BT_BAP_LC3_PRESET(_codec, _qos) \
{ \
.codec = _codec, .qos = _qos, \
}
/* LC3 Unicast presets defined by table 5.2 in the BAP v1.0 specification */
/**
* @brief Helper to declare LC3 Unicast 8_1_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_8_1_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_8_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(26u, 2u, 8u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 8_2_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_8_2_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_8_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(30u, 2u, 10u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 16_1_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_16_1_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_16_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(30u, 2u, 8u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 16_2_1 codec configuration
*
* Mandatory to support as both unicast client and server
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_16_2_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_16_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(40u, 2u, 10u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 24_1_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_24_1_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_24_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(45u, 2u, 8u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 24_2_1 codec configuration
*
* Mandatory to support as unicast server
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_24_2_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_24_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(60u, 2u, 10u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 32_1_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_32_1_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_32_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(60u, 2u, 8u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 32_2_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_32_2_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_32_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(80u, 2u, 10u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 441_1_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_441_1_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET( \
BT_CODEC_LC3_CONFIG_441_1(_loc, _stream_context), \
BT_CODEC_QOS(8163u, BT_CODEC_QOS_FRAMED, BT_CODEC_QOS_2M, 97u, 5u, 24u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 441_2_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_441_2_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET( \
BT_CODEC_LC3_CONFIG_441_2(_loc, _stream_context), \
BT_CODEC_QOS(10884u, BT_CODEC_QOS_FRAMED, BT_CODEC_QOS_2M, 130u, 5u, 31u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 48_1_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_48_1_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(75u, 5u, 15u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 48_2_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_48_2_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(100u, 5u, 20u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 48_3_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_48_3_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_3(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(90u, 5u, 15u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 48_4_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_48_4_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_4(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(120u, 5u, 20u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 8_5_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_48_5_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_5(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(117u, 5u, 15u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 48_6_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_48_6_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_6(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(155u, 5u, 20u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 8_1_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
/* Following presets are for unicast high reliability audio data */
#define BT_BAP_LC3_UNICAST_PRESET_8_1_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_8_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(26u, 13u, 75u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 8_2_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_8_2_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_8_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(30u, 13u, 95u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 16_1_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_16_1_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_16_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(30u, 13u, 75u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 16_2_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_16_2_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_16_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(40u, 13u, 95u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 24_1_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_24_1_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_24_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(45u, 13u, 75u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 24_2_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_24_2_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_24_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(60u, 13u, 95u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 32_1_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_32_1_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_32_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(60u, 13u, 75u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 32_2_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_32_2_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_32_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(80u, 13u, 95u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 441_1_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_441_1_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET( \
BT_CODEC_LC3_CONFIG_441_1(_loc, _stream_context), \
BT_CODEC_QOS(8163u, BT_CODEC_QOS_FRAMED, BT_CODEC_QOS_2M, 97u, 13u, 80u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 441_2_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_441_2_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_441_2(_loc, _stream_context), \
BT_CODEC_QOS(10884u, BT_CODEC_QOS_FRAMED, BT_CODEC_QOS_2M, 130u, 13u, \
85u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 48_1_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_48_1_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(75u, 13u, 75u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 48_2_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_48_2_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(100u, 13u, 95u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 48_3_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_48_3_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_3(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(90u, 13u, 75u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 48_4_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_48_4_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_4(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(120u, 13u, 100u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 48_5_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_48_5_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_5(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(117u, 13u, 75u, 40000u))
/**
* @brief Helper to declare LC3 Unicast 48_6_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_UNICAST_PRESET_48_6_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_6(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(155u, 13u, 100u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 8_1_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
/* LC3 Broadcast presets defined by table 6.4 in the BAP v1.0 specification */
#define BT_BAP_LC3_BROADCAST_PRESET_8_1_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_8_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(26u, 2u, 8u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 8_2_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_8_2_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_8_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(30u, 2u, 10u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 16_1_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_16_1_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_16_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(30u, 2u, 8u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 16_2_1 codec configuration
*
* Mandatory to support as both broadcast source and sink
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_16_2_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_16_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(40u, 2u, 10u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 24_1_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_24_1_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_24_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(45u, 2u, 8u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 24_2_1 codec configuration
*
* Mandatory to support as broadcast sink
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_24_2_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_24_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(60u, 2u, 10u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 32_1_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_32_1_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_32_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(60u, 2u, 8u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 32_2_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_32_2_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_32_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(80u, 2u, 10u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 441_1_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_441_1_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET( \
BT_CODEC_LC3_CONFIG_441_1(_loc, _stream_context), \
BT_CODEC_QOS(8163u, BT_CODEC_QOS_FRAMED, BT_CODEC_QOS_2M, 97u, 4u, 24u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 441_2_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_441_2_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET( \
BT_CODEC_LC3_CONFIG_441_2(_loc, _stream_context), \
BT_CODEC_QOS(10884u, BT_CODEC_QOS_FRAMED, BT_CODEC_QOS_2M, 130u, 4u, 31u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 48_1_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_48_1_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(75u, 4u, 15u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 48_2_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_48_2_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(100u, 4u, 20u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 48_3_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_48_3_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_3(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(90u, 4u, 15u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 48_4_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_48_4_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_4(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(120u, 4u, 20u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 48_5_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_48_5_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_5(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(117u, 4u, 15u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 48_6_1 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_48_6_1(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_6(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(155u, 4u, 20u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 8_1_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
/* Following presets are for broadcast high reliability audio data */
#define BT_BAP_LC3_BROADCAST_PRESET_8_1_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_8_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(26u, 4u, 45u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 8_2_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_8_2_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_8_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(30u, 4u, 60u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 16_1_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_16_1_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_16_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(30u, 4u, 45u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 16_2_2 codec configuration
*
* Mandatory to support as both broadcast source and sink
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_16_2_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_16_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(40u, 4u, 60u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 24_1_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_24_1_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_24_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(45u, 4u, 45u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 24_2_2 codec configuration
*
* Mandatory to support as broadcast sink
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_24_2_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_24_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(60u, 4u, 60u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 32_1_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_32_1_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_32_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(60u, 4u, 45u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 32_2_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_32_2_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_32_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(80u, 4u, 60u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 441_1_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_441_1_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET( \
BT_CODEC_LC3_CONFIG_441_1(_loc, _stream_context), \
BT_CODEC_QOS(8163u, BT_CODEC_QOS_FRAMED, BT_CODEC_QOS_2M, 97u, 4u, 54u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 441_2_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_441_2_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET( \
BT_CODEC_LC3_CONFIG_441_2(_loc, _stream_context), \
BT_CODEC_QOS(10884u, BT_CODEC_QOS_FRAMED, BT_CODEC_QOS_2M, 130u, 4u, 60u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 48_1_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_48_1_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_1(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(75u, 4u, 50u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 48_2_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_48_2_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_2(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(100u, 4u, 65u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 48_3_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_48_3_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_3(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(90u, 4u, 50u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 48_4_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_48_4_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_4(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(120u, 4u, 65u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 48_5_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_48_5_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_5(_loc, _stream_context), \
BT_CODEC_LC3_QOS_7_5_UNFRAMED(117u, 4u, 50u, 40000u))
/**
* @brief Helper to declare LC3 Broadcast 48_6_2 codec configuration
*
* @param _loc Audio channel location bitfield (@ref bt_audio_location)
* @param _stream_context Stream context (BT_AUDIO_CONTEXT_*)
*/
#define BT_BAP_LC3_BROADCAST_PRESET_48_6_2(_loc, _stream_context) \
BT_BAP_LC3_PRESET(BT_CODEC_LC3_CONFIG_48_6(_loc, _stream_context), \
BT_CODEC_LC3_QOS_10_UNFRAMED(155u, 4u, 65u, 40000u))
#endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_BAP_LC3_PRESET_ */