blob: 4369e87536a2f2965eb6255ab06bb66f1631dde5 [file] [log] [blame]
/* btp_cap.h - Bluetooth tester headers */
/*
* Copyright (c) 2023 Codecoup
*
* SPDX-License-Identifier: Apache-2.0
*/
/* CAP commands */
#define BTP_CAP_READ_SUPPORTED_COMMANDS 0x01
struct btp_cap_read_supported_commands_rp {
uint8_t data[0];
} __packed;
#define BTP_CAP_DISCOVER 0x02
struct btp_cap_discover_cmd {
bt_addr_le_t address;
} __packed;
#define BTP_CAP_UNICAST_SETUP_ASE 0x03
struct btp_cap_unicast_setup_ase_cmd {
bt_addr_le_t address;
uint8_t ase_id;
uint8_t cis_id;
uint8_t cig_id;
uint8_t coding_format;
uint16_t vid;
uint16_t cid;
uint8_t sdu_interval[3];
uint8_t framing;
uint16_t max_sdu;
uint8_t retransmission_num;
uint16_t max_transport_latency;
uint8_t presentation_delay[3];
uint8_t cc_ltvs_len;
uint8_t metadata_ltvs_len;
uint8_t ltvs[0];
} __packed;
#define BTP_CAP_UNICAST_AUDIO_START 0x04
struct btp_cap_unicast_audio_start_cmd {
uint8_t cig_id;
uint8_t set_type;
} __packed;
#define BTP_CAP_UNICAST_AUDIO_START_SET_TYPE_AD_HOC 0x00
#define BTP_CAP_UNICAST_AUDIO_START_SET_TYPE_CSIP 0x01
#define BTP_CAP_UNICAST_AUDIO_UPDATE 0x05
struct btp_cap_unicast_audio_update_cmd {
uint8_t stream_count;
uint8_t update_data[0];
} __packed;
struct btp_cap_unicast_audio_update_data {
bt_addr_le_t address;
uint8_t ase_id;
uint8_t metadata_ltvs_len;
uint8_t metadata_ltvs[0];
} __packed;
#define BTP_CAP_UNICAST_AUDIO_STOP 0x06
struct btp_cap_unicast_audio_stop_cmd {
uint8_t cig_id;
} __packed;
#define BTP_CAP_BROADCAST_SOURCE_SETUP_STREAM 0x07
struct btp_cap_broadcast_source_setup_stream_cmd {
uint8_t source_id;
uint8_t subgroup_id;
uint8_t coding_format;
uint16_t vid;
uint16_t cid;
uint8_t cc_ltvs_len;
uint8_t metadata_ltvs_len;
uint8_t ltvs[0];
} __packed;
#define BTP_CAP_BROADCAST_SOURCE_SETUP_SUBGROUP 0x08
struct btp_cap_broadcast_source_setup_subgroup_cmd {
uint8_t source_id;
uint8_t subgroup_id;
uint8_t coding_format;
uint16_t vid;
uint16_t cid;
uint8_t cc_ltvs_len;
uint8_t metadata_ltvs_len;
uint8_t ltvs[0];
} __packed;
#define BTP_CAP_BROADCAST_SOURCE_SETUP 0x09
struct btp_cap_broadcast_source_setup_cmd {
uint8_t source_id;
uint8_t broadcast_id[3];
uint8_t sdu_interval[3];
uint8_t framing;
uint16_t max_sdu;
uint8_t retransmission_num;
uint16_t max_transport_latency;
uint8_t presentation_delay[3];
uint8_t flags;
uint8_t broadcast_code[BT_AUDIO_BROADCAST_CODE_SIZE];
} __packed;
struct btp_cap_broadcast_source_setup_rp {
uint8_t source_id;
uint32_t gap_settings;
uint8_t broadcast_id[BT_AUDIO_BROADCAST_ID_SIZE];
} __packed;
#define BTP_CAP_BROADCAST_SOURCE_SETUP_FLAG_ENCRYPTION BIT(0)
#define BTP_CAP_BROADCAST_SOURCE_SETUP_FLAG_SUBGROUP_CODEC BIT(1)
#define BTP_CAP_BROADCAST_SOURCE_RELEASE 0x0a
struct btp_cap_broadcast_source_release_cmd {
uint8_t source_id;
} __packed;
#define BTP_CAP_BROADCAST_ADV_START 0x0b
struct btp_cap_broadcast_adv_start_cmd {
uint8_t source_id;
} __packed;
#define BTP_CAP_BROADCAST_ADV_STOP 0x0c
struct btp_cap_broadcast_adv_stop_cmd {
uint8_t source_id;
} __packed;
#define BTP_CAP_BROADCAST_SOURCE_START 0x0d
struct btp_cap_broadcast_source_start_cmd {
uint8_t source_id;
} __packed;
#define BTP_CAP_BROADCAST_SOURCE_STOP 0x0e
struct btp_cap_broadcast_source_stop_cmd {
uint8_t source_id;
} __packed;
#define BTP_CAP_BROADCAST_SOURCE_UPDATE 0x0f
struct btp_cap_broadcast_source_update_cmd {
uint8_t source_id;
uint8_t metadata_ltvs_len;
uint8_t metadata_ltvs[0];
} __packed;
/* CAP events */
#define BTP_CAP_EV_DISCOVERY_COMPLETED 0x80
struct btp_cap_discovery_completed_ev {
bt_addr_le_t address;
uint8_t status;
} __packed;
#define BTP_CAP_DISCOVERY_STATUS_SUCCESS 0x00
#define BTP_CAP_DISCOVERY_STATUS_FAILED 0x01
#define BTP_CAP_EV_UNICAST_START_COMPLETED 0x81
struct btp_cap_unicast_start_completed_ev {
uint8_t cig_id;
uint8_t status;
} __packed;
#define BTP_CAP_UNICAST_START_STATUS_SUCCESS 0x00
#define BTP_CAP_UNICAST_START_STATUS_FAILED 0x01
#define BTP_CAP_EV_UNICAST_STOP_COMPLETED 0x82
struct btp_cap_unicast_stop_completed_ev {
uint8_t cig_id;
uint8_t status;
} __packed;
#define BTP_CAP_UNICAST_STOP_STATUS_SUCCESS 0x00
#define BTP_CAP_UNICAST_STOP_STATUS_FAILED 0x01