Skip to content

Commit 53c2b4b

Browse files
szymon-czaprackisjanc
authored andcommitted
nimble/btp: Implement missing BAP layer commands & events
Bring BAP commands and events up to date with their corresponding counterparts in Auto-PTS. Bring file structure up to coding standards.
1 parent 2625469 commit 53c2b4b

File tree

1 file changed

+208
-34
lines changed

1 file changed

+208
-34
lines changed

apps/bttester/src/btp/btp_bap.h

Lines changed: 208 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
/* BAP Service */
3131
/* commands */
32-
#define BTP_BAP_READ_SUPPORTED_COMMANDS 0x01
32+
#define BTP_BAP_READ_SUPPORTED_COMMANDS 0x01
3333
struct btp_bap_read_supported_commands_rp {
3434
uint8_t data[0];
3535
} __packed;
@@ -58,70 +58,244 @@ struct bap_broadcast_source_setup_rp {
5858
uint8_t broadcast_id[3];
5959
} __packed;
6060

61-
#define BTP_BAP_BROADCAST_SOURCE_RELEASE 0x05
61+
#define BTP_BAP_BROADCAST_SOURCE_RELEASE 0x05
6262
struct bap_bap_broadcast_source_release_cmd {
6363
uint8_t broadcast_id[3];
6464
} __packed;
6565

66-
#define BTP_BAP_BROADCAST_ADV_START 0x06
66+
#define BTP_BAP_BROADCAST_ADV_START 0x06
6767
struct bap_bap_broadcast_adv_start_cmd {
6868
uint8_t broadcast_id[3];
6969
} __packed;
7070

71-
#define BTP_BAP_BROADCAST_ADV_STOP 0x07
71+
#define BTP_BAP_BROADCAST_ADV_STOP 0x07
7272
struct bap_bap_broadcast_adv_stop_cmd {
7373
uint8_t broadcast_id[3];
7474
} __packed;
7575

76-
#define BTP_BAP_BROADCAST_SOURCE_START 0x08
76+
#define BTP_BAP_BROADCAST_SOURCE_START 0x08
7777
struct bap_bap_broadcast_source_start_cmd {
7878
uint8_t broadcast_id[3];
7979
} __packed;
8080

81-
#define BTP_BAP_BROADCAST_SOURCE_STOP 0x09
81+
#define BTP_BAP_BROADCAST_SOURCE_STOP 0x09
8282
struct bap_bap_broadcast_source_stop_cmd {
8383
uint8_t broadcast_id[3];
8484
} __packed;
8585

86-
#define BTP_BAP_BROADCAST_SINK_SETUP 0x0a
86+
#define BTP_BAP_BROADCAST_SINK_SETUP 0x0a
87+
struct btp_bap_broadcast_sink_setup_cmd {
88+
} __packed;
89+
90+
#define BTP_BAP_BROADCAST_SINK_RELEASE 0x0b
91+
struct btp_bap_broadcast_sink_release_cmd {
92+
} __packed;
93+
94+
#define BTP_BAP_BROADCAST_SCAN_START 0x0c
95+
struct btp_bap_broadcast_scan_start_cmd {
96+
} __packed;
97+
98+
#define BTP_BAP_BROADCAST_SCAN_STOP 0x0d
99+
struct btp_bap_broadcast_scan_stop_cmd {
100+
} __packed;
87101

88-
#define BTP_BAP_BROADCAST_SINK_STOP 0x0f
102+
#define BTP_BAP_BROADCAST_SINK_SYNC 0x0e
103+
struct btp_bap_broadcast_sink_sync_cmd {
104+
ble_addr_t addr;
105+
uint8_t broadcast_id[3];
106+
uint8_t advertiser_sid;
107+
uint16_t skip;
108+
uint16_t sync_timeout;
109+
uint8_t past_avail;
110+
uint8_t src_id;
111+
} __packed;
112+
113+
#define BTP_BAP_BROADCAST_SINK_STOP 0x0f
89114
struct btp_bap_broadcast_sink_stop_cmd {
90115
ble_addr_t address;
91116
uint8_t broadcast_id[3];
92117
} __packed;
93118

94-
#define BTP_BAP_SET_BROADCAST_CODE 0x17
119+
#define BTP_BAP_BROADCAST_SINK_BIS_SYNC 0x10
120+
struct btp_bap_broadcast_sink_bis_sync_cmd {
121+
ble_addr_t address;
122+
uint8_t broadcast_id[3];
123+
uint32_t requested_bis_sync;
124+
} __packed;
125+
126+
#define BTP_BAP_DISCOVER_SCAN_DELEGATOR 0x11
127+
struct btp_bap_discover_scan_delegator_cmd {
128+
ble_addr_t address;
129+
} __packed;
130+
131+
#define BTP_BAP_BROADCAST_ASSISTANT_SCAN_START 0x12
132+
struct btp_bap_broadcast_assistant_scan_start_cmd {
133+
ble_addr_t address;
134+
} __packed;
135+
136+
#define BTP_BAP_BROADCAST_ASSISTANT_SCAN_STOP 0x13
137+
struct btp_bap_broadcast_assistant_scan_stop_cmd {
138+
ble_addr_t address;
139+
} __packed;
140+
141+
#define BTP_BAP_ADD_BROADCAST_SRC 0x14
142+
struct btp_bap_add_broadcast_src_cmd {
143+
ble_addr_t address;
144+
ble_addr_t broadcaster_address;
145+
uint8_t advertiser_sid;
146+
uint8_t broadcast_id[3];
147+
uint8_t padv_sync;
148+
uint16_t padv_interval;
149+
uint8_t num_subgroups;
150+
uint8_t subgroups[0];
151+
} __packed;
152+
153+
#define BTP_BAP_REMOVE_BROADCAST_SRC 0x15
154+
struct btp_bap_remove_broadcast_src_cmd {
155+
ble_addr_t address;
156+
uint8_t source_id;
157+
} __packed;
158+
159+
#define BTP_BAP_MODIFY_BROADCAST_SRC 0x16
160+
struct btp_bap_modify_broadcast_src_cmd {
161+
ble_addr_t address;
162+
uint8_t source_id;
163+
uint8_t padv_sync;
164+
uint16_t padv_interval;
165+
uint8_t num_subgroups;
166+
uint8_t subgroups[0];
167+
} __packed;
168+
169+
#define BTP_BAP_SET_BROADCAST_CODE 0x17
95170
struct btp_bap_set_broadcast_code_cmd {
96171
ble_addr_t addr;
97172
uint8_t source_id;
98173
uint8_t broadcast_code[16];
99174
} __packed;
100175

101-
#define BTP_BAP_BROADCAST_SINK_RELEASE 0x0b
102-
#define BTP_BAP_BROADCAST_SCAN_START 0x0c
103-
#define BTP_BAP_BROADCAST_SCAN_STOP 0x0d
104-
#define BTP_BAP_BROADCAST_SINK_SYNC 0x0e
105-
#define BTP_BAP_BROADCAST_SINK_BIS_SYNC 0x10
106-
#define BTP_BAP_DISCOVER_SCAN_DELEGATOR 0x11
107-
#define BTP_BAP_BROADCAST_ASSISTANT_SCAN_START 0x12
108-
#define BTP_BAP_BROADCAST_ASSISTANT_SCAN_STOP 0x13
109-
#define BTP_BAP_ADD_BROADCAST_SRC 0x14
110-
#define BTP_BAP_REMOVE_BROADCAST_SRC 0x15
111-
#define BTP_BAP_MODIFY_BROADCAST_SRC 0x16
112-
#define BTP_BAP_SET_BROADCAST_CODE 0x17
113-
#define BTP_BAP_SEND_PAST 0x18
114-
115-
#define BTP_BAP_EV_DISCOVERY_COMPLETED 0x80
116-
#define BTP_BAP_EV_CODEC_CAP_FOUND 0x81
117-
#define BTP_BAP_EV_ASE_FOUND 0x82
118-
#define BTP_BAP_EV_STREAM_RECEIVED 0x83
119-
#define BTP_BAP_EV_BAA_FOUND 0x84
120-
#define BTP_BAP_EV_BIS_FOUND 0x85
121-
#define BTP_BAP_EV_BIS_SYNCED 0x86
122-
#define BTP_BAP_EV_BIS_STREAM_RECEIVED 0x87
123-
#define BTP_BAP_EV_SCAN_DELEGATOR_FOUND 0x88
124-
#define BTP_BAP_EV_BROADCAST_RECEIVE_STATE 0x89
125-
#define BTP_BAP_EV_PA_SYNC_REQ 0x8a
176+
#define BTP_BAP_SEND_PAST 0x18
177+
struct btp_bap_send_past_cmd {
178+
ble_addr_t address;
179+
uint8_t src_id;
180+
} __packed;
181+
182+
#define BTP_BAP_BROADCAST_SOURCE_SETUP_V2 0x19
183+
struct btp_bap_broadcast_source_setup_v2_cmd {
184+
uint8_t broadcast_id[3];
185+
uint8_t streams_per_subgroup;
186+
uint8_t subgroups;
187+
uint8_t sdu_interval[3];
188+
uint8_t framing;
189+
uint16_t max_sdu;
190+
uint8_t retransmission_num;
191+
uint16_t max_transport_latency;
192+
uint8_t presentation_delay[3];
193+
uint8_t coding_format;
194+
uint16_t vid;
195+
uint16_t cid;
196+
uint8_t cc_ltvs_len;
197+
uint8_t cc_ltvs[];
198+
} __packed;
199+
struct btp_bap_broadcast_source_setup_v2_rp {
200+
uint32_t gap_settings;
201+
} __packed;
202+
203+
#define BTP_BAP_EV_DISCOVERY_COMPLETED 0x80
204+
struct btp_bap_discovery_completed_ev {
205+
ble_addr_t address;
206+
uint8_t status;
207+
} __packed;
208+
209+
#define BTP_BAP_EV_CODEC_CAP_FOUND 0x81
210+
struct btp_bap_codec_cap_found_ev {
211+
ble_addr_t address;
212+
uint8_t dir;
213+
uint8_t coding_format;
214+
uint16_t frequencies;
215+
uint8_t frame_durations;
216+
uint32_t octets_per_frame;
217+
uint8_t channel_counts;
218+
} __packed;
219+
220+
#define BTP_BAP_EV_ASE_FOUND 0x82
221+
struct btp_bap_ase_found_ev {
222+
ble_addr_t address;
223+
uint8_t dir;
224+
uint8_t ase_id;
225+
} __packed;
226+
227+
#define BTP_BAP_EV_STREAM_RECEIVED 0x83
228+
struct btp_bap_stream_received_ev {
229+
ble_addr_t address;
230+
uint8_t ase_id;
231+
uint8_t data_len;
232+
uint8_t data[];
233+
} __packed;
234+
235+
#define BTP_BAP_EV_BAA_FOUND 0x84
236+
struct btp_bap_baa_found_ev {
237+
ble_addr_t address;
238+
uint8_t broadcast_id[3];
239+
uint8_t advertiser_sid;
240+
uint16_t padv_interval;
241+
} __packed;
242+
243+
#define BTP_BAP_EV_BIS_FOUND 0x85
244+
struct btp_bap_bis_found_ev {
245+
ble_addr_t address;
246+
uint8_t broadcast_id[3];
247+
uint8_t presentation_delay[3];
248+
uint8_t subgroup_id;
249+
uint8_t bis_id;
250+
uint8_t coding_format;
251+
uint16_t vid;
252+
uint16_t cid;
253+
uint8_t cc_ltvs_len;
254+
uint8_t cc_ltvs[];
255+
} __packed;
256+
257+
#define BTP_BAP_EV_BIS_SYNCED 0x86
258+
struct btp_bap_bis_synced_ev {
259+
ble_addr_t address;
260+
uint8_t broadcast_id[3];
261+
uint8_t bis_id;
262+
} __packed;
263+
264+
#define BTP_BAP_EV_BIS_STREAM_RECEIVED 0x87
265+
struct btp_bap_bis_stream_received_ev {
266+
ble_addr_t address;
267+
uint8_t broadcast_id[3];
268+
uint8_t bis_id;
269+
uint8_t data_len;
270+
uint8_t data[];
271+
} __packed;
272+
273+
#define BTP_BAP_EV_SCAN_DELEGATOR_FOUND 0x88
274+
struct btp_bap_scan_delegator_found_ev {
275+
ble_addr_t address;
276+
} __packed;
277+
278+
#define BTP_BAP_EV_BROADCAST_RECEIVE_STATE 0x89
279+
struct btp_bap_broadcast_receive_state_ev {
280+
ble_addr_t address;
281+
uint8_t source_id;
282+
ble_addr_t broadcaster_address;
283+
uint8_t advertiser_sid;
284+
uint8_t broadcast_id[3];
285+
uint8_t pa_sync_state;
286+
uint8_t big_encryption;
287+
uint8_t num_subgroups;
288+
uint8_t subgroups[0];
289+
} __packed;
290+
291+
#define BTP_BAP_EV_PA_SYNC_REQ 0x8a
292+
struct btp_bap_pa_sync_req_ev {
293+
ble_addr_t address;
294+
uint8_t source_id;
295+
uint8_t advertiser_sid;
296+
uint8_t broadcast_id[3];
297+
uint8_t past_avail;
298+
uint16_t pa_interval;
299+
} __packed;
126300

127301
#endif /* H_BTP_BAP_ */

0 commit comments

Comments
 (0)