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

            Line data    Source code
       1            1 : /**
       2              :  * @file
       3              :  * @brief Header for Bluetooth TMAP.
       4              :  *
       5              :  * Copyright 2023 NXP
       6              :  * Copyright (c) 2024-2025 Nordic Semiconductor ASA
       7              :  *
       8              :  * SPDX-License-Identifier: Apache-2.0
       9              :  */
      10              : 
      11              : #ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_TMAP_
      12              : #define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_TMAP_
      13              : 
      14              : /**
      15              :  * @brief Telephone and Media Audio Profile (TMAP)
      16              :  *
      17              :  * @defgroup bt_tmap Telephone and Media Audio Profile (TMAP)
      18              :  *
      19              :  * @since 3.4
      20              :  * @version 0.8.0
      21              :  *
      22              :  * @ingroup bluetooth
      23              :  * @{
      24              :  *
      25              :  * The Telephone and Media Audio Profile (TMAP) uses a collection of Bluetooth features and profiles
      26              :  * to enable interoperability between devices for telephony and media audio.
      27              :  */
      28              : 
      29              : #include <zephyr/autoconf.h>
      30              : #include <zephyr/bluetooth/conn.h>
      31              : #include <zephyr/sys/util.h>
      32              : #include <zephyr/sys/util_macro.h>
      33              : 
      34              : /** @brief TMAP Role characteristic */
      35            1 : enum bt_tmap_role {
      36              :         /**
      37              :          * @brief TMAP Call Gateway role
      38              :          *
      39              :          * This role is defined to telephone and VoIP applications using the Call Control Profile
      40              :          * to control calls on a remote TMAP Call Terminal.
      41              :          * Audio streams in this role are typically bi-directional.
      42              :          */
      43              :         BT_TMAP_ROLE_CG = BIT(0),
      44              :         /**
      45              :          * @brief TMAP Call Terminal role
      46              :          *
      47              :          * This role is defined to telephone and VoIP applications using the Call Control Profile
      48              :          * to expose calls to remote TMAP Call Gateways.
      49              :          * Audio streams in this role are typically bi-directional.
      50              :          */
      51              :         BT_TMAP_ROLE_CT = BIT(1),
      52              :         /**
      53              :          * @brief TMAP Unicast Media Sender role
      54              :          *
      55              :          * This role is defined send media audio to TMAP Unicast Media Receivers.
      56              :          * Audio streams in this role are typically uni-directional.
      57              :          */
      58              :         BT_TMAP_ROLE_UMS = BIT(2),
      59              :         /**
      60              :          * @brief TMAP Unicast Media Receiver role
      61              :          *
      62              :          * This role is defined receive media audio to TMAP Unicast Media Senders.
      63              :          * Audio streams in this role are typically uni-directional.
      64              :          */
      65              :         BT_TMAP_ROLE_UMR = BIT(3),
      66              :         /**
      67              :          * @brief TMAP Broadcast Media Sender role
      68              :          *
      69              :          * This role is defined send media audio to TMAP Broadcast Media Receivers.
      70              :          * Audio streams in this role are always uni-directional.
      71              :          */
      72              :         BT_TMAP_ROLE_BMS = BIT(4),
      73              :         /**
      74              :          * @brief TMAP Broadcast Media Receiver role
      75              :          *
      76              :          * This role is defined send media audio to TMAP Broadcast Media Senders.
      77              :          * Audio streams in this role are always uni-directional.
      78              :          */
      79              :         BT_TMAP_ROLE_BMR = BIT(5),
      80              : };
      81              : 
      82              : /** @brief TMAP callback structure. */
      83            1 : struct bt_tmap_cb {
      84              :         /**
      85              :          * @brief TMAP discovery complete callback
      86              :          *
      87              :          * This callback notifies the application about the value of the
      88              :          * TMAP Role characteristic on the peer.
      89              :          *
      90              :          * @param role     Peer TMAP role(s).
      91              :          * @param conn     Pointer to the connection
      92              :          * @param err      0 if success, ATT error received from server otherwise.
      93              :          */
      94            1 :         void (*discovery_complete)(enum bt_tmap_role role, struct bt_conn *conn, int err);
      95              : };
      96              : 
      97              : /**
      98              :  * @brief Adds TMAS instance to database and sets the received TMAP role(s).
      99              :  *
     100              :  * @param role TMAP role(s) of the device (one or multiple).
     101              :  *
     102              :  * @return 0 on success or negative error value on failure.
     103              :  */
     104            1 : int bt_tmap_register(enum bt_tmap_role role);
     105              : 
     106              : /**
     107              :  * @brief Perform service discovery as TMAP Client
     108              :  *
     109              :  * @param conn     Pointer to the connection.
     110              :  * @param tmap_cb  Pointer to struct of TMAP callbacks.
     111              :  *
     112              :  * @return 0 on success or negative error value on failure.
     113              :  */
     114            1 : int bt_tmap_discover(struct bt_conn *conn, const struct bt_tmap_cb *tmap_cb);
     115              : 
     116              : /**
     117              :  * @brief Set one or multiple TMAP roles dynamically.
     118              :  *        Previously registered value will be overwritten.
     119              :  *
     120              :  * @param role     TMAP role(s).
     121              :  *
     122              :  */
     123            1 : void bt_tmap_set_role(enum bt_tmap_role role);
     124              : 
     125              : /**
     126              :  * @}
     127              :  */
     128              : 
     129              : #endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_TMAP_ */
        

Generated by: LCOV version 2.0-1