aboutsummaryrefslogtreecommitdiff
path: root/inc/bluetooth/leaudio/set_coordinator_client.h
blob: a7124bcd933869551dbacc416cd42295b73f2bb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#ifndef _SET_COORDINATOR_TEST_H_
#define _SET_COORDINATOR_TEST_H_

#ifdef  __cplusplus
extern "C" {
#endif      /* __cplusplus */

#if LE_AUDIO_CSIS_CLIENT_SUPPORT
#include "csis_rsi.h"
#include "csis_def.h"
#include "ble_audio_group.h"
#include "os_queue.h"

#define CSIS_SIZE_UNKNOWN     0

#define CSIS_LOCK_FLAG 0x01
#define CSIS_SIRK_FLAG 0x02
#define CSIS_SIZE_FLAG 0x04
#define CSIS_RANK_FLAG 0x08

typedef struct
{
    uint16_t conn_handle;
    bool    is_found;
    bool    load_form_ftl;
    uint8_t srv_num;
} T_CSIS_CLIENT_DIS_DONE;

typedef struct
{
    uint16_t          conn_handle;
    uint16_t          cause;
    T_BLE_AUDIO_GROUP_HANDLE group_handle;
} T_CSIS_MEMBER_LOCK_REQ_DONE;

typedef struct
{
    uint16_t          conn_handle;
    uint16_t          cause;
    T_BLE_AUDIO_GROUP_HANDLE group_handle;
} T_CSIS_MEMBER_UNLOCK_REQ_DONE;

typedef struct
{
    uint16_t          conn_handle;
    uint16_t          srv_uuid;
    uint8_t           srv_instance_id;
    T_BLE_AUDIO_GROUP_HANDLE group_handle;
    uint8_t           lock;
} T_CSIS_MEMBER_LOCK_STATE;

typedef struct
{
    T_BLE_AUDIO_GROUP_HANDLE group_handle;
} T_CSIS_COOR_SET_DEL;

typedef struct
{
    uint8_t         set_size;
    uint8_t         size;
    bool            search_done;
} T_CSIS_SEARCH_RESULT;

typedef struct
{
    T_BLE_AUDIO_GROUP_HANDLE group_handle;
    T_BLE_AUDIO_DEV_HANDLE   dev_handle;
    uint8_t                 bd_addr[6];
    uint8_t                 addr_type;
    uint16_t                srv_uuid;
    uint8_t                 rank;
    uint8_t                 size;
    uint8_t                 sirk[CSI_SIRK_LEN];
} T_CSIS_SET_MEM_FOUND;

typedef struct
{
    uint16_t                cause;
    uint16_t                conn_handle;
    T_BLE_AUDIO_GROUP_HANDLE group_handle;
    T_BLE_AUDIO_DEV_HANDLE   dev_handle;
    uint8_t                 bd_addr[6];
    uint8_t                 addr_type;
    uint16_t                srv_uuid;
    uint8_t                 srv_instance_id;
    uint8_t                 char_exit;
    uint8_t                 rank;
    uint8_t                 size;
    uint8_t                 sirk[CSI_SIRK_LEN];
} T_CSIS_READ_RESULT;

//LE_AUDIO_MSG_CSIS_CLIENT_SIRK_CHANGE
typedef struct
{
    T_BLE_AUDIO_GROUP_HANDLE group_handle;
    uint8_t                  sirk[CSI_SIRK_LEN];
} T_CSIS_SIRK_CHANGE;

typedef struct
{
    uint16_t serv_uuid;
    uint8_t  srv_instance_id;
    uint8_t  dev_num;
    uint8_t  set_mem_size;
    uint8_t  sirk[CSI_SIRK_LEN];
} T_CSIS_GROUP_INFO;

void coordinator_read_csis_chars(uint16_t conn_handle, uint8_t instance_id);
bool csis_client_parse_ext_adv(uint8_t report_data_len, uint8_t *p_report_data,
                               uint8_t *p_bd_addr, uint8_t addr_type);
bool set_discover_members_state(T_BLE_AUDIO_GROUP_HANDLE group_handle);
bool csis_client_get_info(T_BLE_AUDIO_GROUP_HANDLE group_handle, T_CSIS_GROUP_INFO *p_info);
bool set_lock_of_coor_set(T_BLE_AUDIO_GROUP_HANDLE group_handle);
bool set_unlock_of_coor_set(T_BLE_AUDIO_GROUP_HANDLE group_handle);
T_BLE_AUDIO_GROUP_HANDLE coordinator_set_find_by_rsi(uint8_t *p_rsik);
T_BLE_AUDIO_GROUP_HANDLE coordinator_set_find_by_sirk(uint8_t *p_sirk);
T_BLE_AUDIO_GROUP_HANDLE coordinator_set_find_by_addr(uint8_t *bd_addr, uint8_t addr_type,
                                                      uint16_t serv_uuid);
T_BLE_AUDIO_DEV_HANDLE set_member_find_by_conn_handle(T_BLE_AUDIO_GROUP_HANDLE group_handle,
                                                      uint16_t conn_handle);
bool coordinator_or_member_find_by_addr(uint8_t *bd_addr, uint8_t addr_type, uint16_t serv_uuid,
                                        T_BLE_AUDIO_GROUP_HANDLE *p_group_handle, T_BLE_AUDIO_DEV_HANDLE *p_dev_handle);
bool set_member_info_find_by_dev_handle(T_BLE_AUDIO_DEV_HANDLE *p_dev_handle,
                                        T_CSIS_SET_MEM_FOUND *set_mem_info);

#endif

#ifdef  __cplusplus
}
#endif      /*  __cplusplus */

#endif