LCOV - code coverage report
Current view: top level - zephyr/bluetooth/audio - gmap_lc3_preset.h Coverage Total Hit
Test: new.info Lines: 100.0 % 17 17
Test Date: 2025-09-05 20:47:19

            Line data    Source code
       1            1 : /**
       2              :  * @file
       3              :  * @brief Header for Bluetooth GMAP LC3 presets.
       4              :  *
       5              :  * Copyright (c) 2023-2024 Nordic Semiconductor ASA
       6              :  *
       7              :  * SPDX-License-Identifier: Apache-2.0
       8              :  */
       9              : 
      10              : #ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_GMAP_LC3_PRESET_
      11              : #define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_GMAP_LC3_PRESET_
      12              : 
      13              : /**
      14              :  * @brief Gaming Audio Profile (GMAP) LC3 Presets
      15              :  *
      16              :  * @defgroup bt_gmap_lc3_preset Gaming Audio Profile (GMAP) LC3 Presets
      17              :  *
      18              :  * @since 3.5
      19              :  * @version 0.8.0
      20              :  *
      21              :  * @ingroup bluetooth
      22              :  * @{
      23              :  *
      24              :  * These APIs provide presets for codec configuration and QoS based on values supplied by the
      25              :  * codec configurations from table 3.16 in the GMAP v1.0 specification
      26              :  */
      27              : 
      28              : #include <zephyr/bluetooth/audio/audio.h>
      29              : #include <zephyr/bluetooth/audio/bap.h>
      30              : #include <zephyr/bluetooth/audio/bap_lc3_preset.h>
      31              : #include <zephyr/bluetooth/audio/lc3.h>
      32              : 
      33              : #ifdef __cplusplus
      34              : extern "C" {
      35              : #endif
      36              : 
      37              : /**
      38              :  * @brief Helper to declare LC3 32_1_gr codec configuration
      39              :  *
      40              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
      41              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
      42              :  */
      43            1 : #define BT_GMAP_LC3_PRESET_32_1_GR(_loc, _stream_context)                                          \
      44              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_32KHZ,                 \
      45              :                                                     BT_AUDIO_CODEC_CFG_DURATION_7_5, _loc, 60U, 1, \
      46              :                                                     _stream_context),                              \
      47              :                           BT_BAP_QOS_CFG_UNFRAMED(7500u, 60U, 1U, 15U, 10000U))
      48              : 
      49              : /**
      50              :  * @brief Helper to declare LC3 32_2_gr codec configuration
      51              :  *
      52              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
      53              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
      54              :  */
      55            1 : #define BT_GMAP_LC3_PRESET_32_2_GR(_loc, _stream_context)                                          \
      56              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_32KHZ,                 \
      57              :                                                     BT_AUDIO_CODEC_CFG_DURATION_10, _loc, 80U, 1,  \
      58              :                                                     _stream_context),                              \
      59              :                           BT_BAP_QOS_CFG_UNFRAMED(10000u, 80U, 1U, 20U, 10000U))
      60              : 
      61              : /**
      62              :  * @brief Helper to declare LC3 48_1_gr codec configuration
      63              :  *
      64              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
      65              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
      66              :  */
      67            1 : #define BT_GMAP_LC3_PRESET_48_1_GR(_loc, _stream_context)                                          \
      68              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_48KHZ,                 \
      69              :                                                     BT_AUDIO_CODEC_CFG_DURATION_7_5, _loc, 75U, 1, \
      70              :                                                     _stream_context),                              \
      71              :                           BT_BAP_QOS_CFG_UNFRAMED(7500u, 75U, 1U, 15U, 10000U))
      72              : 
      73              : /**
      74              :  * @brief Helper to declare LC3 48_2_gr codec configuration
      75              :  *
      76              :  *  Mandatory to support as both unicast client and server
      77              :  *
      78              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
      79              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
      80              :  */
      81            1 : #define BT_GMAP_LC3_PRESET_48_2_GR(_loc, _stream_context)                                          \
      82              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_48KHZ,                 \
      83              :                                                     BT_AUDIO_CODEC_CFG_DURATION_10, _loc, 100U, 1, \
      84              :                                                     _stream_context),                              \
      85              :                           BT_BAP_QOS_CFG_UNFRAMED(10000u, 100U, 1U, 20U, 10000U))
      86              : 
      87              : /**
      88              :  * @brief Helper to declare LC3 48_3_gr codec configuration
      89              :  *
      90              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
      91              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
      92              :  */
      93            1 : #define BT_GMAP_LC3_PRESET_48_3_GR(_loc, _stream_context)                                          \
      94              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_48KHZ,                 \
      95              :                                                     BT_AUDIO_CODEC_CFG_DURATION_7_5, _loc, 90U, 1, \
      96              :                                                     _stream_context),                              \
      97              :                           BT_BAP_QOS_CFG_UNFRAMED(7500u, 90U, 1U, 15U, 10000U))
      98              : 
      99              : /**
     100              :  * @brief Helper to declare LC3 48_4_gr codec configuration
     101              :  *
     102              :  *  Mandatory to support as unicast server
     103              :  *
     104              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
     105              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
     106              :  */
     107            1 : #define BT_GMAP_LC3_PRESET_48_4_GR(_loc, _stream_context)                                          \
     108              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_48KHZ,                 \
     109              :                                                     BT_AUDIO_CODEC_CFG_DURATION_10, _loc, 120u, 1, \
     110              :                                                     _stream_context),                              \
     111              :                           BT_BAP_QOS_CFG_UNFRAMED(10000u, 120U, 1U, 20U, 10000U))
     112              : 
     113              : /**
     114              :  * @brief Helper to declare LC3 16_1_gs codec configuration
     115              :  *
     116              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
     117              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
     118              :  */
     119            1 : #define BT_GMAP_LC3_PRESET_16_1_GS(_loc, _stream_context)                                          \
     120              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_16KHZ,                 \
     121              :                                                     BT_AUDIO_CODEC_CFG_DURATION_7_5, _loc, 30U, 1, \
     122              :                                                     _stream_context),                              \
     123              :                           BT_BAP_QOS_CFG_UNFRAMED(7500u, 30U, 1U, 15U, 60000U))
     124              : 
     125              : /**
     126              :  * @brief Helper to declare LC3 16_2_gs codec configuration
     127              :  *
     128              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
     129              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
     130              :  */
     131            1 : #define BT_GMAP_LC3_PRESET_16_2_GS(_loc, _stream_context)                                          \
     132              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_16KHZ,                 \
     133              :                                                     BT_AUDIO_CODEC_CFG_DURATION_10, _loc, 40U, 1,  \
     134              :                                                     _stream_context),                              \
     135              :                           BT_BAP_QOS_CFG_UNFRAMED(10000u, 40U, 1U, 20U, 60000U))
     136              : 
     137              : /**
     138              :  * @brief Helper to declare LC3 32_1_gs codec configuration
     139              :  *
     140              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
     141              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
     142              :  */
     143            1 : #define BT_GMAP_LC3_PRESET_32_1_GS(_loc, _stream_context)                                          \
     144              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_32KHZ,                 \
     145              :                                                     BT_AUDIO_CODEC_CFG_DURATION_7_5, _loc, 60U, 1, \
     146              :                                                     _stream_context),                              \
     147              :                           BT_BAP_QOS_CFG_UNFRAMED(7500u, 60U, 1U, 15U, 60000U))
     148              : 
     149              : /**
     150              :  * @brief Helper to declare LC3 32_2_gs codec configuration
     151              :  *
     152              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
     153              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
     154              :  */
     155            1 : #define BT_GMAP_LC3_PRESET_32_2_GS(_loc, _stream_context)                                          \
     156              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_32KHZ,                 \
     157              :                                                     BT_AUDIO_CODEC_CFG_DURATION_10, _loc, 80U, 1,  \
     158              :                                                     _stream_context),                              \
     159              :                           BT_BAP_QOS_CFG_UNFRAMED(10000u, 80U, 1U, 20U, 60000U))
     160              : 
     161              : /**
     162              :  * @brief Helper to declare LC3 48_1_gs codec configuration
     163              :  *
     164              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
     165              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
     166              :  */
     167            1 : #define BT_GMAP_LC3_PRESET_48_1_GS(_loc, _stream_context)                                          \
     168              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_48KHZ,                 \
     169              :                                                     BT_AUDIO_CODEC_CFG_DURATION_7_5, _loc, 75U, 1, \
     170              :                                                     _stream_context),                              \
     171              :                           BT_BAP_QOS_CFG_UNFRAMED(7500u, 75U, 1U, 15U, 60000U))
     172              : 
     173              : /**
     174              :  * @brief Helper to declare LC3 48_2_gs codec configuration
     175              :  *
     176              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
     177              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
     178              :  */
     179            1 : #define BT_GMAP_LC3_PRESET_48_2_GS(_loc, _stream_context)                                          \
     180              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_48KHZ,                 \
     181              :                                                     BT_AUDIO_CODEC_CFG_DURATION_10, _loc, 100U, 1, \
     182              :                                                     _stream_context),                              \
     183              :                           BT_BAP_QOS_CFG_UNFRAMED(10000u, 100U, 1U, 20U, 60000U))
     184              : 
     185              : /* GMAP LC3 broadcast presets defined by table 3.22 in the GMAP v1.0 specification */
     186              : 
     187              : /**
     188              :  * @brief Helper to declare LC3 48_1_g codec configuration
     189              :  *
     190              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
     191              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
     192              :  */
     193            1 : #define BT_GMAP_LC3_PRESET_48_1_G(_loc, _stream_context)                                           \
     194              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_48KHZ,                 \
     195              :                                                     BT_AUDIO_CODEC_CFG_DURATION_7_5, _loc, 75U, 1, \
     196              :                                                     _stream_context),                              \
     197              :                           BT_BAP_QOS_CFG_UNFRAMED(7500u, 75U, 1U, 8U, 10000U))
     198              : 
     199              : /**
     200              :  * @brief Helper to declare LC3 48_2_g codec configuration
     201              :  *
     202              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
     203              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
     204              :  */
     205            1 : #define BT_GMAP_LC3_PRESET_48_2_G(_loc, _stream_context)                                           \
     206              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_48KHZ,                 \
     207              :                                                     BT_AUDIO_CODEC_CFG_DURATION_10, _loc, 100U, 1, \
     208              :                                                     _stream_context),                              \
     209              :                           BT_BAP_QOS_CFG_UNFRAMED(10000u, 100U, 1U, 10U, 10000U))
     210              : 
     211              : /**
     212              :  * @brief Helper to declare LC3 48_3_g codec configuration
     213              :  *
     214              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
     215              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
     216              :  */
     217            1 : #define BT_GMAP_LC3_PRESET_48_3_G(_loc, _stream_context)                                           \
     218              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_48KHZ,                 \
     219              :                                                     BT_AUDIO_CODEC_CFG_DURATION_7_5, _loc, 90U, 1, \
     220              :                                                     _stream_context),                              \
     221              :                           BT_BAP_QOS_CFG_UNFRAMED(7500u, 90U, 1U, 8U, 10000U))
     222              : 
     223              : /**
     224              :  * @brief Helper to declare LC3 48_4_g codec configuration
     225              :  *
     226              :  * @param _loc             Audio channel location bitfield (@ref bt_audio_location)
     227              :  * @param _stream_context  Stream context (``BT_AUDIO_CONTEXT_*``)
     228              :  */
     229            1 : #define BT_GMAP_LC3_PRESET_48_4_G(_loc, _stream_context)                                           \
     230              :         BT_BAP_LC3_PRESET(BT_AUDIO_CODEC_LC3_CONFIG(BT_AUDIO_CODEC_CFG_FREQ_48KHZ,                 \
     231              :                                                     BT_AUDIO_CODEC_CFG_DURATION_10, _loc, 120u, 1, \
     232              :                                                     _stream_context),                              \
     233              :                           BT_BAP_QOS_CFG_UNFRAMED(10000u, 120U, 1U, 10U, 10000U))
     234              : 
     235              : #ifdef __cplusplus
     236              : }
     237              : #endif
     238              : /** @} */
     239              : 
     240              : #endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_GMAP_LC3_PRESET_ */
        

Generated by: LCOV version 2.0-1