128 lines
3.7 KiB
C
128 lines
3.7 KiB
C
#ifndef _BAP_H_
|
|
#define _BAP_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
#include "ble_audio_def.h"
|
|
#include "pacs_client.h"
|
|
#include "codec_qos.h"
|
|
//#include "ascs_def.h"
|
|
|
|
#define BAP_BROADCAST_SOURCE_ROLE 0x01
|
|
#define BAP_BROADCAST_SINK_ROLE 0x02
|
|
#define BAP_BROADCAST_ASSISTANT_ROLE 0x04
|
|
#define BAP_SCAN_DELEGATOR_ROLE 0x08
|
|
#define BAP_UNICAST_CLT_SRC_ROLE 0x10
|
|
#define BAP_UNICAST_CLT_SNK_ROLE 0x20
|
|
#define BAP_UNICAST_SRV_SRC_ROLE 0x40
|
|
#define BAP_UNICAST_SRV_SNK_ROLE 0x80
|
|
|
|
typedef struct
|
|
{
|
|
uint8_t role_mask;
|
|
uint8_t brs_num; //use isoc_big_receiver_num
|
|
|
|
uint8_t snk_ase_num;
|
|
uint8_t src_ase_num;
|
|
|
|
bool init_gap;
|
|
//for BAP_UNICAST_CLT_SRC_ROLE, BAP_UNICAST_CLT_SNK_ROLE
|
|
uint8_t isoc_cig_max_num;
|
|
|
|
//for BAP_UNICAST_CLT_SRC_ROLE, BAP_UNICAST_CLT_SNK_ROLE, BAP_UNICAST_SRV_SRC_ROLE, BAP_UNICAST_SRV_SNK_ROLE
|
|
uint8_t isoc_cis_max_num;
|
|
|
|
//for BAP_BROADCAST_SOURCE_ROLE
|
|
uint8_t pa_adv_num;
|
|
uint8_t isoc_big_broadcaster_num;
|
|
uint8_t isoc_bis_broadcaster_num;
|
|
|
|
//for BAP_BROADCAST_SINK_ROLE and BAP_BROADCAST_ASSISTANT_ROLE
|
|
uint8_t pa_sync_num;
|
|
uint8_t isoc_big_receiver_num;
|
|
uint8_t isoc_bis_receiver_num;
|
|
} T_BAP_ROLE_INFO;
|
|
|
|
#if LE_AUDIO_PACS_CLIENT_SUPPORT
|
|
#define PACS_AUDIO_AVAILABLE_CONTEXTS_EXIST 0x01
|
|
#define PACS_AUDIO_SUPPORTED_CONTEXTS_EXIST 0x02
|
|
#define PACS_SINK_AUDIO_LOC_EXIST 0x04
|
|
#define PACS_SINK_PAC_EXIST 0x08
|
|
#define PACS_SOURCE_AUDIO_LOC_EXIST 0x10
|
|
#define PACS_SOURCE_PAC_EXIST 0x20
|
|
|
|
typedef struct
|
|
{
|
|
uint16_t value_exist;
|
|
uint8_t sink_pac_num;
|
|
uint8_t source_pac_num;
|
|
uint32_t snk_audio_loc;
|
|
uint32_t src_audio_loc;
|
|
uint16_t snk_sup_context;
|
|
uint16_t src_sup_context;
|
|
uint16_t snk_avail_context;
|
|
uint16_t src_avail_context;
|
|
} T_BAP_PACS_INFO;
|
|
|
|
typedef struct
|
|
{
|
|
uint8_t codec_id[CODEC_ID_LEN];
|
|
uint16_t handle;
|
|
uint16_t pref_audio_contexts;
|
|
T_CODEC_CAP codec_cap;
|
|
uint32_t lc3_sup_cfg_bits;
|
|
} T_BAP_PAC_RECORD;
|
|
|
|
//LE_AUDIO_MSG_BAP_PACS_DIS_DONE
|
|
typedef struct
|
|
{
|
|
uint16_t conn_handle;
|
|
bool is_found;
|
|
uint8_t sink_pac_num;
|
|
uint8_t source_pac_num;
|
|
} T_BAP_PACS_DIS_DONE;
|
|
|
|
//LE_AUDIO_MSG_BAP_PAC_NOTIFY
|
|
typedef struct
|
|
{
|
|
uint16_t conn_handle;
|
|
uint16_t handle;
|
|
} T_BAP_PAC_NOTIFY;
|
|
|
|
bool bap_pacs_get_info(uint16_t conn_handle, T_BAP_PACS_INFO *p_pacs_info);
|
|
bool bap_pacs_get_pac_record(uint16_t conn_handle, T_AUDIO_DIRECTION direction, uint8_t *p_pac_num,
|
|
T_BAP_PAC_RECORD *p_pac_tbl);
|
|
bool bap_pacs_get_pac_record_by_handle(uint16_t conn_handle, uint16_t handle, uint8_t *p_pac_num,
|
|
T_BAP_PAC_RECORD *p_pac_tbl);
|
|
uint32_t bap_pacs_get_lc3_snk_table_msk(uint16_t conn_handle, uint16_t prefer_context,
|
|
uint8_t chl_cnt,
|
|
uint8_t block_num);
|
|
uint32_t bap_pacs_get_lc3_src_table_msk(uint16_t conn_handle, uint16_t prefer_context,
|
|
uint8_t chl_cnt,
|
|
uint8_t block_num);
|
|
#endif
|
|
|
|
#if LE_AUDIO_ASCS_CLIENT_SUPPORT
|
|
#define ASE_ID_MAX_NUM 8
|
|
//LE_AUDIO_MSG_BAP_ASCS_DIS_DONE
|
|
typedef struct
|
|
{
|
|
uint16_t conn_handle;
|
|
bool is_found;
|
|
uint8_t sink_ase_num;
|
|
uint8_t sink_ase_id[ASE_ID_MAX_NUM];
|
|
uint8_t source_ase_num;
|
|
uint8_t source_ase_id[ASE_ID_MAX_NUM];
|
|
} T_BAP_ASCS_DIS_DONE;
|
|
#endif
|
|
|
|
bool bap_role_init(T_BAP_ROLE_INFO *p_role_info);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif
|