Realtek/inc/bluetooth/leaudio/pacs_client.h

103 lines
2.1 KiB
C
Raw Permalink Normal View History

2025-11-25 10:21:47 +08:00
#ifndef _PACS_CLIENT_H_
#define _PACS_CLIENT_H_
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef enum
{
PACS_OP_SINK,
PACS_OP_SOURCE,
PACS_OP_ALL
} T_PACS_CCCD_OP_TYPE;
typedef enum
{
PACS_AUDIO_AVAILABLE_CONTEXTS,
PACS_AUDIO_SUPPORTED_CONTEXTS,
PACS_SINK_AUDIO_LOC,
PACS_SINK_PAC,
PACS_SOURCE_AUDIO_LOC,
PACS_SOURCE_PAC,
} T_PACS_TYPE;
//LE_AUDIO_MSG_PACS_CLIENT_DIS_DONE
typedef struct
{
uint16_t conn_handle;
bool is_found;
bool load_form_ftl;
uint8_t sink_pac_num;
uint8_t source_pac_num;
bool sink_loc_writable;
bool sink_loc_exist;
bool source_loc_writable;
bool source_loc_exist;
} T_PACS_CLIENT_DIS_DONE;
//LE_AUDIO_MSG_PACS_CLIENT_CCCD
typedef struct
{
uint16_t conn_handle;
T_PACS_CCCD_OP_TYPE type;
uint16_t cause;
} T_PACS_CLIENT_CCCD;
//LE_AUDIO_MSG_PACS_CLIENT_WRITE_SINK_LOC_RESULT
//LE_AUDIO_MSG_PACS_CLIENT_WRITE_SOURCE_LOC_RESULT
typedef struct
{
uint16_t conn_handle;
uint16_t cause;
} T_PACS_CLIENT_WRITE_RESULT;
typedef struct
{
bool is_complete;
uint16_t handle;
uint16_t pac_record_len;
uint8_t *p_record;
} T_PAC_CHAR_DATA;
typedef struct
{
uint16_t sink_contexts;
uint16_t source_contexts;
} T_AUDIO_CONTEXTS_DATA;
typedef union
{
T_AUDIO_CONTEXTS_DATA contexts_data;
uint32_t audio_locations;
T_PAC_CHAR_DATA pac_data;
} T_PACS_DATA;
//LE_AUDIO_MSG_PACS_CLIENT_READ_RESULT
typedef struct
{
uint16_t conn_handle;
T_PACS_TYPE type;
uint16_t cause;
T_PACS_DATA data;
} T_PACS_CLIENT_READ_RESULT;
//LE_AUDIO_MSG_PACS_CLIENT_NOTIFY
typedef struct
{
uint16_t conn_handle;
T_PACS_TYPE type;
T_PACS_DATA data;
} T_PACS_CLIENT_NOTIFY;
bool pacs_read_char_value(uint16_t conn_handle, T_PACS_TYPE type);
bool pacs_enable_cccd(uint16_t conn_handle, T_PACS_CCCD_OP_TYPE type);
bool pacs_write_sink_audio_locations(uint16_t conn_handle, uint32_t sink_audio_location);
bool pacs_write_source_audio_locations(uint16_t conn_handle, uint32_t source_audio_location);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif