Line data Source code
1 1 : /**
2 : * @file
3 : * @brief Header for Bluetooth Audio Content Control Identifier.
4 : *
5 : * Copyright (c) 2020 Bose Corporation
6 : * Copyright (c) 2021-2024 Nordic Semiconductor ASA
7 : *
8 : * SPDX-License-Identifier: Apache-2.0
9 : */
10 :
11 : #ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_CCID_H_
12 : #define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_CCID_H_
13 :
14 : /**
15 : * @brief Bluetooth Content Control Identifier (CCID)
16 : * @defgroup bt_ccid Bluetooth Content Control Identifier
17 : *
18 : * @since 3.7
19 : * @version 0.8.0
20 : *
21 : * @ingroup bluetooth
22 : * @{
23 : *
24 : * The Content Control Identifier (CCID) API manages CCIDs for @ref BT_UUID_CCID characteristics.
25 : */
26 :
27 : #include <stdint.h>
28 :
29 : #include <zephyr/bluetooth/gatt.h>
30 :
31 : #ifdef __cplusplus
32 : extern "C" {
33 : #endif
34 :
35 : /** Minimum CCID value */
36 1 : #define BT_CCID_MIN 0
37 : /** Maximum CCID value */
38 1 : #define BT_CCID_MAX 255
39 :
40 : /**
41 : * @brief Allocates a CCID value.
42 : *
43 : * This should always be called right before registering a GATT service that contains a
44 : * @ref BT_UUID_CCID characteristic. Allocating a CCID without registering the characteristic
45 : * may (in very rare cases) result in duplicated CCIDs on the device.
46 : *
47 : * Requires that @kconfig{CONFIG_BT_CONN} is enabled.
48 : *
49 : * @retval ccid 8-bit unsigned CCID value on success
50 : * @retval -ENOMEM No more CCIDs can be allocated
51 : */
52 1 : int bt_ccid_alloc_value(void);
53 :
54 : /**
55 : * @brief Get the GATT attribute of a CCID value
56 : *
57 : * Searches the current GATT database for a CCID characteristic that has the supplied CCID value.
58 : *
59 : * Requires that @kconfig{CONFIG_BT_CONN} is enabled.
60 : *
61 : * @param ccid The CCID to search for
62 : *
63 : * @retval NULL None was found
64 : * @retval attr Pointer to a GATT attribute
65 : */
66 1 : const struct bt_gatt_attr *bt_ccid_find_attr(uint8_t ccid);
67 :
68 : /** @} */
69 :
70 : #ifdef __cplusplus
71 : }
72 : #endif
73 :
74 : #endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_CCID_H_ */
|