xref: /btstack/src/btstack_event.h (revision 1882d12dc36ae7b48f7f4ed3fd8d029fba3b08b1)
1 /*
2  * Copyright (C) 2016 BlueKitchen GmbH
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  *    notice, this list of conditions and the following disclaimer in the
12  *    documentation and/or other materials provided with the distribution.
13  * 3. Neither the name of the copyright holders nor the names of
14  *    contributors may be used to endorse or promote products derived
15  *    from this software without specific prior written permission.
16  * 4. Any redistribution, use, or modification is done solely for
17  *    personal benefit and not for any commercial purpose or for
18  *    monetary gain.
19  *
20  * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS
21  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS
24  * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
27  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
30  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31  * SUCH DAMAGE.
32  *
33  * Please inquire about commercial licensing options at
34  * [email protected]
35  *
36  */
37 
38 
39 /*
40  *  btstack_event.h
41  *
42  *  @brief BTstack event getter/setter
43  *  @note  Don't edit - generated by tool/btstack_event_generator.py
44  *
45  */
46 
47 #ifndef __BTSTACK_EVENT_H
48 #define __BTSTACK_EVENT_H
49 
50 #if defined __cplusplus
51 extern "C" {
52 #endif
53 
54 #include "btstack_util.h"
55 #include <stdint.h>
56 
57 #ifdef ENABLE_BLE
58 #include "ble/gatt_client.h"
59 #endif
60 
61 /* API_START */
62 
63 /**
64  * @brief Get event type
65  * @param event
66  * @return type of event
67  */
68 static inline uint8_t hci_event_packet_get_type(const uint8_t * event){
69     return event[0];
70 }
71 
72 /***
73  * @brief Get subevent code for ancs event
74  * @param event packet
75  * @return subevent_code
76  */
77 static inline uint8_t hci_event_ancs_meta_get_subevent_code(const uint8_t * event){
78     return event[2];
79 }
80 /***
81  * @brief Get subevent code for avdtp event
82  * @param event packet
83  * @return subevent_code
84  */
85 static inline uint8_t hci_event_avdtp_meta_get_subevent_code(const uint8_t * event){
86     return event[2];
87 }
88 /***
89  * @brief Get subevent code for a2dp event
90  * @param event packet
91  * @return subevent_code
92  */
93 static inline uint8_t hci_event_a2dp_meta_get_subevent_code(const uint8_t * event){
94     return event[2];
95 }
96 /***
97  * @brief Get subevent code for avrcp event
98  * @param event packet
99  * @return subevent_code
100  */
101 static inline uint8_t hci_event_avrcp_meta_get_subevent_code(const uint8_t * event){
102     return event[2];
103 }
104 /***
105  * @brief Get subevent code for goep event
106  * @param event packet
107  * @return subevent_code
108  */
109 static inline uint8_t hci_event_goep_meta_get_subevent_code(const uint8_t * event){
110     return event[2];
111 }
112 /***
113  * @brief Get subevent code for hfp event
114  * @param event packet
115  * @return subevent_code
116  */
117 static inline uint8_t hci_event_hfp_meta_get_subevent_code(const uint8_t * event){
118     return event[2];
119 }
120 /***
121  * @brief Get subevent code for hsp event
122  * @param event packet
123  * @return subevent_code
124  */
125 static inline uint8_t hci_event_hsp_meta_get_subevent_code(const uint8_t * event){
126     return event[2];
127 }
128 /***
129  * @brief Get subevent code for pbap event
130  * @param event packet
131  * @return subevent_code
132  */
133 static inline uint8_t hci_event_pbap_meta_get_subevent_code(const uint8_t * event){
134     return event[2];
135 }
136 /***
137  * @brief Get subevent code for le event
138  * @param event packet
139  * @return subevent_code
140  */
141 static inline uint8_t hci_event_le_meta_get_subevent_code(const uint8_t * event){
142     return event[2];
143 }
144 /***
145  * @brief Get subevent code for hid event
146  * @param event packet
147  * @return subevent_code
148  */
149 static inline uint8_t hci_event_hid_meta_get_subevent_code(const uint8_t * event){
150     return event[2];
151 }
152 /***
153  * @brief Get subevent code for hids event
154  * @param event packet
155  * @return subevent_code
156  */
157 static inline uint8_t hci_event_hids_meta_get_subevent_code(const uint8_t * event){
158     return event[2];
159 }
160 /**
161  * @brief Get field status from event HCI_EVENT_INQUIRY_COMPLETE
162  * @param event packet
163  * @return status
164  * @note: btstack_type 1
165  */
166 static inline uint8_t hci_event_inquiry_complete_get_status(const uint8_t * event){
167     return event[2];
168 }
169 
170 /**
171  * @brief Get field num_responses from event HCI_EVENT_INQUIRY_RESULT
172  * @param event packet
173  * @return num_responses
174  * @note: btstack_type 1
175  */
176 static inline uint8_t hci_event_inquiry_result_get_num_responses(const uint8_t * event){
177     return event[2];
178 }
179 /**
180  * @brief Get field bd_addr from event HCI_EVENT_INQUIRY_RESULT
181  * @param event packet
182  * @param Pointer to storage for bd_addr
183  * @note: btstack_type B
184  */
185 static inline void hci_event_inquiry_result_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
186     reverse_bd_addr(&event[3], bd_addr);
187 }
188 /**
189  * @brief Get field page_scan_repetition_mode from event HCI_EVENT_INQUIRY_RESULT
190  * @param event packet
191  * @return page_scan_repetition_mode
192  * @note: btstack_type 1
193  */
194 static inline uint8_t hci_event_inquiry_result_get_page_scan_repetition_mode(const uint8_t * event){
195     return event[9];
196 }
197 /**
198  * @brief Get field reserved1 from event HCI_EVENT_INQUIRY_RESULT
199  * @param event packet
200  * @return reserved1
201  * @note: btstack_type 1
202  */
203 static inline uint8_t hci_event_inquiry_result_get_reserved1(const uint8_t * event){
204     return event[10];
205 }
206 /**
207  * @brief Get field reserved2 from event HCI_EVENT_INQUIRY_RESULT
208  * @param event packet
209  * @return reserved2
210  * @note: btstack_type 1
211  */
212 static inline uint8_t hci_event_inquiry_result_get_reserved2(const uint8_t * event){
213     return event[11];
214 }
215 /**
216  * @brief Get field class_of_device from event HCI_EVENT_INQUIRY_RESULT
217  * @param event packet
218  * @return class_of_device
219  * @note: btstack_type 3
220  */
221 static inline uint32_t hci_event_inquiry_result_get_class_of_device(const uint8_t * event){
222     return little_endian_read_24(event, 12);
223 }
224 /**
225  * @brief Get field clock_offset from event HCI_EVENT_INQUIRY_RESULT
226  * @param event packet
227  * @return clock_offset
228  * @note: btstack_type 2
229  */
230 static inline uint16_t hci_event_inquiry_result_get_clock_offset(const uint8_t * event){
231     return little_endian_read_16(event, 15);
232 }
233 
234 /**
235  * @brief Get field status from event HCI_EVENT_CONNECTION_COMPLETE
236  * @param event packet
237  * @return status
238  * @note: btstack_type 1
239  */
240 static inline uint8_t hci_event_connection_complete_get_status(const uint8_t * event){
241     return event[2];
242 }
243 /**
244  * @brief Get field connection_handle from event HCI_EVENT_CONNECTION_COMPLETE
245  * @param event packet
246  * @return connection_handle
247  * @note: btstack_type 2
248  */
249 static inline uint16_t hci_event_connection_complete_get_connection_handle(const uint8_t * event){
250     return little_endian_read_16(event, 3);
251 }
252 /**
253  * @brief Get field bd_addr from event HCI_EVENT_CONNECTION_COMPLETE
254  * @param event packet
255  * @param Pointer to storage for bd_addr
256  * @note: btstack_type B
257  */
258 static inline void hci_event_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
259     reverse_bd_addr(&event[5], bd_addr);
260 }
261 /**
262  * @brief Get field link_type from event HCI_EVENT_CONNECTION_COMPLETE
263  * @param event packet
264  * @return link_type
265  * @note: btstack_type 1
266  */
267 static inline uint8_t hci_event_connection_complete_get_link_type(const uint8_t * event){
268     return event[11];
269 }
270 /**
271  * @brief Get field encryption_enabled from event HCI_EVENT_CONNECTION_COMPLETE
272  * @param event packet
273  * @return encryption_enabled
274  * @note: btstack_type 1
275  */
276 static inline uint8_t hci_event_connection_complete_get_encryption_enabled(const uint8_t * event){
277     return event[12];
278 }
279 
280 /**
281  * @brief Get field bd_addr from event HCI_EVENT_CONNECTION_REQUEST
282  * @param event packet
283  * @param Pointer to storage for bd_addr
284  * @note: btstack_type B
285  */
286 static inline void hci_event_connection_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
287     reverse_bd_addr(&event[2], bd_addr);
288 }
289 /**
290  * @brief Get field class_of_device from event HCI_EVENT_CONNECTION_REQUEST
291  * @param event packet
292  * @return class_of_device
293  * @note: btstack_type 3
294  */
295 static inline uint32_t hci_event_connection_request_get_class_of_device(const uint8_t * event){
296     return little_endian_read_24(event, 8);
297 }
298 /**
299  * @brief Get field link_type from event HCI_EVENT_CONNECTION_REQUEST
300  * @param event packet
301  * @return link_type
302  * @note: btstack_type 1
303  */
304 static inline uint8_t hci_event_connection_request_get_link_type(const uint8_t * event){
305     return event[11];
306 }
307 
308 /**
309  * @brief Get field status from event HCI_EVENT_DISCONNECTION_COMPLETE
310  * @param event packet
311  * @return status
312  * @note: btstack_type 1
313  */
314 static inline uint8_t hci_event_disconnection_complete_get_status(const uint8_t * event){
315     return event[2];
316 }
317 /**
318  * @brief Get field connection_handle from event HCI_EVENT_DISCONNECTION_COMPLETE
319  * @param event packet
320  * @return connection_handle
321  * @note: btstack_type 2
322  */
323 static inline uint16_t hci_event_disconnection_complete_get_connection_handle(const uint8_t * event){
324     return little_endian_read_16(event, 3);
325 }
326 /**
327  * @brief Get field reason from event HCI_EVENT_DISCONNECTION_COMPLETE
328  * @param event packet
329  * @return reason
330  * @note: btstack_type 1
331  */
332 static inline uint8_t hci_event_disconnection_complete_get_reason(const uint8_t * event){
333     return event[5];
334 }
335 
336 /**
337  * @brief Get field status from event HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT
338  * @param event packet
339  * @return status
340  * @note: btstack_type 1
341  */
342 static inline uint8_t hci_event_authentication_complete_event_get_status(const uint8_t * event){
343     return event[2];
344 }
345 /**
346  * @brief Get field connection_handle from event HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT
347  * @param event packet
348  * @return connection_handle
349  * @note: btstack_type 2
350  */
351 static inline uint16_t hci_event_authentication_complete_event_get_connection_handle(const uint8_t * event){
352     return little_endian_read_16(event, 3);
353 }
354 
355 /**
356  * @brief Get field status from event HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE
357  * @param event packet
358  * @return status
359  * @note: btstack_type 1
360  */
361 static inline uint8_t hci_event_remote_name_request_complete_get_status(const uint8_t * event){
362     return event[2];
363 }
364 /**
365  * @brief Get field bd_addr from event HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE
366  * @param event packet
367  * @param Pointer to storage for bd_addr
368  * @note: btstack_type B
369  */
370 static inline void hci_event_remote_name_request_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
371     reverse_bd_addr(&event[3], bd_addr);
372 }
373 /**
374  * @brief Get field remote_name from event HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE
375  * @param event packet
376  * @return remote_name
377  * @note: btstack_type N
378  */
379 static inline const char * hci_event_remote_name_request_complete_get_remote_name(const uint8_t * event){
380     return (const char *) &event[9];
381 }
382 
383 /**
384  * @brief Get field status from event HCI_EVENT_ENCRYPTION_CHANGE
385  * @param event packet
386  * @return status
387  * @note: btstack_type 1
388  */
389 static inline uint8_t hci_event_encryption_change_get_status(const uint8_t * event){
390     return event[2];
391 }
392 /**
393  * @brief Get field connection_handle from event HCI_EVENT_ENCRYPTION_CHANGE
394  * @param event packet
395  * @return connection_handle
396  * @note: btstack_type 2
397  */
398 static inline uint16_t hci_event_encryption_change_get_connection_handle(const uint8_t * event){
399     return little_endian_read_16(event, 3);
400 }
401 /**
402  * @brief Get field encryption_enabled from event HCI_EVENT_ENCRYPTION_CHANGE
403  * @param event packet
404  * @return encryption_enabled
405  * @note: btstack_type 1
406  */
407 static inline uint8_t hci_event_encryption_change_get_encryption_enabled(const uint8_t * event){
408     return event[5];
409 }
410 
411 /**
412  * @brief Get field status from event HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE
413  * @param event packet
414  * @return status
415  * @note: btstack_type 1
416  */
417 static inline uint8_t hci_event_change_connection_link_key_complete_get_status(const uint8_t * event){
418     return event[2];
419 }
420 /**
421  * @brief Get field connection_handle from event HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE
422  * @param event packet
423  * @return connection_handle
424  * @note: btstack_type 2
425  */
426 static inline uint16_t hci_event_change_connection_link_key_complete_get_connection_handle(const uint8_t * event){
427     return little_endian_read_16(event, 3);
428 }
429 
430 /**
431  * @brief Get field status from event HCI_EVENT_MASTER_LINK_KEY_COMPLETE
432  * @param event packet
433  * @return status
434  * @note: btstack_type 1
435  */
436 static inline uint8_t hci_event_master_link_key_complete_get_status(const uint8_t * event){
437     return event[2];
438 }
439 /**
440  * @brief Get field connection_handle from event HCI_EVENT_MASTER_LINK_KEY_COMPLETE
441  * @param event packet
442  * @return connection_handle
443  * @note: btstack_type 2
444  */
445 static inline uint16_t hci_event_master_link_key_complete_get_connection_handle(const uint8_t * event){
446     return little_endian_read_16(event, 3);
447 }
448 /**
449  * @brief Get field key_flag from event HCI_EVENT_MASTER_LINK_KEY_COMPLETE
450  * @param event packet
451  * @return key_flag
452  * @note: btstack_type 1
453  */
454 static inline uint8_t hci_event_master_link_key_complete_get_key_flag(const uint8_t * event){
455     return event[5];
456 }
457 
458 /**
459  * @brief Get field num_hci_command_packets from event HCI_EVENT_COMMAND_COMPLETE
460  * @param event packet
461  * @return num_hci_command_packets
462  * @note: btstack_type 1
463  */
464 static inline uint8_t hci_event_command_complete_get_num_hci_command_packets(const uint8_t * event){
465     return event[2];
466 }
467 /**
468  * @brief Get field command_opcode from event HCI_EVENT_COMMAND_COMPLETE
469  * @param event packet
470  * @return command_opcode
471  * @note: btstack_type 2
472  */
473 static inline uint16_t hci_event_command_complete_get_command_opcode(const uint8_t * event){
474     return little_endian_read_16(event, 3);
475 }
476 /**
477  * @brief Get field return_parameters from event HCI_EVENT_COMMAND_COMPLETE
478  * @param event packet
479  * @return return_parameters
480  * @note: btstack_type R
481  */
482 static inline const uint8_t * hci_event_command_complete_get_return_parameters(const uint8_t * event){
483     return &event[5];
484 }
485 
486 /**
487  * @brief Get field status from event HCI_EVENT_COMMAND_STATUS
488  * @param event packet
489  * @return status
490  * @note: btstack_type 1
491  */
492 static inline uint8_t hci_event_command_status_get_status(const uint8_t * event){
493     return event[2];
494 }
495 /**
496  * @brief Get field num_hci_command_packets from event HCI_EVENT_COMMAND_STATUS
497  * @param event packet
498  * @return num_hci_command_packets
499  * @note: btstack_type 1
500  */
501 static inline uint8_t hci_event_command_status_get_num_hci_command_packets(const uint8_t * event){
502     return event[3];
503 }
504 /**
505  * @brief Get field command_opcode from event HCI_EVENT_COMMAND_STATUS
506  * @param event packet
507  * @return command_opcode
508  * @note: btstack_type 2
509  */
510 static inline uint16_t hci_event_command_status_get_command_opcode(const uint8_t * event){
511     return little_endian_read_16(event, 4);
512 }
513 
514 /**
515  * @brief Get field hardware_code from event HCI_EVENT_HARDWARE_ERROR
516  * @param event packet
517  * @return hardware_code
518  * @note: btstack_type 1
519  */
520 static inline uint8_t hci_event_hardware_error_get_hardware_code(const uint8_t * event){
521     return event[2];
522 }
523 
524 /**
525  * @brief Get field status from event HCI_EVENT_ROLE_CHANGE
526  * @param event packet
527  * @return status
528  * @note: btstack_type 1
529  */
530 static inline uint8_t hci_event_role_change_get_status(const uint8_t * event){
531     return event[2];
532 }
533 /**
534  * @brief Get field bd_addr from event HCI_EVENT_ROLE_CHANGE
535  * @param event packet
536  * @param Pointer to storage for bd_addr
537  * @note: btstack_type B
538  */
539 static inline void hci_event_role_change_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
540     reverse_bd_addr(&event[3], bd_addr);
541 }
542 /**
543  * @brief Get field role from event HCI_EVENT_ROLE_CHANGE
544  * @param event packet
545  * @return role
546  * @note: btstack_type 1
547  */
548 static inline uint8_t hci_event_role_change_get_role(const uint8_t * event){
549     return event[9];
550 }
551 
552 /**
553  * @brief Get field status from event HCI_EVENT_MODE_CHANGE_EVENT
554  * @param event packet
555  * @return status
556  * @note: btstack_type 1
557  */
558 static inline uint8_t hci_event_mode_change_event_get_status(const uint8_t * event){
559     return event[2];
560 }
561 /**
562  * @brief Get field handle from event HCI_EVENT_MODE_CHANGE_EVENT
563  * @param event packet
564  * @return handle
565  * @note: btstack_type H
566  */
567 static inline hci_con_handle_t hci_event_mode_change_event_get_handle(const uint8_t * event){
568     return little_endian_read_16(event, 3);
569 }
570 /**
571  * @brief Get field mode from event HCI_EVENT_MODE_CHANGE_EVENT
572  * @param event packet
573  * @return mode
574  * @note: btstack_type 1
575  */
576 static inline uint8_t hci_event_mode_change_event_get_mode(const uint8_t * event){
577     return event[5];
578 }
579 /**
580  * @brief Get field interval from event HCI_EVENT_MODE_CHANGE_EVENT
581  * @param event packet
582  * @return interval
583  * @note: btstack_type 2
584  */
585 static inline uint16_t hci_event_mode_change_event_get_interval(const uint8_t * event){
586     return little_endian_read_16(event, 6);
587 }
588 
589 /**
590  * @brief Get field bd_addr from event HCI_EVENT_PIN_CODE_REQUEST
591  * @param event packet
592  * @param Pointer to storage for bd_addr
593  * @note: btstack_type B
594  */
595 static inline void hci_event_pin_code_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
596     reverse_bd_addr(&event[2], bd_addr);
597 }
598 
599 /**
600  * @brief Get field bd_addr from event HCI_EVENT_LINK_KEY_REQUEST
601  * @param event packet
602  * @param Pointer to storage for bd_addr
603  * @note: btstack_type B
604  */
605 static inline void hci_event_link_key_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
606     reverse_bd_addr(&event[2], bd_addr);
607 }
608 
609 /**
610  * @brief Get field link_type from event HCI_EVENT_DATA_BUFFER_OVERFLOW
611  * @param event packet
612  * @return link_type
613  * @note: btstack_type 1
614  */
615 static inline uint8_t hci_event_data_buffer_overflow_get_link_type(const uint8_t * event){
616     return event[2];
617 }
618 
619 /**
620  * @brief Get field handle from event HCI_EVENT_MAX_SLOTS_CHANGED
621  * @param event packet
622  * @return handle
623  * @note: btstack_type H
624  */
625 static inline hci_con_handle_t hci_event_max_slots_changed_get_handle(const uint8_t * event){
626     return little_endian_read_16(event, 2);
627 }
628 /**
629  * @brief Get field lmp_max_slots from event HCI_EVENT_MAX_SLOTS_CHANGED
630  * @param event packet
631  * @return lmp_max_slots
632  * @note: btstack_type 1
633  */
634 static inline uint8_t hci_event_max_slots_changed_get_lmp_max_slots(const uint8_t * event){
635     return event[4];
636 }
637 
638 /**
639  * @brief Get field status from event HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE
640  * @param event packet
641  * @return status
642  * @note: btstack_type 1
643  */
644 static inline uint8_t hci_event_read_clock_offset_complete_get_status(const uint8_t * event){
645     return event[2];
646 }
647 /**
648  * @brief Get field handle from event HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE
649  * @param event packet
650  * @return handle
651  * @note: btstack_type H
652  */
653 static inline hci_con_handle_t hci_event_read_clock_offset_complete_get_handle(const uint8_t * event){
654     return little_endian_read_16(event, 3);
655 }
656 /**
657  * @brief Get field clock_offset from event HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE
658  * @param event packet
659  * @return clock_offset
660  * @note: btstack_type 2
661  */
662 static inline uint16_t hci_event_read_clock_offset_complete_get_clock_offset(const uint8_t * event){
663     return little_endian_read_16(event, 5);
664 }
665 
666 /**
667  * @brief Get field status from event HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED
668  * @param event packet
669  * @return status
670  * @note: btstack_type 1
671  */
672 static inline uint8_t hci_event_connection_packet_type_changed_get_status(const uint8_t * event){
673     return event[2];
674 }
675 /**
676  * @brief Get field handle from event HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED
677  * @param event packet
678  * @return handle
679  * @note: btstack_type H
680  */
681 static inline hci_con_handle_t hci_event_connection_packet_type_changed_get_handle(const uint8_t * event){
682     return little_endian_read_16(event, 3);
683 }
684 /**
685  * @brief Get field packet_types from event HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED
686  * @param event packet
687  * @return packet_types
688  * @note: btstack_type 2
689  */
690 static inline uint16_t hci_event_connection_packet_type_changed_get_packet_types(const uint8_t * event){
691     return little_endian_read_16(event, 5);
692 }
693 
694 /**
695  * @brief Get field num_responses from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI
696  * @param event packet
697  * @return num_responses
698  * @note: btstack_type 1
699  */
700 static inline uint8_t hci_event_inquiry_result_with_rssi_get_num_responses(const uint8_t * event){
701     return event[2];
702 }
703 /**
704  * @brief Get field bd_addr from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI
705  * @param event packet
706  * @param Pointer to storage for bd_addr
707  * @note: btstack_type B
708  */
709 static inline void hci_event_inquiry_result_with_rssi_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
710     reverse_bd_addr(&event[3], bd_addr);
711 }
712 /**
713  * @brief Get field page_scan_repetition_mode from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI
714  * @param event packet
715  * @return page_scan_repetition_mode
716  * @note: btstack_type 1
717  */
718 static inline uint8_t hci_event_inquiry_result_with_rssi_get_page_scan_repetition_mode(const uint8_t * event){
719     return event[9];
720 }
721 /**
722  * @brief Get field reserved from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI
723  * @param event packet
724  * @return reserved
725  * @note: btstack_type 1
726  */
727 static inline uint8_t hci_event_inquiry_result_with_rssi_get_reserved(const uint8_t * event){
728     return event[10];
729 }
730 /**
731  * @brief Get field class_of_device from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI
732  * @param event packet
733  * @return class_of_device
734  * @note: btstack_type 3
735  */
736 static inline uint32_t hci_event_inquiry_result_with_rssi_get_class_of_device(const uint8_t * event){
737     return little_endian_read_24(event, 11);
738 }
739 /**
740  * @brief Get field clock_offset from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI
741  * @param event packet
742  * @return clock_offset
743  * @note: btstack_type 2
744  */
745 static inline uint16_t hci_event_inquiry_result_with_rssi_get_clock_offset(const uint8_t * event){
746     return little_endian_read_16(event, 14);
747 }
748 /**
749  * @brief Get field rssi from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI
750  * @param event packet
751  * @return rssi
752  * @note: btstack_type 1
753  */
754 static inline uint8_t hci_event_inquiry_result_with_rssi_get_rssi(const uint8_t * event){
755     return event[16];
756 }
757 
758 /**
759  * @brief Get field status from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE
760  * @param event packet
761  * @return status
762  * @note: btstack_type 1
763  */
764 static inline uint8_t hci_event_synchronous_connection_complete_get_status(const uint8_t * event){
765     return event[2];
766 }
767 /**
768  * @brief Get field handle from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE
769  * @param event packet
770  * @return handle
771  * @note: btstack_type H
772  */
773 static inline hci_con_handle_t hci_event_synchronous_connection_complete_get_handle(const uint8_t * event){
774     return little_endian_read_16(event, 3);
775 }
776 /**
777  * @brief Get field bd_addr from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE
778  * @param event packet
779  * @param Pointer to storage for bd_addr
780  * @note: btstack_type B
781  */
782 static inline void hci_event_synchronous_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
783     reverse_bd_addr(&event[5], bd_addr);
784 }
785 /**
786  * @brief Get field link_type from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE
787  * @param event packet
788  * @return link_type
789  * @note: btstack_type 1
790  */
791 static inline uint8_t hci_event_synchronous_connection_complete_get_link_type(const uint8_t * event){
792     return event[11];
793 }
794 /**
795  * @brief Get field transmission_interval from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE
796  * @param event packet
797  * @return transmission_interval
798  * @note: btstack_type 1
799  */
800 static inline uint8_t hci_event_synchronous_connection_complete_get_transmission_interval(const uint8_t * event){
801     return event[12];
802 }
803 /**
804  * @brief Get field retransmission_interval from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE
805  * @param event packet
806  * @return retransmission_interval
807  * @note: btstack_type 1
808  */
809 static inline uint8_t hci_event_synchronous_connection_complete_get_retransmission_interval(const uint8_t * event){
810     return event[13];
811 }
812 /**
813  * @brief Get field rx_packet_length from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE
814  * @param event packet
815  * @return rx_packet_length
816  * @note: btstack_type 2
817  */
818 static inline uint16_t hci_event_synchronous_connection_complete_get_rx_packet_length(const uint8_t * event){
819     return little_endian_read_16(event, 14);
820 }
821 /**
822  * @brief Get field tx_packet_length from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE
823  * @param event packet
824  * @return tx_packet_length
825  * @note: btstack_type 2
826  */
827 static inline uint16_t hci_event_synchronous_connection_complete_get_tx_packet_length(const uint8_t * event){
828     return little_endian_read_16(event, 16);
829 }
830 /**
831  * @brief Get field air_mode from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE
832  * @param event packet
833  * @return air_mode
834  * @note: btstack_type 1
835  */
836 static inline uint8_t hci_event_synchronous_connection_complete_get_air_mode(const uint8_t * event){
837     return event[18];
838 }
839 
840 /**
841  * @brief Get field num_responses from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE
842  * @param event packet
843  * @return num_responses
844  * @note: btstack_type 1
845  */
846 static inline uint8_t hci_event_extended_inquiry_response_get_num_responses(const uint8_t * event){
847     return event[2];
848 }
849 /**
850  * @brief Get field bd_addr from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE
851  * @param event packet
852  * @param Pointer to storage for bd_addr
853  * @note: btstack_type B
854  */
855 static inline void hci_event_extended_inquiry_response_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
856     reverse_bd_addr(&event[3], bd_addr);
857 }
858 /**
859  * @brief Get field page_scan_repetition_mode from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE
860  * @param event packet
861  * @return page_scan_repetition_mode
862  * @note: btstack_type 1
863  */
864 static inline uint8_t hci_event_extended_inquiry_response_get_page_scan_repetition_mode(const uint8_t * event){
865     return event[9];
866 }
867 /**
868  * @brief Get field reserved from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE
869  * @param event packet
870  * @return reserved
871  * @note: btstack_type 1
872  */
873 static inline uint8_t hci_event_extended_inquiry_response_get_reserved(const uint8_t * event){
874     return event[10];
875 }
876 /**
877  * @brief Get field class_of_device from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE
878  * @param event packet
879  * @return class_of_device
880  * @note: btstack_type 3
881  */
882 static inline uint32_t hci_event_extended_inquiry_response_get_class_of_device(const uint8_t * event){
883     return little_endian_read_24(event, 11);
884 }
885 /**
886  * @brief Get field clock_offset from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE
887  * @param event packet
888  * @return clock_offset
889  * @note: btstack_type 2
890  */
891 static inline uint16_t hci_event_extended_inquiry_response_get_clock_offset(const uint8_t * event){
892     return little_endian_read_16(event, 14);
893 }
894 /**
895  * @brief Get field rssi from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE
896  * @param event packet
897  * @return rssi
898  * @note: btstack_type 1
899  */
900 static inline uint8_t hci_event_extended_inquiry_response_get_rssi(const uint8_t * event){
901     return event[16];
902 }
903 
904 /**
905  * @brief Get field status from event HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE
906  * @param event packet
907  * @return status
908  * @note: btstack_type 1
909  */
910 static inline uint8_t hci_event_encryption_key_refresh_complete_get_status(const uint8_t * event){
911     return event[2];
912 }
913 /**
914  * @brief Get field handle from event HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE
915  * @param event packet
916  * @return handle
917  * @note: btstack_type H
918  */
919 static inline hci_con_handle_t hci_event_encryption_key_refresh_complete_get_handle(const uint8_t * event){
920     return little_endian_read_16(event, 3);
921 }
922 
923 /**
924  * @brief Get field bd_addr from event HCI_EVENT_USER_CONFIRMATION_REQUEST
925  * @param event packet
926  * @param Pointer to storage for bd_addr
927  * @note: btstack_type B
928  */
929 static inline void hci_event_user_confirmation_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
930     reverse_bd_addr(&event[2], bd_addr);
931 }
932 /**
933  * @brief Get field numeric_value from event HCI_EVENT_USER_CONFIRMATION_REQUEST
934  * @param event packet
935  * @return numeric_value
936  * @note: btstack_type 4
937  */
938 static inline uint32_t hci_event_user_confirmation_request_get_numeric_value(const uint8_t * event){
939     return little_endian_read_32(event, 8);
940 }
941 
942 /**
943  * @brief Get field bd_addr from event HCI_EVENT_USER_PASSKEY_REQUEST
944  * @param event packet
945  * @param Pointer to storage for bd_addr
946  * @note: btstack_type B
947  */
948 static inline void hci_event_user_passkey_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
949     reverse_bd_addr(&event[2], bd_addr);
950 }
951 
952 /**
953  * @brief Get field bd_addr from event HCI_EVENT_REMOTE_OOB_DATA_REQUEST
954  * @param event packet
955  * @param Pointer to storage for bd_addr
956  * @note: btstack_type B
957  */
958 static inline void hci_event_remote_oob_data_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
959     reverse_bd_addr(&event[2], bd_addr);
960 }
961 
962 /**
963  * @brief Get field status from event HCI_EVENT_SIMPLE_PAIRING_COMPLETE
964  * @param event packet
965  * @return status
966  * @note: btstack_type 1
967  */
968 static inline uint8_t hci_event_simple_pairing_complete_get_status(const uint8_t * event){
969     return event[2];
970 }
971 /**
972  * @brief Get field bd_addr from event HCI_EVENT_SIMPLE_PAIRING_COMPLETE
973  * @param event packet
974  * @param Pointer to storage for bd_addr
975  * @note: btstack_type B
976  */
977 static inline void hci_event_simple_pairing_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
978     reverse_bd_addr(&event[3], bd_addr);
979 }
980 
981 /**
982  * @brief Get field state from event BTSTACK_EVENT_STATE
983  * @param event packet
984  * @return state
985  * @note: btstack_type 1
986  */
987 static inline uint8_t btstack_event_state_get_state(const uint8_t * event){
988     return event[2];
989 }
990 
991 /**
992  * @brief Get field number_connections from event BTSTACK_EVENT_NR_CONNECTIONS_CHANGED
993  * @param event packet
994  * @return number_connections
995  * @note: btstack_type 1
996  */
997 static inline uint8_t btstack_event_nr_connections_changed_get_number_connections(const uint8_t * event){
998     return event[2];
999 }
1000 
1001 
1002 /**
1003  * @brief Get field discoverable from event BTSTACK_EVENT_DISCOVERABLE_ENABLED
1004  * @param event packet
1005  * @return discoverable
1006  * @note: btstack_type 1
1007  */
1008 static inline uint8_t btstack_event_discoverable_enabled_get_discoverable(const uint8_t * event){
1009     return event[2];
1010 }
1011 
1012 /**
1013  * @brief Get field active from event HCI_EVENT_TRANSPORT_SLEEP_MODE
1014  * @param event packet
1015  * @return active
1016  * @note: btstack_type 1
1017  */
1018 static inline uint8_t hci_event_transport_sleep_mode_get_active(const uint8_t * event){
1019     return event[2];
1020 }
1021 
1022 /**
1023  * @brief Get field handle from event HCI_EVENT_SCO_CAN_SEND_NOW
1024  * @param event packet
1025  * @param Pointer to storage for handle
1026  * @note: btstack_type B
1027  */
1028 static inline void hci_event_sco_can_send_now_get_handle(const uint8_t * event, bd_addr_t handle){
1029     reverse_bd_addr(&event[2], handle);
1030 }
1031 
1032 /**
1033  * @brief Get field status from event L2CAP_EVENT_CHANNEL_OPENED
1034  * @param event packet
1035  * @return status
1036  * @note: btstack_type 1
1037  */
1038 static inline uint8_t l2cap_event_channel_opened_get_status(const uint8_t * event){
1039     return event[2];
1040 }
1041 /**
1042  * @brief Get field address from event L2CAP_EVENT_CHANNEL_OPENED
1043  * @param event packet
1044  * @param Pointer to storage for address
1045  * @note: btstack_type B
1046  */
1047 static inline void l2cap_event_channel_opened_get_address(const uint8_t * event, bd_addr_t address){
1048     reverse_bd_addr(&event[3], address);
1049 }
1050 /**
1051  * @brief Get field handle from event L2CAP_EVENT_CHANNEL_OPENED
1052  * @param event packet
1053  * @return handle
1054  * @note: btstack_type H
1055  */
1056 static inline hci_con_handle_t l2cap_event_channel_opened_get_handle(const uint8_t * event){
1057     return little_endian_read_16(event, 9);
1058 }
1059 /**
1060  * @brief Get field psm from event L2CAP_EVENT_CHANNEL_OPENED
1061  * @param event packet
1062  * @return psm
1063  * @note: btstack_type 2
1064  */
1065 static inline uint16_t l2cap_event_channel_opened_get_psm(const uint8_t * event){
1066     return little_endian_read_16(event, 11);
1067 }
1068 /**
1069  * @brief Get field local_cid from event L2CAP_EVENT_CHANNEL_OPENED
1070  * @param event packet
1071  * @return local_cid
1072  * @note: btstack_type 2
1073  */
1074 static inline uint16_t l2cap_event_channel_opened_get_local_cid(const uint8_t * event){
1075     return little_endian_read_16(event, 13);
1076 }
1077 /**
1078  * @brief Get field remote_cid from event L2CAP_EVENT_CHANNEL_OPENED
1079  * @param event packet
1080  * @return remote_cid
1081  * @note: btstack_type 2
1082  */
1083 static inline uint16_t l2cap_event_channel_opened_get_remote_cid(const uint8_t * event){
1084     return little_endian_read_16(event, 15);
1085 }
1086 /**
1087  * @brief Get field local_mtu from event L2CAP_EVENT_CHANNEL_OPENED
1088  * @param event packet
1089  * @return local_mtu
1090  * @note: btstack_type 2
1091  */
1092 static inline uint16_t l2cap_event_channel_opened_get_local_mtu(const uint8_t * event){
1093     return little_endian_read_16(event, 17);
1094 }
1095 /**
1096  * @brief Get field remote_mtu from event L2CAP_EVENT_CHANNEL_OPENED
1097  * @param event packet
1098  * @return remote_mtu
1099  * @note: btstack_type 2
1100  */
1101 static inline uint16_t l2cap_event_channel_opened_get_remote_mtu(const uint8_t * event){
1102     return little_endian_read_16(event, 19);
1103 }
1104 /**
1105  * @brief Get field flush_timeout from event L2CAP_EVENT_CHANNEL_OPENED
1106  * @param event packet
1107  * @return flush_timeout
1108  * @note: btstack_type 2
1109  */
1110 static inline uint16_t l2cap_event_channel_opened_get_flush_timeout(const uint8_t * event){
1111     return little_endian_read_16(event, 21);
1112 }
1113 /**
1114  * @brief Get field incoming from event L2CAP_EVENT_CHANNEL_OPENED
1115  * @param event packet
1116  * @return incoming
1117  * @note: btstack_type 1
1118  */
1119 static inline uint8_t l2cap_event_channel_opened_get_incoming(const uint8_t * event){
1120     return event[23];
1121 }
1122 
1123 /**
1124  * @brief Get field local_cid from event L2CAP_EVENT_CHANNEL_CLOSED
1125  * @param event packet
1126  * @return local_cid
1127  * @note: btstack_type 2
1128  */
1129 static inline uint16_t l2cap_event_channel_closed_get_local_cid(const uint8_t * event){
1130     return little_endian_read_16(event, 2);
1131 }
1132 
1133 /**
1134  * @brief Get field address from event L2CAP_EVENT_INCOMING_CONNECTION
1135  * @param event packet
1136  * @param Pointer to storage for address
1137  * @note: btstack_type B
1138  */
1139 static inline void l2cap_event_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){
1140     reverse_bd_addr(&event[2], address);
1141 }
1142 /**
1143  * @brief Get field handle from event L2CAP_EVENT_INCOMING_CONNECTION
1144  * @param event packet
1145  * @return handle
1146  * @note: btstack_type H
1147  */
1148 static inline hci_con_handle_t l2cap_event_incoming_connection_get_handle(const uint8_t * event){
1149     return little_endian_read_16(event, 8);
1150 }
1151 /**
1152  * @brief Get field psm from event L2CAP_EVENT_INCOMING_CONNECTION
1153  * @param event packet
1154  * @return psm
1155  * @note: btstack_type 2
1156  */
1157 static inline uint16_t l2cap_event_incoming_connection_get_psm(const uint8_t * event){
1158     return little_endian_read_16(event, 10);
1159 }
1160 /**
1161  * @brief Get field local_cid from event L2CAP_EVENT_INCOMING_CONNECTION
1162  * @param event packet
1163  * @return local_cid
1164  * @note: btstack_type 2
1165  */
1166 static inline uint16_t l2cap_event_incoming_connection_get_local_cid(const uint8_t * event){
1167     return little_endian_read_16(event, 12);
1168 }
1169 /**
1170  * @brief Get field remote_cid from event L2CAP_EVENT_INCOMING_CONNECTION
1171  * @param event packet
1172  * @return remote_cid
1173  * @note: btstack_type 2
1174  */
1175 static inline uint16_t l2cap_event_incoming_connection_get_remote_cid(const uint8_t * event){
1176     return little_endian_read_16(event, 14);
1177 }
1178 
1179 /**
1180  * @brief Get field handle from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST
1181  * @param event packet
1182  * @return handle
1183  * @note: btstack_type H
1184  */
1185 static inline hci_con_handle_t l2cap_event_connection_parameter_update_request_get_handle(const uint8_t * event){
1186     return little_endian_read_16(event, 2);
1187 }
1188 /**
1189  * @brief Get field interval_min from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST
1190  * @param event packet
1191  * @return interval_min
1192  * @note: btstack_type 2
1193  */
1194 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_min(const uint8_t * event){
1195     return little_endian_read_16(event, 4);
1196 }
1197 /**
1198  * @brief Get field interval_max from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST
1199  * @param event packet
1200  * @return interval_max
1201  * @note: btstack_type 2
1202  */
1203 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_max(const uint8_t * event){
1204     return little_endian_read_16(event, 6);
1205 }
1206 /**
1207  * @brief Get field latencey from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST
1208  * @param event packet
1209  * @return latencey
1210  * @note: btstack_type 2
1211  */
1212 static inline uint16_t l2cap_event_connection_parameter_update_request_get_latencey(const uint8_t * event){
1213     return little_endian_read_16(event, 8);
1214 }
1215 /**
1216  * @brief Get field timeout_multiplier from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST
1217  * @param event packet
1218  * @return timeout_multiplier
1219  * @note: btstack_type 2
1220  */
1221 static inline uint16_t l2cap_event_connection_parameter_update_request_get_timeout_multiplier(const uint8_t * event){
1222     return little_endian_read_16(event, 10);
1223 }
1224 
1225 /**
1226  * @brief Get field handle from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE
1227  * @param event packet
1228  * @return handle
1229  * @note: btstack_type H
1230  */
1231 static inline hci_con_handle_t l2cap_event_connection_parameter_update_response_get_handle(const uint8_t * event){
1232     return little_endian_read_16(event, 2);
1233 }
1234 /**
1235  * @brief Get field result from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE
1236  * @param event packet
1237  * @return result
1238  * @note: btstack_type 2
1239  */
1240 static inline uint16_t l2cap_event_connection_parameter_update_response_get_result(const uint8_t * event){
1241     return little_endian_read_16(event, 4);
1242 }
1243 
1244 /**
1245  * @brief Get field local_cid from event L2CAP_EVENT_CAN_SEND_NOW
1246  * @param event packet
1247  * @return local_cid
1248  * @note: btstack_type 2
1249  */
1250 static inline uint16_t l2cap_event_can_send_now_get_local_cid(const uint8_t * event){
1251     return little_endian_read_16(event, 2);
1252 }
1253 
1254 /**
1255  * @brief Get field address_type from event L2CAP_EVENT_LE_INCOMING_CONNECTION
1256  * @param event packet
1257  * @return address_type
1258  * @note: btstack_type 1
1259  */
1260 static inline uint8_t l2cap_event_le_incoming_connection_get_address_type(const uint8_t * event){
1261     return event[2];
1262 }
1263 /**
1264  * @brief Get field address from event L2CAP_EVENT_LE_INCOMING_CONNECTION
1265  * @param event packet
1266  * @param Pointer to storage for address
1267  * @note: btstack_type B
1268  */
1269 static inline void l2cap_event_le_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){
1270     reverse_bd_addr(&event[3], address);
1271 }
1272 /**
1273  * @brief Get field handle from event L2CAP_EVENT_LE_INCOMING_CONNECTION
1274  * @param event packet
1275  * @return handle
1276  * @note: btstack_type H
1277  */
1278 static inline hci_con_handle_t l2cap_event_le_incoming_connection_get_handle(const uint8_t * event){
1279     return little_endian_read_16(event, 9);
1280 }
1281 /**
1282  * @brief Get field psm from event L2CAP_EVENT_LE_INCOMING_CONNECTION
1283  * @param event packet
1284  * @return psm
1285  * @note: btstack_type 2
1286  */
1287 static inline uint16_t l2cap_event_le_incoming_connection_get_psm(const uint8_t * event){
1288     return little_endian_read_16(event, 11);
1289 }
1290 /**
1291  * @brief Get field local_cid from event L2CAP_EVENT_LE_INCOMING_CONNECTION
1292  * @param event packet
1293  * @return local_cid
1294  * @note: btstack_type 2
1295  */
1296 static inline uint16_t l2cap_event_le_incoming_connection_get_local_cid(const uint8_t * event){
1297     return little_endian_read_16(event, 13);
1298 }
1299 /**
1300  * @brief Get field remote_cid from event L2CAP_EVENT_LE_INCOMING_CONNECTION
1301  * @param event packet
1302  * @return remote_cid
1303  * @note: btstack_type 2
1304  */
1305 static inline uint16_t l2cap_event_le_incoming_connection_get_remote_cid(const uint8_t * event){
1306     return little_endian_read_16(event, 15);
1307 }
1308 /**
1309  * @brief Get field remote_mtu from event L2CAP_EVENT_LE_INCOMING_CONNECTION
1310  * @param event packet
1311  * @return remote_mtu
1312  * @note: btstack_type 2
1313  */
1314 static inline uint16_t l2cap_event_le_incoming_connection_get_remote_mtu(const uint8_t * event){
1315     return little_endian_read_16(event, 17);
1316 }
1317 
1318 /**
1319  * @brief Get field status from event L2CAP_EVENT_LE_CHANNEL_OPENED
1320  * @param event packet
1321  * @return status
1322  * @note: btstack_type 1
1323  */
1324 static inline uint8_t l2cap_event_le_channel_opened_get_status(const uint8_t * event){
1325     return event[2];
1326 }
1327 /**
1328  * @brief Get field address_type from event L2CAP_EVENT_LE_CHANNEL_OPENED
1329  * @param event packet
1330  * @return address_type
1331  * @note: btstack_type 1
1332  */
1333 static inline uint8_t l2cap_event_le_channel_opened_get_address_type(const uint8_t * event){
1334     return event[3];
1335 }
1336 /**
1337  * @brief Get field address from event L2CAP_EVENT_LE_CHANNEL_OPENED
1338  * @param event packet
1339  * @param Pointer to storage for address
1340  * @note: btstack_type B
1341  */
1342 static inline void l2cap_event_le_channel_opened_get_address(const uint8_t * event, bd_addr_t address){
1343     reverse_bd_addr(&event[4], address);
1344 }
1345 /**
1346  * @brief Get field handle from event L2CAP_EVENT_LE_CHANNEL_OPENED
1347  * @param event packet
1348  * @return handle
1349  * @note: btstack_type H
1350  */
1351 static inline hci_con_handle_t l2cap_event_le_channel_opened_get_handle(const uint8_t * event){
1352     return little_endian_read_16(event, 10);
1353 }
1354 /**
1355  * @brief Get field incoming from event L2CAP_EVENT_LE_CHANNEL_OPENED
1356  * @param event packet
1357  * @return incoming
1358  * @note: btstack_type 1
1359  */
1360 static inline uint8_t l2cap_event_le_channel_opened_get_incoming(const uint8_t * event){
1361     return event[12];
1362 }
1363 /**
1364  * @brief Get field psm from event L2CAP_EVENT_LE_CHANNEL_OPENED
1365  * @param event packet
1366  * @return psm
1367  * @note: btstack_type 2
1368  */
1369 static inline uint16_t l2cap_event_le_channel_opened_get_psm(const uint8_t * event){
1370     return little_endian_read_16(event, 13);
1371 }
1372 /**
1373  * @brief Get field local_cid from event L2CAP_EVENT_LE_CHANNEL_OPENED
1374  * @param event packet
1375  * @return local_cid
1376  * @note: btstack_type 2
1377  */
1378 static inline uint16_t l2cap_event_le_channel_opened_get_local_cid(const uint8_t * event){
1379     return little_endian_read_16(event, 15);
1380 }
1381 /**
1382  * @brief Get field remote_cid from event L2CAP_EVENT_LE_CHANNEL_OPENED
1383  * @param event packet
1384  * @return remote_cid
1385  * @note: btstack_type 2
1386  */
1387 static inline uint16_t l2cap_event_le_channel_opened_get_remote_cid(const uint8_t * event){
1388     return little_endian_read_16(event, 17);
1389 }
1390 /**
1391  * @brief Get field local_mtu from event L2CAP_EVENT_LE_CHANNEL_OPENED
1392  * @param event packet
1393  * @return local_mtu
1394  * @note: btstack_type 2
1395  */
1396 static inline uint16_t l2cap_event_le_channel_opened_get_local_mtu(const uint8_t * event){
1397     return little_endian_read_16(event, 19);
1398 }
1399 /**
1400  * @brief Get field remote_mtu from event L2CAP_EVENT_LE_CHANNEL_OPENED
1401  * @param event packet
1402  * @return remote_mtu
1403  * @note: btstack_type 2
1404  */
1405 static inline uint16_t l2cap_event_le_channel_opened_get_remote_mtu(const uint8_t * event){
1406     return little_endian_read_16(event, 21);
1407 }
1408 
1409 /**
1410  * @brief Get field local_cid from event L2CAP_EVENT_LE_CHANNEL_CLOSED
1411  * @param event packet
1412  * @return local_cid
1413  * @note: btstack_type 2
1414  */
1415 static inline uint16_t l2cap_event_le_channel_closed_get_local_cid(const uint8_t * event){
1416     return little_endian_read_16(event, 2);
1417 }
1418 
1419 /**
1420  * @brief Get field local_cid from event L2CAP_EVENT_LE_CAN_SEND_NOW
1421  * @param event packet
1422  * @return local_cid
1423  * @note: btstack_type 2
1424  */
1425 static inline uint16_t l2cap_event_le_can_send_now_get_local_cid(const uint8_t * event){
1426     return little_endian_read_16(event, 2);
1427 }
1428 
1429 /**
1430  * @brief Get field local_cid from event L2CAP_EVENT_LE_PACKET_SENT
1431  * @param event packet
1432  * @return local_cid
1433  * @note: btstack_type 2
1434  */
1435 static inline uint16_t l2cap_event_le_packet_sent_get_local_cid(const uint8_t * event){
1436     return little_endian_read_16(event, 2);
1437 }
1438 
1439 /**
1440  * @brief Get field status from event RFCOMM_EVENT_CHANNEL_OPENED
1441  * @param event packet
1442  * @return status
1443  * @note: btstack_type 1
1444  */
1445 static inline uint8_t rfcomm_event_channel_opened_get_status(const uint8_t * event){
1446     return event[2];
1447 }
1448 /**
1449  * @brief Get field bd_addr from event RFCOMM_EVENT_CHANNEL_OPENED
1450  * @param event packet
1451  * @param Pointer to storage for bd_addr
1452  * @note: btstack_type B
1453  */
1454 static inline void rfcomm_event_channel_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
1455     reverse_bd_addr(&event[3], bd_addr);
1456 }
1457 /**
1458  * @brief Get field con_handle from event RFCOMM_EVENT_CHANNEL_OPENED
1459  * @param event packet
1460  * @return con_handle
1461  * @note: btstack_type 2
1462  */
1463 static inline uint16_t rfcomm_event_channel_opened_get_con_handle(const uint8_t * event){
1464     return little_endian_read_16(event, 9);
1465 }
1466 /**
1467  * @brief Get field server_channel from event RFCOMM_EVENT_CHANNEL_OPENED
1468  * @param event packet
1469  * @return server_channel
1470  * @note: btstack_type 1
1471  */
1472 static inline uint8_t rfcomm_event_channel_opened_get_server_channel(const uint8_t * event){
1473     return event[11];
1474 }
1475 /**
1476  * @brief Get field rfcomm_cid from event RFCOMM_EVENT_CHANNEL_OPENED
1477  * @param event packet
1478  * @return rfcomm_cid
1479  * @note: btstack_type 2
1480  */
1481 static inline uint16_t rfcomm_event_channel_opened_get_rfcomm_cid(const uint8_t * event){
1482     return little_endian_read_16(event, 12);
1483 }
1484 /**
1485  * @brief Get field max_frame_size from event RFCOMM_EVENT_CHANNEL_OPENED
1486  * @param event packet
1487  * @return max_frame_size
1488  * @note: btstack_type 2
1489  */
1490 static inline uint16_t rfcomm_event_channel_opened_get_max_frame_size(const uint8_t * event){
1491     return little_endian_read_16(event, 14);
1492 }
1493 /**
1494  * @brief Get field incoming from event RFCOMM_EVENT_CHANNEL_OPENED
1495  * @param event packet
1496  * @return incoming
1497  * @note: btstack_type 1
1498  */
1499 static inline uint8_t rfcomm_event_channel_opened_get_incoming(const uint8_t * event){
1500     return event[16];
1501 }
1502 
1503 /**
1504  * @brief Get field rfcomm_cid from event RFCOMM_EVENT_CHANNEL_CLOSED
1505  * @param event packet
1506  * @return rfcomm_cid
1507  * @note: btstack_type 2
1508  */
1509 static inline uint16_t rfcomm_event_channel_closed_get_rfcomm_cid(const uint8_t * event){
1510     return little_endian_read_16(event, 2);
1511 }
1512 
1513 /**
1514  * @brief Get field bd_addr from event RFCOMM_EVENT_INCOMING_CONNECTION
1515  * @param event packet
1516  * @param Pointer to storage for bd_addr
1517  * @note: btstack_type B
1518  */
1519 static inline void rfcomm_event_incoming_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
1520     reverse_bd_addr(&event[2], bd_addr);
1521 }
1522 /**
1523  * @brief Get field server_channel from event RFCOMM_EVENT_INCOMING_CONNECTION
1524  * @param event packet
1525  * @return server_channel
1526  * @note: btstack_type 1
1527  */
1528 static inline uint8_t rfcomm_event_incoming_connection_get_server_channel(const uint8_t * event){
1529     return event[8];
1530 }
1531 /**
1532  * @brief Get field rfcomm_cid from event RFCOMM_EVENT_INCOMING_CONNECTION
1533  * @param event packet
1534  * @return rfcomm_cid
1535  * @note: btstack_type 2
1536  */
1537 static inline uint16_t rfcomm_event_incoming_connection_get_rfcomm_cid(const uint8_t * event){
1538     return little_endian_read_16(event, 9);
1539 }
1540 
1541 /**
1542  * @brief Get field rfcomm_cid from event RFCOMM_EVENT_REMOTE_LINE_STATUS
1543  * @param event packet
1544  * @return rfcomm_cid
1545  * @note: btstack_type 2
1546  */
1547 static inline uint16_t rfcomm_event_remote_line_status_get_rfcomm_cid(const uint8_t * event){
1548     return little_endian_read_16(event, 2);
1549 }
1550 /**
1551  * @brief Get field line_status from event RFCOMM_EVENT_REMOTE_LINE_STATUS
1552  * @param event packet
1553  * @return line_status
1554  * @note: btstack_type 1
1555  */
1556 static inline uint8_t rfcomm_event_remote_line_status_get_line_status(const uint8_t * event){
1557     return event[4];
1558 }
1559 
1560 /**
1561  * @brief Get field rfcomm_cid from event RFCOMM_EVENT_REMOTE_MODEM_STATUS
1562  * @param event packet
1563  * @return rfcomm_cid
1564  * @note: btstack_type 2
1565  */
1566 static inline uint16_t rfcomm_event_remote_modem_status_get_rfcomm_cid(const uint8_t * event){
1567     return little_endian_read_16(event, 2);
1568 }
1569 /**
1570  * @brief Get field modem_status from event RFCOMM_EVENT_REMOTE_MODEM_STATUS
1571  * @param event packet
1572  * @return modem_status
1573  * @note: btstack_type 1
1574  */
1575 static inline uint8_t rfcomm_event_remote_modem_status_get_modem_status(const uint8_t * event){
1576     return event[4];
1577 }
1578 
1579 /**
1580  * @brief Get field rfcomm_cid from event RFCOMM_EVENT_CAN_SEND_NOW
1581  * @param event packet
1582  * @return rfcomm_cid
1583  * @note: btstack_type 2
1584  */
1585 static inline uint16_t rfcomm_event_can_send_now_get_rfcomm_cid(const uint8_t * event){
1586     return little_endian_read_16(event, 2);
1587 }
1588 
1589 /**
1590  * @brief Get field status from event SDP_EVENT_QUERY_COMPLETE
1591  * @param event packet
1592  * @return status
1593  * @note: btstack_type 1
1594  */
1595 static inline uint8_t sdp_event_query_complete_get_status(const uint8_t * event){
1596     return event[2];
1597 }
1598 
1599 /**
1600  * @brief Get field rfcomm_channel from event SDP_EVENT_QUERY_RFCOMM_SERVICE
1601  * @param event packet
1602  * @return rfcomm_channel
1603  * @note: btstack_type 1
1604  */
1605 static inline uint8_t sdp_event_query_rfcomm_service_get_rfcomm_channel(const uint8_t * event){
1606     return event[2];
1607 }
1608 /**
1609  * @brief Get field name from event SDP_EVENT_QUERY_RFCOMM_SERVICE
1610  * @param event packet
1611  * @return name
1612  * @note: btstack_type T
1613  */
1614 static inline const char * sdp_event_query_rfcomm_service_get_name(const uint8_t * event){
1615     return (const char *) &event[3];
1616 }
1617 
1618 /**
1619  * @brief Get field record_id from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE
1620  * @param event packet
1621  * @return record_id
1622  * @note: btstack_type 2
1623  */
1624 static inline uint16_t sdp_event_query_attribute_byte_get_record_id(const uint8_t * event){
1625     return little_endian_read_16(event, 2);
1626 }
1627 /**
1628  * @brief Get field attribute_id from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE
1629  * @param event packet
1630  * @return attribute_id
1631  * @note: btstack_type 2
1632  */
1633 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_id(const uint8_t * event){
1634     return little_endian_read_16(event, 4);
1635 }
1636 /**
1637  * @brief Get field attribute_length from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE
1638  * @param event packet
1639  * @return attribute_length
1640  * @note: btstack_type 2
1641  */
1642 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_length(const uint8_t * event){
1643     return little_endian_read_16(event, 6);
1644 }
1645 /**
1646  * @brief Get field data_offset from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE
1647  * @param event packet
1648  * @return data_offset
1649  * @note: btstack_type 2
1650  */
1651 static inline uint16_t sdp_event_query_attribute_byte_get_data_offset(const uint8_t * event){
1652     return little_endian_read_16(event, 8);
1653 }
1654 /**
1655  * @brief Get field data from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE
1656  * @param event packet
1657  * @return data
1658  * @note: btstack_type 1
1659  */
1660 static inline uint8_t sdp_event_query_attribute_byte_get_data(const uint8_t * event){
1661     return event[10];
1662 }
1663 
1664 /**
1665  * @brief Get field record_id from event SDP_EVENT_QUERY_ATTRIBUTE_VALUE
1666  * @param event packet
1667  * @return record_id
1668  * @note: btstack_type 2
1669  */
1670 static inline uint16_t sdp_event_query_attribute_value_get_record_id(const uint8_t * event){
1671     return little_endian_read_16(event, 2);
1672 }
1673 /**
1674  * @brief Get field attribute_id from event SDP_EVENT_QUERY_ATTRIBUTE_VALUE
1675  * @param event packet
1676  * @return attribute_id
1677  * @note: btstack_type 2
1678  */
1679 static inline uint16_t sdp_event_query_attribute_value_get_attribute_id(const uint8_t * event){
1680     return little_endian_read_16(event, 4);
1681 }
1682 /**
1683  * @brief Get field attribute_length from event SDP_EVENT_QUERY_ATTRIBUTE_VALUE
1684  * @param event packet
1685  * @return attribute_length
1686  * @note: btstack_type L
1687  */
1688 static inline int sdp_event_query_attribute_value_get_attribute_length(const uint8_t * event){
1689     return little_endian_read_16(event, 6);
1690 }
1691 /**
1692  * @brief Get field attribute_value from event SDP_EVENT_QUERY_ATTRIBUTE_VALUE
1693  * @param event packet
1694  * @return attribute_value
1695  * @note: btstack_type V
1696  */
1697 static inline const uint8_t * sdp_event_query_attribute_value_get_attribute_value(const uint8_t * event){
1698     return &event[8];
1699 }
1700 
1701 /**
1702  * @brief Get field total_count from event SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE
1703  * @param event packet
1704  * @return total_count
1705  * @note: btstack_type 2
1706  */
1707 static inline uint16_t sdp_event_query_service_record_handle_get_total_count(const uint8_t * event){
1708     return little_endian_read_16(event, 2);
1709 }
1710 /**
1711  * @brief Get field record_index from event SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE
1712  * @param event packet
1713  * @return record_index
1714  * @note: btstack_type 2
1715  */
1716 static inline uint16_t sdp_event_query_service_record_handle_get_record_index(const uint8_t * event){
1717     return little_endian_read_16(event, 4);
1718 }
1719 /**
1720  * @brief Get field record_handle from event SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE
1721  * @param event packet
1722  * @return record_handle
1723  * @note: btstack_type 4
1724  */
1725 static inline uint32_t sdp_event_query_service_record_handle_get_record_handle(const uint8_t * event){
1726     return little_endian_read_32(event, 6);
1727 }
1728 
1729 #ifdef ENABLE_BLE
1730 /**
1731  * @brief Get field handle from event GATT_EVENT_QUERY_COMPLETE
1732  * @param event packet
1733  * @return handle
1734  * @note: btstack_type H
1735  */
1736 static inline hci_con_handle_t gatt_event_query_complete_get_handle(const uint8_t * event){
1737     return little_endian_read_16(event, 2);
1738 }
1739 /**
1740  * @brief Get field status from event GATT_EVENT_QUERY_COMPLETE
1741  * @param event packet
1742  * @return status
1743  * @note: btstack_type 1
1744  */
1745 static inline uint8_t gatt_event_query_complete_get_status(const uint8_t * event){
1746     return event[4];
1747 }
1748 #endif
1749 
1750 #ifdef ENABLE_BLE
1751 /**
1752  * @brief Get field handle from event GATT_EVENT_SERVICE_QUERY_RESULT
1753  * @param event packet
1754  * @return handle
1755  * @note: btstack_type H
1756  */
1757 static inline hci_con_handle_t gatt_event_service_query_result_get_handle(const uint8_t * event){
1758     return little_endian_read_16(event, 2);
1759 }
1760 /**
1761  * @brief Get field service from event GATT_EVENT_SERVICE_QUERY_RESULT
1762  * @param event packet
1763  * @param Pointer to storage for service
1764  * @note: btstack_type X
1765  */
1766 static inline void gatt_event_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){
1767     gatt_client_deserialize_service(event, 4, service);
1768 }
1769 #endif
1770 
1771 #ifdef ENABLE_BLE
1772 /**
1773  * @brief Get field handle from event GATT_EVENT_CHARACTERISTIC_QUERY_RESULT
1774  * @param event packet
1775  * @return handle
1776  * @note: btstack_type H
1777  */
1778 static inline hci_con_handle_t gatt_event_characteristic_query_result_get_handle(const uint8_t * event){
1779     return little_endian_read_16(event, 2);
1780 }
1781 /**
1782  * @brief Get field characteristic from event GATT_EVENT_CHARACTERISTIC_QUERY_RESULT
1783  * @param event packet
1784  * @param Pointer to storage for characteristic
1785  * @note: btstack_type Y
1786  */
1787 static inline void gatt_event_characteristic_query_result_get_characteristic(const uint8_t * event, gatt_client_characteristic_t * characteristic){
1788     gatt_client_deserialize_characteristic(event, 4, characteristic);
1789 }
1790 #endif
1791 
1792 #ifdef ENABLE_BLE
1793 /**
1794  * @brief Get field handle from event GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT
1795  * @param event packet
1796  * @return handle
1797  * @note: btstack_type H
1798  */
1799 static inline hci_con_handle_t gatt_event_included_service_query_result_get_handle(const uint8_t * event){
1800     return little_endian_read_16(event, 2);
1801 }
1802 /**
1803  * @brief Get field include_handle from event GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT
1804  * @param event packet
1805  * @return include_handle
1806  * @note: btstack_type 2
1807  */
1808 static inline uint16_t gatt_event_included_service_query_result_get_include_handle(const uint8_t * event){
1809     return little_endian_read_16(event, 4);
1810 }
1811 /**
1812  * @brief Get field service from event GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT
1813  * @param event packet
1814  * @param Pointer to storage for service
1815  * @note: btstack_type X
1816  */
1817 static inline void gatt_event_included_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){
1818     gatt_client_deserialize_service(event, 6, service);
1819 }
1820 #endif
1821 
1822 #ifdef ENABLE_BLE
1823 /**
1824  * @brief Get field handle from event GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT
1825  * @param event packet
1826  * @return handle
1827  * @note: btstack_type H
1828  */
1829 static inline hci_con_handle_t gatt_event_all_characteristic_descriptors_query_result_get_handle(const uint8_t * event){
1830     return little_endian_read_16(event, 2);
1831 }
1832 /**
1833  * @brief Get field characteristic_descriptor from event GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT
1834  * @param event packet
1835  * @param Pointer to storage for characteristic_descriptor
1836  * @note: btstack_type Z
1837  */
1838 static inline void gatt_event_all_characteristic_descriptors_query_result_get_characteristic_descriptor(const uint8_t * event, gatt_client_characteristic_descriptor_t * characteristic_descriptor){
1839     gatt_client_deserialize_characteristic_descriptor(event, 4, characteristic_descriptor);
1840 }
1841 #endif
1842 
1843 #ifdef ENABLE_BLE
1844 /**
1845  * @brief Get field handle from event GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT
1846  * @param event packet
1847  * @return handle
1848  * @note: btstack_type H
1849  */
1850 static inline hci_con_handle_t gatt_event_characteristic_value_query_result_get_handle(const uint8_t * event){
1851     return little_endian_read_16(event, 2);
1852 }
1853 /**
1854  * @brief Get field value_handle from event GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT
1855  * @param event packet
1856  * @return value_handle
1857  * @note: btstack_type 2
1858  */
1859 static inline uint16_t gatt_event_characteristic_value_query_result_get_value_handle(const uint8_t * event){
1860     return little_endian_read_16(event, 4);
1861 }
1862 /**
1863  * @brief Get field value_length from event GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT
1864  * @param event packet
1865  * @return value_length
1866  * @note: btstack_type L
1867  */
1868 static inline int gatt_event_characteristic_value_query_result_get_value_length(const uint8_t * event){
1869     return little_endian_read_16(event, 6);
1870 }
1871 /**
1872  * @brief Get field value from event GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT
1873  * @param event packet
1874  * @return value
1875  * @note: btstack_type V
1876  */
1877 static inline const uint8_t * gatt_event_characteristic_value_query_result_get_value(const uint8_t * event){
1878     return &event[8];
1879 }
1880 #endif
1881 
1882 #ifdef ENABLE_BLE
1883 /**
1884  * @brief Get field handle from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT
1885  * @param event packet
1886  * @return handle
1887  * @note: btstack_type H
1888  */
1889 static inline hci_con_handle_t gatt_event_long_characteristic_value_query_result_get_handle(const uint8_t * event){
1890     return little_endian_read_16(event, 2);
1891 }
1892 /**
1893  * @brief Get field value_handle from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT
1894  * @param event packet
1895  * @return value_handle
1896  * @note: btstack_type 2
1897  */
1898 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_handle(const uint8_t * event){
1899     return little_endian_read_16(event, 4);
1900 }
1901 /**
1902  * @brief Get field value_offset from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT
1903  * @param event packet
1904  * @return value_offset
1905  * @note: btstack_type 2
1906  */
1907 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_offset(const uint8_t * event){
1908     return little_endian_read_16(event, 6);
1909 }
1910 /**
1911  * @brief Get field value_length from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT
1912  * @param event packet
1913  * @return value_length
1914  * @note: btstack_type L
1915  */
1916 static inline int gatt_event_long_characteristic_value_query_result_get_value_length(const uint8_t * event){
1917     return little_endian_read_16(event, 8);
1918 }
1919 /**
1920  * @brief Get field value from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT
1921  * @param event packet
1922  * @return value
1923  * @note: btstack_type V
1924  */
1925 static inline const uint8_t * gatt_event_long_characteristic_value_query_result_get_value(const uint8_t * event){
1926     return &event[10];
1927 }
1928 #endif
1929 
1930 #ifdef ENABLE_BLE
1931 /**
1932  * @brief Get field handle from event GATT_EVENT_NOTIFICATION
1933  * @param event packet
1934  * @return handle
1935  * @note: btstack_type H
1936  */
1937 static inline hci_con_handle_t gatt_event_notification_get_handle(const uint8_t * event){
1938     return little_endian_read_16(event, 2);
1939 }
1940 /**
1941  * @brief Get field value_handle from event GATT_EVENT_NOTIFICATION
1942  * @param event packet
1943  * @return value_handle
1944  * @note: btstack_type 2
1945  */
1946 static inline uint16_t gatt_event_notification_get_value_handle(const uint8_t * event){
1947     return little_endian_read_16(event, 4);
1948 }
1949 /**
1950  * @brief Get field value_length from event GATT_EVENT_NOTIFICATION
1951  * @param event packet
1952  * @return value_length
1953  * @note: btstack_type L
1954  */
1955 static inline int gatt_event_notification_get_value_length(const uint8_t * event){
1956     return little_endian_read_16(event, 6);
1957 }
1958 /**
1959  * @brief Get field value from event GATT_EVENT_NOTIFICATION
1960  * @param event packet
1961  * @return value
1962  * @note: btstack_type V
1963  */
1964 static inline const uint8_t * gatt_event_notification_get_value(const uint8_t * event){
1965     return &event[8];
1966 }
1967 #endif
1968 
1969 #ifdef ENABLE_BLE
1970 /**
1971  * @brief Get field handle from event GATT_EVENT_INDICATION
1972  * @param event packet
1973  * @return handle
1974  * @note: btstack_type H
1975  */
1976 static inline hci_con_handle_t gatt_event_indication_get_handle(const uint8_t * event){
1977     return little_endian_read_16(event, 2);
1978 }
1979 /**
1980  * @brief Get field value_handle from event GATT_EVENT_INDICATION
1981  * @param event packet
1982  * @return value_handle
1983  * @note: btstack_type 2
1984  */
1985 static inline uint16_t gatt_event_indication_get_value_handle(const uint8_t * event){
1986     return little_endian_read_16(event, 4);
1987 }
1988 /**
1989  * @brief Get field value_length from event GATT_EVENT_INDICATION
1990  * @param event packet
1991  * @return value_length
1992  * @note: btstack_type L
1993  */
1994 static inline int gatt_event_indication_get_value_length(const uint8_t * event){
1995     return little_endian_read_16(event, 6);
1996 }
1997 /**
1998  * @brief Get field value from event GATT_EVENT_INDICATION
1999  * @param event packet
2000  * @return value
2001  * @note: btstack_type V
2002  */
2003 static inline const uint8_t * gatt_event_indication_get_value(const uint8_t * event){
2004     return &event[8];
2005 }
2006 #endif
2007 
2008 #ifdef ENABLE_BLE
2009 /**
2010  * @brief Get field handle from event GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT
2011  * @param event packet
2012  * @return handle
2013  * @note: btstack_type H
2014  */
2015 static inline hci_con_handle_t gatt_event_characteristic_descriptor_query_result_get_handle(const uint8_t * event){
2016     return little_endian_read_16(event, 2);
2017 }
2018 /**
2019  * @brief Get field descriptor_handle from event GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT
2020  * @param event packet
2021  * @return descriptor_handle
2022  * @note: btstack_type 2
2023  */
2024 static inline uint16_t gatt_event_characteristic_descriptor_query_result_get_descriptor_handle(const uint8_t * event){
2025     return little_endian_read_16(event, 4);
2026 }
2027 /**
2028  * @brief Get field descriptor_length from event GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT
2029  * @param event packet
2030  * @return descriptor_length
2031  * @note: btstack_type L
2032  */
2033 static inline int gatt_event_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){
2034     return little_endian_read_16(event, 6);
2035 }
2036 /**
2037  * @brief Get field descriptor from event GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT
2038  * @param event packet
2039  * @return descriptor
2040  * @note: btstack_type V
2041  */
2042 static inline const uint8_t * gatt_event_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){
2043     return &event[8];
2044 }
2045 #endif
2046 
2047 #ifdef ENABLE_BLE
2048 /**
2049  * @brief Get field handle from event GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT
2050  * @param event packet
2051  * @return handle
2052  * @note: btstack_type H
2053  */
2054 static inline hci_con_handle_t gatt_event_long_characteristic_descriptor_query_result_get_handle(const uint8_t * event){
2055     return little_endian_read_16(event, 2);
2056 }
2057 /**
2058  * @brief Get field descriptor_offset from event GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT
2059  * @param event packet
2060  * @return descriptor_offset
2061  * @note: btstack_type 2
2062  */
2063 static inline uint16_t gatt_event_long_characteristic_descriptor_query_result_get_descriptor_offset(const uint8_t * event){
2064     return little_endian_read_16(event, 4);
2065 }
2066 /**
2067  * @brief Get field descriptor_length from event GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT
2068  * @param event packet
2069  * @return descriptor_length
2070  * @note: btstack_type L
2071  */
2072 static inline int gatt_event_long_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){
2073     return little_endian_read_16(event, 6);
2074 }
2075 /**
2076  * @brief Get field descriptor from event GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT
2077  * @param event packet
2078  * @return descriptor
2079  * @note: btstack_type V
2080  */
2081 static inline const uint8_t * gatt_event_long_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){
2082     return &event[8];
2083 }
2084 #endif
2085 
2086 #ifdef ENABLE_BLE
2087 /**
2088  * @brief Get field handle from event GATT_EVENT_MTU
2089  * @param event packet
2090  * @return handle
2091  * @note: btstack_type H
2092  */
2093 static inline hci_con_handle_t gatt_event_mtu_get_handle(const uint8_t * event){
2094     return little_endian_read_16(event, 2);
2095 }
2096 /**
2097  * @brief Get field MTU from event GATT_EVENT_MTU
2098  * @param event packet
2099  * @return MTU
2100  * @note: btstack_type 2
2101  */
2102 static inline uint16_t gatt_event_mtu_get_MTU(const uint8_t * event){
2103     return little_endian_read_16(event, 4);
2104 }
2105 #endif
2106 
2107 #ifdef ENABLE_BLE
2108 /**
2109  * @brief Get field handle from event GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE
2110  * @param event packet
2111  * @return handle
2112  * @note: btstack_type H
2113  */
2114 static inline hci_con_handle_t gatt_event_can_write_without_response_get_handle(const uint8_t * event){
2115     return little_endian_read_16(event, 2);
2116 }
2117 #endif
2118 
2119 /**
2120  * @brief Get field handle from event ATT_EVENT_MTU_EXCHANGE_COMPLETE
2121  * @param event packet
2122  * @return handle
2123  * @note: btstack_type H
2124  */
2125 static inline hci_con_handle_t att_event_mtu_exchange_complete_get_handle(const uint8_t * event){
2126     return little_endian_read_16(event, 2);
2127 }
2128 /**
2129  * @brief Get field MTU from event ATT_EVENT_MTU_EXCHANGE_COMPLETE
2130  * @param event packet
2131  * @return MTU
2132  * @note: btstack_type 2
2133  */
2134 static inline uint16_t att_event_mtu_exchange_complete_get_MTU(const uint8_t * event){
2135     return little_endian_read_16(event, 4);
2136 }
2137 
2138 /**
2139  * @brief Get field status from event ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE
2140  * @param event packet
2141  * @return status
2142  * @note: btstack_type 1
2143  */
2144 static inline uint8_t att_event_handle_value_indication_complete_get_status(const uint8_t * event){
2145     return event[2];
2146 }
2147 /**
2148  * @brief Get field conn_handle from event ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE
2149  * @param event packet
2150  * @return conn_handle
2151  * @note: btstack_type H
2152  */
2153 static inline hci_con_handle_t att_event_handle_value_indication_complete_get_conn_handle(const uint8_t * event){
2154     return little_endian_read_16(event, 3);
2155 }
2156 /**
2157  * @brief Get field attribute_handle from event ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE
2158  * @param event packet
2159  * @return attribute_handle
2160  * @note: btstack_type 2
2161  */
2162 static inline uint16_t att_event_handle_value_indication_complete_get_attribute_handle(const uint8_t * event){
2163     return little_endian_read_16(event, 5);
2164 }
2165 
2166 
2167 /**
2168  * @brief Get field status from event BNEP_EVENT_SERVICE_REGISTERED
2169  * @param event packet
2170  * @return status
2171  * @note: btstack_type 1
2172  */
2173 static inline uint8_t bnep_event_service_registered_get_status(const uint8_t * event){
2174     return event[2];
2175 }
2176 /**
2177  * @brief Get field service_uuid from event BNEP_EVENT_SERVICE_REGISTERED
2178  * @param event packet
2179  * @return service_uuid
2180  * @note: btstack_type 2
2181  */
2182 static inline uint16_t bnep_event_service_registered_get_service_uuid(const uint8_t * event){
2183     return little_endian_read_16(event, 3);
2184 }
2185 
2186 /**
2187  * @brief Get field status from event BNEP_EVENT_CHANNEL_OPENED
2188  * @param event packet
2189  * @return status
2190  * @note: btstack_type 1
2191  */
2192 static inline uint8_t bnep_event_channel_opened_get_status(const uint8_t * event){
2193     return event[2];
2194 }
2195 /**
2196  * @brief Get field bnep_cid from event BNEP_EVENT_CHANNEL_OPENED
2197  * @param event packet
2198  * @return bnep_cid
2199  * @note: btstack_type 2
2200  */
2201 static inline uint16_t bnep_event_channel_opened_get_bnep_cid(const uint8_t * event){
2202     return little_endian_read_16(event, 3);
2203 }
2204 /**
2205  * @brief Get field source_uuid from event BNEP_EVENT_CHANNEL_OPENED
2206  * @param event packet
2207  * @return source_uuid
2208  * @note: btstack_type 2
2209  */
2210 static inline uint16_t bnep_event_channel_opened_get_source_uuid(const uint8_t * event){
2211     return little_endian_read_16(event, 5);
2212 }
2213 /**
2214  * @brief Get field destination_uuid from event BNEP_EVENT_CHANNEL_OPENED
2215  * @param event packet
2216  * @return destination_uuid
2217  * @note: btstack_type 2
2218  */
2219 static inline uint16_t bnep_event_channel_opened_get_destination_uuid(const uint8_t * event){
2220     return little_endian_read_16(event, 7);
2221 }
2222 /**
2223  * @brief Get field mtu from event BNEP_EVENT_CHANNEL_OPENED
2224  * @param event packet
2225  * @return mtu
2226  * @note: btstack_type 2
2227  */
2228 static inline uint16_t bnep_event_channel_opened_get_mtu(const uint8_t * event){
2229     return little_endian_read_16(event, 9);
2230 }
2231 /**
2232  * @brief Get field remote_address from event BNEP_EVENT_CHANNEL_OPENED
2233  * @param event packet
2234  * @param Pointer to storage for remote_address
2235  * @note: btstack_type B
2236  */
2237 static inline void bnep_event_channel_opened_get_remote_address(const uint8_t * event, bd_addr_t remote_address){
2238     reverse_bd_addr(&event[11], remote_address);
2239 }
2240 
2241 /**
2242  * @brief Get field bnep_cid from event BNEP_EVENT_CHANNEL_CLOSED
2243  * @param event packet
2244  * @return bnep_cid
2245  * @note: btstack_type 2
2246  */
2247 static inline uint16_t bnep_event_channel_closed_get_bnep_cid(const uint8_t * event){
2248     return little_endian_read_16(event, 2);
2249 }
2250 /**
2251  * @brief Get field source_uuid from event BNEP_EVENT_CHANNEL_CLOSED
2252  * @param event packet
2253  * @return source_uuid
2254  * @note: btstack_type 2
2255  */
2256 static inline uint16_t bnep_event_channel_closed_get_source_uuid(const uint8_t * event){
2257     return little_endian_read_16(event, 4);
2258 }
2259 /**
2260  * @brief Get field destination_uuid from event BNEP_EVENT_CHANNEL_CLOSED
2261  * @param event packet
2262  * @return destination_uuid
2263  * @note: btstack_type 2
2264  */
2265 static inline uint16_t bnep_event_channel_closed_get_destination_uuid(const uint8_t * event){
2266     return little_endian_read_16(event, 6);
2267 }
2268 /**
2269  * @brief Get field remote_address from event BNEP_EVENT_CHANNEL_CLOSED
2270  * @param event packet
2271  * @param Pointer to storage for remote_address
2272  * @note: btstack_type B
2273  */
2274 static inline void bnep_event_channel_closed_get_remote_address(const uint8_t * event, bd_addr_t remote_address){
2275     reverse_bd_addr(&event[8], remote_address);
2276 }
2277 
2278 /**
2279  * @brief Get field bnep_cid from event BNEP_EVENT_CHANNEL_TIMEOUT
2280  * @param event packet
2281  * @return bnep_cid
2282  * @note: btstack_type 2
2283  */
2284 static inline uint16_t bnep_event_channel_timeout_get_bnep_cid(const uint8_t * event){
2285     return little_endian_read_16(event, 2);
2286 }
2287 /**
2288  * @brief Get field source_uuid from event BNEP_EVENT_CHANNEL_TIMEOUT
2289  * @param event packet
2290  * @return source_uuid
2291  * @note: btstack_type 2
2292  */
2293 static inline uint16_t bnep_event_channel_timeout_get_source_uuid(const uint8_t * event){
2294     return little_endian_read_16(event, 4);
2295 }
2296 /**
2297  * @brief Get field destination_uuid from event BNEP_EVENT_CHANNEL_TIMEOUT
2298  * @param event packet
2299  * @return destination_uuid
2300  * @note: btstack_type 2
2301  */
2302 static inline uint16_t bnep_event_channel_timeout_get_destination_uuid(const uint8_t * event){
2303     return little_endian_read_16(event, 6);
2304 }
2305 /**
2306  * @brief Get field remote_address from event BNEP_EVENT_CHANNEL_TIMEOUT
2307  * @param event packet
2308  * @param Pointer to storage for remote_address
2309  * @note: btstack_type B
2310  */
2311 static inline void bnep_event_channel_timeout_get_remote_address(const uint8_t * event, bd_addr_t remote_address){
2312     reverse_bd_addr(&event[8], remote_address);
2313 }
2314 /**
2315  * @brief Get field channel_state from event BNEP_EVENT_CHANNEL_TIMEOUT
2316  * @param event packet
2317  * @return channel_state
2318  * @note: btstack_type 1
2319  */
2320 static inline uint8_t bnep_event_channel_timeout_get_channel_state(const uint8_t * event){
2321     return event[14];
2322 }
2323 
2324 /**
2325  * @brief Get field bnep_cid from event BNEP_EVENT_CAN_SEND_NOW
2326  * @param event packet
2327  * @return bnep_cid
2328  * @note: btstack_type 2
2329  */
2330 static inline uint16_t bnep_event_can_send_now_get_bnep_cid(const uint8_t * event){
2331     return little_endian_read_16(event, 2);
2332 }
2333 /**
2334  * @brief Get field source_uuid from event BNEP_EVENT_CAN_SEND_NOW
2335  * @param event packet
2336  * @return source_uuid
2337  * @note: btstack_type 2
2338  */
2339 static inline uint16_t bnep_event_can_send_now_get_source_uuid(const uint8_t * event){
2340     return little_endian_read_16(event, 4);
2341 }
2342 /**
2343  * @brief Get field destination_uuid from event BNEP_EVENT_CAN_SEND_NOW
2344  * @param event packet
2345  * @return destination_uuid
2346  * @note: btstack_type 2
2347  */
2348 static inline uint16_t bnep_event_can_send_now_get_destination_uuid(const uint8_t * event){
2349     return little_endian_read_16(event, 6);
2350 }
2351 /**
2352  * @brief Get field remote_address from event BNEP_EVENT_CAN_SEND_NOW
2353  * @param event packet
2354  * @param Pointer to storage for remote_address
2355  * @note: btstack_type B
2356  */
2357 static inline void bnep_event_can_send_now_get_remote_address(const uint8_t * event, bd_addr_t remote_address){
2358     reverse_bd_addr(&event[8], remote_address);
2359 }
2360 
2361 #ifdef ENABLE_BLE
2362 /**
2363  * @brief Get field handle from event SM_EVENT_JUST_WORKS_REQUEST
2364  * @param event packet
2365  * @return handle
2366  * @note: btstack_type H
2367  */
2368 static inline hci_con_handle_t sm_event_just_works_request_get_handle(const uint8_t * event){
2369     return little_endian_read_16(event, 2);
2370 }
2371 /**
2372  * @brief Get field addr_type from event SM_EVENT_JUST_WORKS_REQUEST
2373  * @param event packet
2374  * @return addr_type
2375  * @note: btstack_type 1
2376  */
2377 static inline uint8_t sm_event_just_works_request_get_addr_type(const uint8_t * event){
2378     return event[4];
2379 }
2380 /**
2381  * @brief Get field address from event SM_EVENT_JUST_WORKS_REQUEST
2382  * @param event packet
2383  * @param Pointer to storage for address
2384  * @note: btstack_type B
2385  */
2386 static inline void sm_event_just_works_request_get_address(const uint8_t * event, bd_addr_t address){
2387     reverse_bd_addr(&event[5], address);
2388 }
2389 #endif
2390 
2391 #ifdef ENABLE_BLE
2392 /**
2393  * @brief Get field handle from event SM_EVENT_JUST_WORKS_CANCEL
2394  * @param event packet
2395  * @return handle
2396  * @note: btstack_type H
2397  */
2398 static inline hci_con_handle_t sm_event_just_works_cancel_get_handle(const uint8_t * event){
2399     return little_endian_read_16(event, 2);
2400 }
2401 /**
2402  * @brief Get field addr_type from event SM_EVENT_JUST_WORKS_CANCEL
2403  * @param event packet
2404  * @return addr_type
2405  * @note: btstack_type 1
2406  */
2407 static inline uint8_t sm_event_just_works_cancel_get_addr_type(const uint8_t * event){
2408     return event[4];
2409 }
2410 /**
2411  * @brief Get field address from event SM_EVENT_JUST_WORKS_CANCEL
2412  * @param event packet
2413  * @param Pointer to storage for address
2414  * @note: btstack_type B
2415  */
2416 static inline void sm_event_just_works_cancel_get_address(const uint8_t * event, bd_addr_t address){
2417     reverse_bd_addr(&event[5], address);
2418 }
2419 #endif
2420 
2421 #ifdef ENABLE_BLE
2422 /**
2423  * @brief Get field handle from event SM_EVENT_PASSKEY_DISPLAY_NUMBER
2424  * @param event packet
2425  * @return handle
2426  * @note: btstack_type H
2427  */
2428 static inline hci_con_handle_t sm_event_passkey_display_number_get_handle(const uint8_t * event){
2429     return little_endian_read_16(event, 2);
2430 }
2431 /**
2432  * @brief Get field addr_type from event SM_EVENT_PASSKEY_DISPLAY_NUMBER
2433  * @param event packet
2434  * @return addr_type
2435  * @note: btstack_type 1
2436  */
2437 static inline uint8_t sm_event_passkey_display_number_get_addr_type(const uint8_t * event){
2438     return event[4];
2439 }
2440 /**
2441  * @brief Get field address from event SM_EVENT_PASSKEY_DISPLAY_NUMBER
2442  * @param event packet
2443  * @param Pointer to storage for address
2444  * @note: btstack_type B
2445  */
2446 static inline void sm_event_passkey_display_number_get_address(const uint8_t * event, bd_addr_t address){
2447     reverse_bd_addr(&event[5], address);
2448 }
2449 /**
2450  * @brief Get field passkey from event SM_EVENT_PASSKEY_DISPLAY_NUMBER
2451  * @param event packet
2452  * @return passkey
2453  * @note: btstack_type 4
2454  */
2455 static inline uint32_t sm_event_passkey_display_number_get_passkey(const uint8_t * event){
2456     return little_endian_read_32(event, 11);
2457 }
2458 #endif
2459 
2460 #ifdef ENABLE_BLE
2461 /**
2462  * @brief Get field handle from event SM_EVENT_PASSKEY_DISPLAY_CANCEL
2463  * @param event packet
2464  * @return handle
2465  * @note: btstack_type H
2466  */
2467 static inline hci_con_handle_t sm_event_passkey_display_cancel_get_handle(const uint8_t * event){
2468     return little_endian_read_16(event, 2);
2469 }
2470 /**
2471  * @brief Get field addr_type from event SM_EVENT_PASSKEY_DISPLAY_CANCEL
2472  * @param event packet
2473  * @return addr_type
2474  * @note: btstack_type 1
2475  */
2476 static inline uint8_t sm_event_passkey_display_cancel_get_addr_type(const uint8_t * event){
2477     return event[4];
2478 }
2479 /**
2480  * @brief Get field address from event SM_EVENT_PASSKEY_DISPLAY_CANCEL
2481  * @param event packet
2482  * @param Pointer to storage for address
2483  * @note: btstack_type B
2484  */
2485 static inline void sm_event_passkey_display_cancel_get_address(const uint8_t * event, bd_addr_t address){
2486     reverse_bd_addr(&event[5], address);
2487 }
2488 #endif
2489 
2490 #ifdef ENABLE_BLE
2491 /**
2492  * @brief Get field handle from event SM_EVENT_PASSKEY_INPUT_NUMBER
2493  * @param event packet
2494  * @return handle
2495  * @note: btstack_type H
2496  */
2497 static inline hci_con_handle_t sm_event_passkey_input_number_get_handle(const uint8_t * event){
2498     return little_endian_read_16(event, 2);
2499 }
2500 /**
2501  * @brief Get field addr_type from event SM_EVENT_PASSKEY_INPUT_NUMBER
2502  * @param event packet
2503  * @return addr_type
2504  * @note: btstack_type 1
2505  */
2506 static inline uint8_t sm_event_passkey_input_number_get_addr_type(const uint8_t * event){
2507     return event[4];
2508 }
2509 /**
2510  * @brief Get field address from event SM_EVENT_PASSKEY_INPUT_NUMBER
2511  * @param event packet
2512  * @param Pointer to storage for address
2513  * @note: btstack_type B
2514  */
2515 static inline void sm_event_passkey_input_number_get_address(const uint8_t * event, bd_addr_t address){
2516     reverse_bd_addr(&event[5], address);
2517 }
2518 #endif
2519 
2520 #ifdef ENABLE_BLE
2521 /**
2522  * @brief Get field handle from event SM_EVENT_PASSKEY_INPUT_CANCEL
2523  * @param event packet
2524  * @return handle
2525  * @note: btstack_type H
2526  */
2527 static inline hci_con_handle_t sm_event_passkey_input_cancel_get_handle(const uint8_t * event){
2528     return little_endian_read_16(event, 2);
2529 }
2530 /**
2531  * @brief Get field addr_type from event SM_EVENT_PASSKEY_INPUT_CANCEL
2532  * @param event packet
2533  * @return addr_type
2534  * @note: btstack_type 1
2535  */
2536 static inline uint8_t sm_event_passkey_input_cancel_get_addr_type(const uint8_t * event){
2537     return event[4];
2538 }
2539 /**
2540  * @brief Get field address from event SM_EVENT_PASSKEY_INPUT_CANCEL
2541  * @param event packet
2542  * @param Pointer to storage for address
2543  * @note: btstack_type B
2544  */
2545 static inline void sm_event_passkey_input_cancel_get_address(const uint8_t * event, bd_addr_t address){
2546     reverse_bd_addr(&event[5], address);
2547 }
2548 #endif
2549 
2550 #ifdef ENABLE_BLE
2551 /**
2552  * @brief Get field handle from event SM_EVENT_NUMERIC_COMPARISON_REQUEST
2553  * @param event packet
2554  * @return handle
2555  * @note: btstack_type H
2556  */
2557 static inline hci_con_handle_t sm_event_numeric_comparison_request_get_handle(const uint8_t * event){
2558     return little_endian_read_16(event, 2);
2559 }
2560 /**
2561  * @brief Get field addr_type from event SM_EVENT_NUMERIC_COMPARISON_REQUEST
2562  * @param event packet
2563  * @return addr_type
2564  * @note: btstack_type 1
2565  */
2566 static inline uint8_t sm_event_numeric_comparison_request_get_addr_type(const uint8_t * event){
2567     return event[4];
2568 }
2569 /**
2570  * @brief Get field address from event SM_EVENT_NUMERIC_COMPARISON_REQUEST
2571  * @param event packet
2572  * @param Pointer to storage for address
2573  * @note: btstack_type B
2574  */
2575 static inline void sm_event_numeric_comparison_request_get_address(const uint8_t * event, bd_addr_t address){
2576     reverse_bd_addr(&event[5], address);
2577 }
2578 /**
2579  * @brief Get field passkey from event SM_EVENT_NUMERIC_COMPARISON_REQUEST
2580  * @param event packet
2581  * @return passkey
2582  * @note: btstack_type 4
2583  */
2584 static inline uint32_t sm_event_numeric_comparison_request_get_passkey(const uint8_t * event){
2585     return little_endian_read_32(event, 11);
2586 }
2587 #endif
2588 
2589 #ifdef ENABLE_BLE
2590 /**
2591  * @brief Get field handle from event SM_EVENT_NUMERIC_COMPARISON_CANCEL
2592  * @param event packet
2593  * @return handle
2594  * @note: btstack_type H
2595  */
2596 static inline hci_con_handle_t sm_event_numeric_comparison_cancel_get_handle(const uint8_t * event){
2597     return little_endian_read_16(event, 2);
2598 }
2599 /**
2600  * @brief Get field addr_type from event SM_EVENT_NUMERIC_COMPARISON_CANCEL
2601  * @param event packet
2602  * @return addr_type
2603  * @note: btstack_type 1
2604  */
2605 static inline uint8_t sm_event_numeric_comparison_cancel_get_addr_type(const uint8_t * event){
2606     return event[4];
2607 }
2608 /**
2609  * @brief Get field address from event SM_EVENT_NUMERIC_COMPARISON_CANCEL
2610  * @param event packet
2611  * @param Pointer to storage for address
2612  * @note: btstack_type B
2613  */
2614 static inline void sm_event_numeric_comparison_cancel_get_address(const uint8_t * event, bd_addr_t address){
2615     reverse_bd_addr(&event[5], address);
2616 }
2617 #endif
2618 
2619 #ifdef ENABLE_BLE
2620 /**
2621  * @brief Get field handle from event SM_EVENT_IDENTITY_RESOLVING_STARTED
2622  * @param event packet
2623  * @return handle
2624  * @note: btstack_type H
2625  */
2626 static inline hci_con_handle_t sm_event_identity_resolving_started_get_handle(const uint8_t * event){
2627     return little_endian_read_16(event, 2);
2628 }
2629 /**
2630  * @brief Get field addr_type from event SM_EVENT_IDENTITY_RESOLVING_STARTED
2631  * @param event packet
2632  * @return addr_type
2633  * @note: btstack_type 1
2634  */
2635 static inline uint8_t sm_event_identity_resolving_started_get_addr_type(const uint8_t * event){
2636     return event[4];
2637 }
2638 /**
2639  * @brief Get field address from event SM_EVENT_IDENTITY_RESOLVING_STARTED
2640  * @param event packet
2641  * @param Pointer to storage for address
2642  * @note: btstack_type B
2643  */
2644 static inline void sm_event_identity_resolving_started_get_address(const uint8_t * event, bd_addr_t address){
2645     reverse_bd_addr(&event[5], address);
2646 }
2647 #endif
2648 
2649 #ifdef ENABLE_BLE
2650 /**
2651  * @brief Get field handle from event SM_EVENT_IDENTITY_RESOLVING_FAILED
2652  * @param event packet
2653  * @return handle
2654  * @note: btstack_type H
2655  */
2656 static inline hci_con_handle_t sm_event_identity_resolving_failed_get_handle(const uint8_t * event){
2657     return little_endian_read_16(event, 2);
2658 }
2659 /**
2660  * @brief Get field addr_type from event SM_EVENT_IDENTITY_RESOLVING_FAILED
2661  * @param event packet
2662  * @return addr_type
2663  * @note: btstack_type 1
2664  */
2665 static inline uint8_t sm_event_identity_resolving_failed_get_addr_type(const uint8_t * event){
2666     return event[4];
2667 }
2668 /**
2669  * @brief Get field address from event SM_EVENT_IDENTITY_RESOLVING_FAILED
2670  * @param event packet
2671  * @param Pointer to storage for address
2672  * @note: btstack_type B
2673  */
2674 static inline void sm_event_identity_resolving_failed_get_address(const uint8_t * event, bd_addr_t address){
2675     reverse_bd_addr(&event[5], address);
2676 }
2677 #endif
2678 
2679 #ifdef ENABLE_BLE
2680 /**
2681  * @brief Get field handle from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED
2682  * @param event packet
2683  * @return handle
2684  * @note: btstack_type H
2685  */
2686 static inline hci_con_handle_t sm_event_identity_resolving_succeeded_get_handle(const uint8_t * event){
2687     return little_endian_read_16(event, 2);
2688 }
2689 /**
2690  * @brief Get field addr_type from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED
2691  * @param event packet
2692  * @return addr_type
2693  * @note: btstack_type 1
2694  */
2695 static inline uint8_t sm_event_identity_resolving_succeeded_get_addr_type(const uint8_t * event){
2696     return event[4];
2697 }
2698 /**
2699  * @brief Get field address from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED
2700  * @param event packet
2701  * @param Pointer to storage for address
2702  * @note: btstack_type B
2703  */
2704 static inline void sm_event_identity_resolving_succeeded_get_address(const uint8_t * event, bd_addr_t address){
2705     reverse_bd_addr(&event[5], address);
2706 }
2707 /**
2708  * @brief Get field identity_addr_type from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED
2709  * @param event packet
2710  * @return identity_addr_type
2711  * @note: btstack_type 1
2712  */
2713 static inline uint8_t sm_event_identity_resolving_succeeded_get_identity_addr_type(const uint8_t * event){
2714     return event[11];
2715 }
2716 /**
2717  * @brief Get field identity_address from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED
2718  * @param event packet
2719  * @param Pointer to storage for identity_address
2720  * @note: btstack_type B
2721  */
2722 static inline void sm_event_identity_resolving_succeeded_get_identity_address(const uint8_t * event, bd_addr_t identity_address){
2723     reverse_bd_addr(&event[12], identity_address);
2724 }
2725 /**
2726  * @brief Get field index from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED
2727  * @param event packet
2728  * @return index
2729  * @note: btstack_type 2
2730  */
2731 static inline uint16_t sm_event_identity_resolving_succeeded_get_index(const uint8_t * event){
2732     return little_endian_read_16(event, 18);
2733 }
2734 #endif
2735 
2736 #ifdef ENABLE_BLE
2737 /**
2738  * @brief Get field handle from event SM_EVENT_AUTHORIZATION_REQUEST
2739  * @param event packet
2740  * @return handle
2741  * @note: btstack_type H
2742  */
2743 static inline hci_con_handle_t sm_event_authorization_request_get_handle(const uint8_t * event){
2744     return little_endian_read_16(event, 2);
2745 }
2746 /**
2747  * @brief Get field addr_type from event SM_EVENT_AUTHORIZATION_REQUEST
2748  * @param event packet
2749  * @return addr_type
2750  * @note: btstack_type 1
2751  */
2752 static inline uint8_t sm_event_authorization_request_get_addr_type(const uint8_t * event){
2753     return event[4];
2754 }
2755 /**
2756  * @brief Get field address from event SM_EVENT_AUTHORIZATION_REQUEST
2757  * @param event packet
2758  * @param Pointer to storage for address
2759  * @note: btstack_type B
2760  */
2761 static inline void sm_event_authorization_request_get_address(const uint8_t * event, bd_addr_t address){
2762     reverse_bd_addr(&event[5], address);
2763 }
2764 #endif
2765 
2766 #ifdef ENABLE_BLE
2767 /**
2768  * @brief Get field handle from event SM_EVENT_AUTHORIZATION_RESULT
2769  * @param event packet
2770  * @return handle
2771  * @note: btstack_type H
2772  */
2773 static inline hci_con_handle_t sm_event_authorization_result_get_handle(const uint8_t * event){
2774     return little_endian_read_16(event, 2);
2775 }
2776 /**
2777  * @brief Get field addr_type from event SM_EVENT_AUTHORIZATION_RESULT
2778  * @param event packet
2779  * @return addr_type
2780  * @note: btstack_type 1
2781  */
2782 static inline uint8_t sm_event_authorization_result_get_addr_type(const uint8_t * event){
2783     return event[4];
2784 }
2785 /**
2786  * @brief Get field address from event SM_EVENT_AUTHORIZATION_RESULT
2787  * @param event packet
2788  * @param Pointer to storage for address
2789  * @note: btstack_type B
2790  */
2791 static inline void sm_event_authorization_result_get_address(const uint8_t * event, bd_addr_t address){
2792     reverse_bd_addr(&event[5], address);
2793 }
2794 /**
2795  * @brief Get field authorization_result from event SM_EVENT_AUTHORIZATION_RESULT
2796  * @param event packet
2797  * @return authorization_result
2798  * @note: btstack_type 1
2799  */
2800 static inline uint8_t sm_event_authorization_result_get_authorization_result(const uint8_t * event){
2801     return event[11];
2802 }
2803 #endif
2804 
2805 #ifdef ENABLE_BLE
2806 /**
2807  * @brief Get field handle from event SM_EVENT_KEYPRESS_NOTIFICATION
2808  * @param event packet
2809  * @return handle
2810  * @note: btstack_type H
2811  */
2812 static inline hci_con_handle_t sm_event_keypress_notification_get_handle(const uint8_t * event){
2813     return little_endian_read_16(event, 2);
2814 }
2815 /**
2816  * @brief Get field action from event SM_EVENT_KEYPRESS_NOTIFICATION
2817  * @param event packet
2818  * @return action
2819  * @note: btstack_type 1
2820  */
2821 static inline uint8_t sm_event_keypress_notification_get_action(const uint8_t * event){
2822     return event[4];
2823 }
2824 #endif
2825 
2826 #ifdef ENABLE_BLE
2827 /**
2828  * @brief Get field handle from event SM_EVENT_IDENTITY_CREATED
2829  * @param event packet
2830  * @return handle
2831  * @note: btstack_type H
2832  */
2833 static inline hci_con_handle_t sm_event_identity_created_get_handle(const uint8_t * event){
2834     return little_endian_read_16(event, 2);
2835 }
2836 /**
2837  * @brief Get field addr_type from event SM_EVENT_IDENTITY_CREATED
2838  * @param event packet
2839  * @return addr_type
2840  * @note: btstack_type 1
2841  */
2842 static inline uint8_t sm_event_identity_created_get_addr_type(const uint8_t * event){
2843     return event[4];
2844 }
2845 /**
2846  * @brief Get field address from event SM_EVENT_IDENTITY_CREATED
2847  * @param event packet
2848  * @param Pointer to storage for address
2849  * @note: btstack_type B
2850  */
2851 static inline void sm_event_identity_created_get_address(const uint8_t * event, bd_addr_t address){
2852     reverse_bd_addr(&event[5], address);
2853 }
2854 /**
2855  * @brief Get field identity_addr_type from event SM_EVENT_IDENTITY_CREATED
2856  * @param event packet
2857  * @return identity_addr_type
2858  * @note: btstack_type 1
2859  */
2860 static inline uint8_t sm_event_identity_created_get_identity_addr_type(const uint8_t * event){
2861     return event[11];
2862 }
2863 /**
2864  * @brief Get field identity_address from event SM_EVENT_IDENTITY_CREATED
2865  * @param event packet
2866  * @param Pointer to storage for identity_address
2867  * @note: btstack_type B
2868  */
2869 static inline void sm_event_identity_created_get_identity_address(const uint8_t * event, bd_addr_t identity_address){
2870     reverse_bd_addr(&event[12], identity_address);
2871 }
2872 /**
2873  * @brief Get field index from event SM_EVENT_IDENTITY_CREATED
2874  * @param event packet
2875  * @return index
2876  * @note: btstack_type 1
2877  */
2878 static inline uint8_t sm_event_identity_created_get_index(const uint8_t * event){
2879     return event[18];
2880 }
2881 #endif
2882 
2883 #ifdef ENABLE_BLE
2884 /**
2885  * @brief Get field handle from event SM_EVENT_PAIRING_COMPLETE
2886  * @param event packet
2887  * @return handle
2888  * @note: btstack_type H
2889  */
2890 static inline hci_con_handle_t sm_event_pairing_complete_get_handle(const uint8_t * event){
2891     return little_endian_read_16(event, 2);
2892 }
2893 /**
2894  * @brief Get field addr_type from event SM_EVENT_PAIRING_COMPLETE
2895  * @param event packet
2896  * @return addr_type
2897  * @note: btstack_type 1
2898  */
2899 static inline uint8_t sm_event_pairing_complete_get_addr_type(const uint8_t * event){
2900     return event[4];
2901 }
2902 /**
2903  * @brief Get field address from event SM_EVENT_PAIRING_COMPLETE
2904  * @param event packet
2905  * @param Pointer to storage for address
2906  * @note: btstack_type B
2907  */
2908 static inline void sm_event_pairing_complete_get_address(const uint8_t * event, bd_addr_t address){
2909     reverse_bd_addr(&event[5], address);
2910 }
2911 /**
2912  * @brief Get field status from event SM_EVENT_PAIRING_COMPLETE
2913  * @param event packet
2914  * @return status
2915  * @note: btstack_type 1
2916  */
2917 static inline uint8_t sm_event_pairing_complete_get_status(const uint8_t * event){
2918     return event[11];
2919 }
2920 /**
2921  * @brief Get field reason from event SM_EVENT_PAIRING_COMPLETE
2922  * @param event packet
2923  * @return reason
2924  * @note: btstack_type 1
2925  */
2926 static inline uint8_t sm_event_pairing_complete_get_reason(const uint8_t * event){
2927     return event[12];
2928 }
2929 #endif
2930 
2931 /**
2932  * @brief Get field handle from event GAP_EVENT_SECURITY_LEVEL
2933  * @param event packet
2934  * @return handle
2935  * @note: btstack_type H
2936  */
2937 static inline hci_con_handle_t gap_event_security_level_get_handle(const uint8_t * event){
2938     return little_endian_read_16(event, 2);
2939 }
2940 /**
2941  * @brief Get field security_level from event GAP_EVENT_SECURITY_LEVEL
2942  * @param event packet
2943  * @return security_level
2944  * @note: btstack_type 1
2945  */
2946 static inline uint8_t gap_event_security_level_get_security_level(const uint8_t * event){
2947     return event[4];
2948 }
2949 
2950 /**
2951  * @brief Get field status from event GAP_EVENT_DEDICATED_BONDING_COMPLETED
2952  * @param event packet
2953  * @return status
2954  * @note: btstack_type 1
2955  */
2956 static inline uint8_t gap_event_dedicated_bonding_completed_get_status(const uint8_t * event){
2957     return event[2];
2958 }
2959 /**
2960  * @brief Get field address from event GAP_EVENT_DEDICATED_BONDING_COMPLETED
2961  * @param event packet
2962  * @param Pointer to storage for address
2963  * @note: btstack_type B
2964  */
2965 static inline void gap_event_dedicated_bonding_completed_get_address(const uint8_t * event, bd_addr_t address){
2966     reverse_bd_addr(&event[3], address);
2967 }
2968 
2969 /**
2970  * @brief Get field advertising_event_type from event GAP_EVENT_ADVERTISING_REPORT
2971  * @param event packet
2972  * @return advertising_event_type
2973  * @note: btstack_type 1
2974  */
2975 static inline uint8_t gap_event_advertising_report_get_advertising_event_type(const uint8_t * event){
2976     return event[2];
2977 }
2978 /**
2979  * @brief Get field address_type from event GAP_EVENT_ADVERTISING_REPORT
2980  * @param event packet
2981  * @return address_type
2982  * @note: btstack_type 1
2983  */
2984 static inline uint8_t gap_event_advertising_report_get_address_type(const uint8_t * event){
2985     return event[3];
2986 }
2987 /**
2988  * @brief Get field address from event GAP_EVENT_ADVERTISING_REPORT
2989  * @param event packet
2990  * @param Pointer to storage for address
2991  * @note: btstack_type B
2992  */
2993 static inline void gap_event_advertising_report_get_address(const uint8_t * event, bd_addr_t address){
2994     reverse_bd_addr(&event[4], address);
2995 }
2996 /**
2997  * @brief Get field rssi from event GAP_EVENT_ADVERTISING_REPORT
2998  * @param event packet
2999  * @return rssi
3000  * @note: btstack_type 1
3001  */
3002 static inline uint8_t gap_event_advertising_report_get_rssi(const uint8_t * event){
3003     return event[10];
3004 }
3005 /**
3006  * @brief Get field data_length from event GAP_EVENT_ADVERTISING_REPORT
3007  * @param event packet
3008  * @return data_length
3009  * @note: btstack_type J
3010  */
3011 static inline int gap_event_advertising_report_get_data_length(const uint8_t * event){
3012     return event[11];
3013 }
3014 /**
3015  * @brief Get field data from event GAP_EVENT_ADVERTISING_REPORT
3016  * @param event packet
3017  * @return data
3018  * @note: btstack_type V
3019  */
3020 static inline const uint8_t * gap_event_advertising_report_get_data(const uint8_t * event){
3021     return &event[12];
3022 }
3023 
3024 /**
3025  * @brief Get field bd_addr from event GAP_EVENT_INQUIRY_RESULT
3026  * @param event packet
3027  * @param Pointer to storage for bd_addr
3028  * @note: btstack_type B
3029  */
3030 static inline void gap_event_inquiry_result_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
3031     reverse_bd_addr(&event[2], bd_addr);
3032 }
3033 /**
3034  * @brief Get field page_scan_repetition_mode from event GAP_EVENT_INQUIRY_RESULT
3035  * @param event packet
3036  * @return page_scan_repetition_mode
3037  * @note: btstack_type 1
3038  */
3039 static inline uint8_t gap_event_inquiry_result_get_page_scan_repetition_mode(const uint8_t * event){
3040     return event[8];
3041 }
3042 /**
3043  * @brief Get field class_of_device from event GAP_EVENT_INQUIRY_RESULT
3044  * @param event packet
3045  * @return class_of_device
3046  * @note: btstack_type 3
3047  */
3048 static inline uint32_t gap_event_inquiry_result_get_class_of_device(const uint8_t * event){
3049     return little_endian_read_24(event, 9);
3050 }
3051 /**
3052  * @brief Get field clock_offset from event GAP_EVENT_INQUIRY_RESULT
3053  * @param event packet
3054  * @return clock_offset
3055  * @note: btstack_type 2
3056  */
3057 static inline uint16_t gap_event_inquiry_result_get_clock_offset(const uint8_t * event){
3058     return little_endian_read_16(event, 12);
3059 }
3060 /**
3061  * @brief Get field rssi_available from event GAP_EVENT_INQUIRY_RESULT
3062  * @param event packet
3063  * @return rssi_available
3064  * @note: btstack_type 1
3065  */
3066 static inline uint8_t gap_event_inquiry_result_get_rssi_available(const uint8_t * event){
3067     return event[14];
3068 }
3069 /**
3070  * @brief Get field rssi from event GAP_EVENT_INQUIRY_RESULT
3071  * @param event packet
3072  * @return rssi
3073  * @note: btstack_type 1
3074  */
3075 static inline uint8_t gap_event_inquiry_result_get_rssi(const uint8_t * event){
3076     return event[15];
3077 }
3078 /**
3079  * @brief Get field name_available from event GAP_EVENT_INQUIRY_RESULT
3080  * @param event packet
3081  * @return name_available
3082  * @note: btstack_type 1
3083  */
3084 static inline uint8_t gap_event_inquiry_result_get_name_available(const uint8_t * event){
3085     return event[16];
3086 }
3087 /**
3088  * @brief Get field name_len from event GAP_EVENT_INQUIRY_RESULT
3089  * @param event packet
3090  * @return name_len
3091  * @note: btstack_type J
3092  */
3093 static inline int gap_event_inquiry_result_get_name_len(const uint8_t * event){
3094     return event[17];
3095 }
3096 /**
3097  * @brief Get field name from event GAP_EVENT_INQUIRY_RESULT
3098  * @param event packet
3099  * @return name
3100  * @note: btstack_type V
3101  */
3102 static inline const uint8_t * gap_event_inquiry_result_get_name(const uint8_t * event){
3103     return &event[18];
3104 }
3105 
3106 /**
3107  * @brief Get field status from event GAP_EVENT_INQUIRY_COMPLETE
3108  * @param event packet
3109  * @return status
3110  * @note: btstack_type 1
3111  */
3112 static inline uint8_t gap_event_inquiry_complete_get_status(const uint8_t * event){
3113     return event[2];
3114 }
3115 
3116 /**
3117  * @brief Get field status from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE
3118  * @param event packet
3119  * @return status
3120  * @note: btstack_type 1
3121  */
3122 static inline uint8_t hci_subevent_le_connection_complete_get_status(const uint8_t * event){
3123     return event[3];
3124 }
3125 /**
3126  * @brief Get field connection_handle from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE
3127  * @param event packet
3128  * @return connection_handle
3129  * @note: btstack_type H
3130  */
3131 static inline hci_con_handle_t hci_subevent_le_connection_complete_get_connection_handle(const uint8_t * event){
3132     return little_endian_read_16(event, 4);
3133 }
3134 /**
3135  * @brief Get field role from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE
3136  * @param event packet
3137  * @return role
3138  * @note: btstack_type 1
3139  */
3140 static inline uint8_t hci_subevent_le_connection_complete_get_role(const uint8_t * event){
3141     return event[6];
3142 }
3143 /**
3144  * @brief Get field peer_address_type from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE
3145  * @param event packet
3146  * @return peer_address_type
3147  * @note: btstack_type 1
3148  */
3149 static inline uint8_t hci_subevent_le_connection_complete_get_peer_address_type(const uint8_t * event){
3150     return event[7];
3151 }
3152 /**
3153  * @brief Get field peer_address from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE
3154  * @param event packet
3155  * @param Pointer to storage for peer_address
3156  * @note: btstack_type B
3157  */
3158 static inline void hci_subevent_le_connection_complete_get_peer_address(const uint8_t * event, bd_addr_t peer_address){
3159     reverse_bd_addr(&event[8], peer_address);
3160 }
3161 /**
3162  * @brief Get field conn_interval from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE
3163  * @param event packet
3164  * @return conn_interval
3165  * @note: btstack_type 2
3166  */
3167 static inline uint16_t hci_subevent_le_connection_complete_get_conn_interval(const uint8_t * event){
3168     return little_endian_read_16(event, 14);
3169 }
3170 /**
3171  * @brief Get field conn_latency from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE
3172  * @param event packet
3173  * @return conn_latency
3174  * @note: btstack_type 2
3175  */
3176 static inline uint16_t hci_subevent_le_connection_complete_get_conn_latency(const uint8_t * event){
3177     return little_endian_read_16(event, 16);
3178 }
3179 /**
3180  * @brief Get field supervision_timeout from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE
3181  * @param event packet
3182  * @return supervision_timeout
3183  * @note: btstack_type 2
3184  */
3185 static inline uint16_t hci_subevent_le_connection_complete_get_supervision_timeout(const uint8_t * event){
3186     return little_endian_read_16(event, 18);
3187 }
3188 /**
3189  * @brief Get field master_clock_accuracy from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE
3190  * @param event packet
3191  * @return master_clock_accuracy
3192  * @note: btstack_type 1
3193  */
3194 static inline uint8_t hci_subevent_le_connection_complete_get_master_clock_accuracy(const uint8_t * event){
3195     return event[20];
3196 }
3197 
3198 /**
3199  * @brief Get field status from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE
3200  * @param event packet
3201  * @return status
3202  * @note: btstack_type 1
3203  */
3204 static inline uint8_t hci_subevent_le_connection_update_complete_get_status(const uint8_t * event){
3205     return event[3];
3206 }
3207 /**
3208  * @brief Get field connection_handle from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE
3209  * @param event packet
3210  * @return connection_handle
3211  * @note: btstack_type H
3212  */
3213 static inline hci_con_handle_t hci_subevent_le_connection_update_complete_get_connection_handle(const uint8_t * event){
3214     return little_endian_read_16(event, 4);
3215 }
3216 /**
3217  * @brief Get field conn_interval from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE
3218  * @param event packet
3219  * @return conn_interval
3220  * @note: btstack_type 2
3221  */
3222 static inline uint16_t hci_subevent_le_connection_update_complete_get_conn_interval(const uint8_t * event){
3223     return little_endian_read_16(event, 6);
3224 }
3225 /**
3226  * @brief Get field conn_latency from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE
3227  * @param event packet
3228  * @return conn_latency
3229  * @note: btstack_type 2
3230  */
3231 static inline uint16_t hci_subevent_le_connection_update_complete_get_conn_latency(const uint8_t * event){
3232     return little_endian_read_16(event, 8);
3233 }
3234 /**
3235  * @brief Get field supervision_timeout from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE
3236  * @param event packet
3237  * @return supervision_timeout
3238  * @note: btstack_type 2
3239  */
3240 static inline uint16_t hci_subevent_le_connection_update_complete_get_supervision_timeout(const uint8_t * event){
3241     return little_endian_read_16(event, 10);
3242 }
3243 
3244 /**
3245  * @brief Get field connection_handle from event HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE
3246  * @param event packet
3247  * @return connection_handle
3248  * @note: btstack_type H
3249  */
3250 static inline hci_con_handle_t hci_subevent_le_read_remote_used_features_complete_get_connection_handle(const uint8_t * event){
3251     return little_endian_read_16(event, 3);
3252 }
3253 /**
3254  * @brief Get field random_number from event HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE
3255  * @param event packet
3256  * @return random_number
3257  * @note: btstack_type D
3258  */
3259 static inline const uint8_t * hci_subevent_le_read_remote_used_features_complete_get_random_number(const uint8_t * event){
3260     return (const uint8_t *) &event[5];
3261 }
3262 /**
3263  * @brief Get field encryption_diversifier from event HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE
3264  * @param event packet
3265  * @return encryption_diversifier
3266  * @note: btstack_type 2
3267  */
3268 static inline uint16_t hci_subevent_le_read_remote_used_features_complete_get_encryption_diversifier(const uint8_t * event){
3269     return little_endian_read_16(event, 13);
3270 }
3271 
3272 /**
3273  * @brief Get field connection_handle from event HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST
3274  * @param event packet
3275  * @return connection_handle
3276  * @note: btstack_type H
3277  */
3278 static inline hci_con_handle_t hci_subevent_le_long_term_key_request_get_connection_handle(const uint8_t * event){
3279     return little_endian_read_16(event, 3);
3280 }
3281 /**
3282  * @brief Get field random_number from event HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST
3283  * @param event packet
3284  * @return random_number
3285  * @note: btstack_type D
3286  */
3287 static inline const uint8_t * hci_subevent_le_long_term_key_request_get_random_number(const uint8_t * event){
3288     return (const uint8_t *) &event[5];
3289 }
3290 /**
3291  * @brief Get field encryption_diversifier from event HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST
3292  * @param event packet
3293  * @return encryption_diversifier
3294  * @note: btstack_type 2
3295  */
3296 static inline uint16_t hci_subevent_le_long_term_key_request_get_encryption_diversifier(const uint8_t * event){
3297     return little_endian_read_16(event, 13);
3298 }
3299 
3300 /**
3301  * @brief Get field connection_handle from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST
3302  * @param event packet
3303  * @return connection_handle
3304  * @note: btstack_type H
3305  */
3306 static inline hci_con_handle_t hci_subevent_le_remote_connection_parameter_request_get_connection_handle(const uint8_t * event){
3307     return little_endian_read_16(event, 3);
3308 }
3309 /**
3310  * @brief Get field interval_min from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST
3311  * @param event packet
3312  * @return interval_min
3313  * @note: btstack_type 2
3314  */
3315 static inline uint16_t hci_subevent_le_remote_connection_parameter_request_get_interval_min(const uint8_t * event){
3316     return little_endian_read_16(event, 5);
3317 }
3318 /**
3319  * @brief Get field interval_max from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST
3320  * @param event packet
3321  * @return interval_max
3322  * @note: btstack_type 2
3323  */
3324 static inline uint16_t hci_subevent_le_remote_connection_parameter_request_get_interval_max(const uint8_t * event){
3325     return little_endian_read_16(event, 7);
3326 }
3327 /**
3328  * @brief Get field latency from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST
3329  * @param event packet
3330  * @return latency
3331  * @note: btstack_type 2
3332  */
3333 static inline uint16_t hci_subevent_le_remote_connection_parameter_request_get_latency(const uint8_t * event){
3334     return little_endian_read_16(event, 9);
3335 }
3336 /**
3337  * @brief Get field timeout from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST
3338  * @param event packet
3339  * @return timeout
3340  * @note: btstack_type 2
3341  */
3342 static inline uint16_t hci_subevent_le_remote_connection_parameter_request_get_timeout(const uint8_t * event){
3343     return little_endian_read_16(event, 11);
3344 }
3345 
3346 /**
3347  * @brief Get field connection_handle from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE
3348  * @param event packet
3349  * @return connection_handle
3350  * @note: btstack_type H
3351  */
3352 static inline hci_con_handle_t hci_subevent_le_data_length_change_get_connection_handle(const uint8_t * event){
3353     return little_endian_read_16(event, 3);
3354 }
3355 /**
3356  * @brief Get field max_tx_octets from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE
3357  * @param event packet
3358  * @return max_tx_octets
3359  * @note: btstack_type 2
3360  */
3361 static inline uint16_t hci_subevent_le_data_length_change_get_max_tx_octets(const uint8_t * event){
3362     return little_endian_read_16(event, 5);
3363 }
3364 /**
3365  * @brief Get field max_tx_time from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE
3366  * @param event packet
3367  * @return max_tx_time
3368  * @note: btstack_type 2
3369  */
3370 static inline uint16_t hci_subevent_le_data_length_change_get_max_tx_time(const uint8_t * event){
3371     return little_endian_read_16(event, 7);
3372 }
3373 /**
3374  * @brief Get field max_rx_octets from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE
3375  * @param event packet
3376  * @return max_rx_octets
3377  * @note: btstack_type 2
3378  */
3379 static inline uint16_t hci_subevent_le_data_length_change_get_max_rx_octets(const uint8_t * event){
3380     return little_endian_read_16(event, 9);
3381 }
3382 /**
3383  * @brief Get field max_rx_time from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE
3384  * @param event packet
3385  * @return max_rx_time
3386  * @note: btstack_type 2
3387  */
3388 static inline uint16_t hci_subevent_le_data_length_change_get_max_rx_time(const uint8_t * event){
3389     return little_endian_read_16(event, 11);
3390 }
3391 
3392 /**
3393  * @brief Get field status from event HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE
3394  * @param event packet
3395  * @return status
3396  * @note: btstack_type 1
3397  */
3398 static inline uint8_t hci_subevent_le_read_local_p256_public_key_complete_get_status(const uint8_t * event){
3399     return event[3];
3400 }
3401 /**
3402  * @brief Get field dhkey_x from event HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE
3403  * @param event packet
3404  * @param Pointer to storage for dhkey_x
3405  * @note: btstack_type Q
3406  */
3407 static inline void hci_subevent_le_read_local_p256_public_key_complete_get_dhkey_x(const uint8_t * event, uint8_t * dhkey_x){
3408     reverse_bytes(&event[4], dhkey_x, 32);
3409 }
3410 /**
3411  * @brief Get field dhkey_y from event HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE
3412  * @param event packet
3413  * @param Pointer to storage for dhkey_y
3414  * @note: btstack_type Q
3415  */
3416 static inline void hci_subevent_le_read_local_p256_public_key_complete_get_dhkey_y(const uint8_t * event, uint8_t * dhkey_y){
3417     reverse_bytes(&event[36], dhkey_y, 32);
3418 }
3419 
3420 /**
3421  * @brief Get field status from event HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE
3422  * @param event packet
3423  * @return status
3424  * @note: btstack_type 1
3425  */
3426 static inline uint8_t hci_subevent_le_generate_dhkey_complete_get_status(const uint8_t * event){
3427     return event[3];
3428 }
3429 /**
3430  * @brief Get field dhkey from event HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE
3431  * @param event packet
3432  * @param Pointer to storage for dhkey
3433  * @note: btstack_type Q
3434  */
3435 static inline void hci_subevent_le_generate_dhkey_complete_get_dhkey(const uint8_t * event, uint8_t * dhkey){
3436     reverse_bytes(&event[4], dhkey, 32);
3437 }
3438 
3439 /**
3440  * @brief Get field status from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE
3441  * @param event packet
3442  * @return status
3443  * @note: btstack_type 1
3444  */
3445 static inline uint8_t hci_subevent_le_enhanced_connection_complete_get_status(const uint8_t * event){
3446     return event[3];
3447 }
3448 /**
3449  * @brief Get field connection_handle from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE
3450  * @param event packet
3451  * @return connection_handle
3452  * @note: btstack_type H
3453  */
3454 static inline hci_con_handle_t hci_subevent_le_enhanced_connection_complete_get_connection_handle(const uint8_t * event){
3455     return little_endian_read_16(event, 4);
3456 }
3457 /**
3458  * @brief Get field role from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE
3459  * @param event packet
3460  * @return role
3461  * @note: btstack_type 1
3462  */
3463 static inline uint8_t hci_subevent_le_enhanced_connection_complete_get_role(const uint8_t * event){
3464     return event[6];
3465 }
3466 /**
3467  * @brief Get field peer_address_type from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE
3468  * @param event packet
3469  * @return peer_address_type
3470  * @note: btstack_type 1
3471  */
3472 static inline uint8_t hci_subevent_le_enhanced_connection_complete_get_peer_address_type(const uint8_t * event){
3473     return event[7];
3474 }
3475 /**
3476  * @brief Get field perr_addresss from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE
3477  * @param event packet
3478  * @param Pointer to storage for perr_addresss
3479  * @note: btstack_type B
3480  */
3481 static inline void hci_subevent_le_enhanced_connection_complete_get_perr_addresss(const uint8_t * event, bd_addr_t perr_addresss){
3482     reverse_bd_addr(&event[8], perr_addresss);
3483 }
3484 /**
3485  * @brief Get field local_resolvable_private_addres from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE
3486  * @param event packet
3487  * @param Pointer to storage for local_resolvable_private_addres
3488  * @note: btstack_type B
3489  */
3490 static inline void hci_subevent_le_enhanced_connection_complete_get_local_resolvable_private_addres(const uint8_t * event, bd_addr_t local_resolvable_private_addres){
3491     reverse_bd_addr(&event[14], local_resolvable_private_addres);
3492 }
3493 /**
3494  * @brief Get field peer_resolvable_private_addres from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE
3495  * @param event packet
3496  * @param Pointer to storage for peer_resolvable_private_addres
3497  * @note: btstack_type B
3498  */
3499 static inline void hci_subevent_le_enhanced_connection_complete_get_peer_resolvable_private_addres(const uint8_t * event, bd_addr_t peer_resolvable_private_addres){
3500     reverse_bd_addr(&event[20], peer_resolvable_private_addres);
3501 }
3502 /**
3503  * @brief Get field conn_interval from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE
3504  * @param event packet
3505  * @return conn_interval
3506  * @note: btstack_type 2
3507  */
3508 static inline uint16_t hci_subevent_le_enhanced_connection_complete_get_conn_interval(const uint8_t * event){
3509     return little_endian_read_16(event, 26);
3510 }
3511 /**
3512  * @brief Get field conn_latency from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE
3513  * @param event packet
3514  * @return conn_latency
3515  * @note: btstack_type 2
3516  */
3517 static inline uint16_t hci_subevent_le_enhanced_connection_complete_get_conn_latency(const uint8_t * event){
3518     return little_endian_read_16(event, 28);
3519 }
3520 /**
3521  * @brief Get field supervision_timeout from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE
3522  * @param event packet
3523  * @return supervision_timeout
3524  * @note: btstack_type 2
3525  */
3526 static inline uint16_t hci_subevent_le_enhanced_connection_complete_get_supervision_timeout(const uint8_t * event){
3527     return little_endian_read_16(event, 30);
3528 }
3529 /**
3530  * @brief Get field master_clock_accuracy from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE
3531  * @param event packet
3532  * @return master_clock_accuracy
3533  * @note: btstack_type 1
3534  */
3535 static inline uint8_t hci_subevent_le_enhanced_connection_complete_get_master_clock_accuracy(const uint8_t * event){
3536     return event[32];
3537 }
3538 
3539 /**
3540  * @brief Get field status from event HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE
3541  * @param event packet
3542  * @return status
3543  * @note: btstack_type 1
3544  */
3545 static inline uint8_t hsp_subevent_rfcomm_connection_complete_get_status(const uint8_t * event){
3546     return event[3];
3547 }
3548 
3549 /**
3550  * @brief Get field status from event HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE
3551  * @param event packet
3552  * @return status
3553  * @note: btstack_type 1
3554  */
3555 static inline uint8_t hsp_subevent_rfcomm_disconnection_complete_get_status(const uint8_t * event){
3556     return event[3];
3557 }
3558 
3559 /**
3560  * @brief Get field status from event HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE
3561  * @param event packet
3562  * @return status
3563  * @note: btstack_type 1
3564  */
3565 static inline uint8_t hsp_subevent_audio_connection_complete_get_status(const uint8_t * event){
3566     return event[3];
3567 }
3568 /**
3569  * @brief Get field handle from event HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE
3570  * @param event packet
3571  * @return handle
3572  * @note: btstack_type H
3573  */
3574 static inline hci_con_handle_t hsp_subevent_audio_connection_complete_get_handle(const uint8_t * event){
3575     return little_endian_read_16(event, 4);
3576 }
3577 
3578 /**
3579  * @brief Get field status from event HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE
3580  * @param event packet
3581  * @return status
3582  * @note: btstack_type 1
3583  */
3584 static inline uint8_t hsp_subevent_audio_disconnection_complete_get_status(const uint8_t * event){
3585     return event[3];
3586 }
3587 
3588 
3589 /**
3590  * @brief Get field gain from event HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED
3591  * @param event packet
3592  * @return gain
3593  * @note: btstack_type 1
3594  */
3595 static inline uint8_t hsp_subevent_microphone_gain_changed_get_gain(const uint8_t * event){
3596     return event[3];
3597 }
3598 
3599 /**
3600  * @brief Get field gain from event HSP_SUBEVENT_SPEAKER_GAIN_CHANGED
3601  * @param event packet
3602  * @return gain
3603  * @note: btstack_type 1
3604  */
3605 static inline uint8_t hsp_subevent_speaker_gain_changed_get_gain(const uint8_t * event){
3606     return event[3];
3607 }
3608 
3609 /**
3610  * @brief Get field value_length from event HSP_SUBEVENT_HS_COMMAND
3611  * @param event packet
3612  * @return value_length
3613  * @note: btstack_type J
3614  */
3615 static inline int hsp_subevent_hs_command_get_value_length(const uint8_t * event){
3616     return event[3];
3617 }
3618 /**
3619  * @brief Get field value from event HSP_SUBEVENT_HS_COMMAND
3620  * @param event packet
3621  * @return value
3622  * @note: btstack_type V
3623  */
3624 static inline const uint8_t * hsp_subevent_hs_command_get_value(const uint8_t * event){
3625     return &event[4];
3626 }
3627 
3628 /**
3629  * @brief Get field value_length from event HSP_SUBEVENT_AG_INDICATION
3630  * @param event packet
3631  * @return value_length
3632  * @note: btstack_type J
3633  */
3634 static inline int hsp_subevent_ag_indication_get_value_length(const uint8_t * event){
3635     return event[3];
3636 }
3637 /**
3638  * @brief Get field value from event HSP_SUBEVENT_AG_INDICATION
3639  * @param event packet
3640  * @return value
3641  * @note: btstack_type V
3642  */
3643 static inline const uint8_t * hsp_subevent_ag_indication_get_value(const uint8_t * event){
3644     return &event[4];
3645 }
3646 
3647 /**
3648  * @brief Get field status from event HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED
3649  * @param event packet
3650  * @return status
3651  * @note: btstack_type 1
3652  */
3653 static inline uint8_t hfp_subevent_service_level_connection_established_get_status(const uint8_t * event){
3654     return event[3];
3655 }
3656 /**
3657  * @brief Get field con_handle from event HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED
3658  * @param event packet
3659  * @return con_handle
3660  * @note: btstack_type H
3661  */
3662 static inline hci_con_handle_t hfp_subevent_service_level_connection_established_get_con_handle(const uint8_t * event){
3663     return little_endian_read_16(event, 4);
3664 }
3665 /**
3666  * @brief Get field bd_addr from event HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED
3667  * @param event packet
3668  * @param Pointer to storage for bd_addr
3669  * @note: btstack_type B
3670  */
3671 static inline void hfp_subevent_service_level_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
3672     reverse_bd_addr(&event[6], bd_addr);
3673 }
3674 
3675 
3676 /**
3677  * @brief Get field status from event HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED
3678  * @param event packet
3679  * @return status
3680  * @note: btstack_type 1
3681  */
3682 static inline uint8_t hfp_subevent_audio_connection_established_get_status(const uint8_t * event){
3683     return event[3];
3684 }
3685 /**
3686  * @brief Get field handle from event HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED
3687  * @param event packet
3688  * @return handle
3689  * @note: btstack_type H
3690  */
3691 static inline hci_con_handle_t hfp_subevent_audio_connection_established_get_handle(const uint8_t * event){
3692     return little_endian_read_16(event, 4);
3693 }
3694 /**
3695  * @brief Get field bd_addr from event HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED
3696  * @param event packet
3697  * @param Pointer to storage for bd_addr
3698  * @note: btstack_type B
3699  */
3700 static inline void hfp_subevent_audio_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
3701     reverse_bd_addr(&event[6], bd_addr);
3702 }
3703 /**
3704  * @brief Get field negotiated_codec from event HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED
3705  * @param event packet
3706  * @return negotiated_codec
3707  * @note: btstack_type 1
3708  */
3709 static inline uint8_t hfp_subevent_audio_connection_established_get_negotiated_codec(const uint8_t * event){
3710     return event[12];
3711 }
3712 
3713 
3714 /**
3715  * @brief Get field status from event HFP_SUBEVENT_COMPLETE
3716  * @param event packet
3717  * @return status
3718  * @note: btstack_type 1
3719  */
3720 static inline uint8_t hfp_subevent_complete_get_status(const uint8_t * event){
3721     return event[3];
3722 }
3723 
3724 /**
3725  * @brief Get field indicator_index from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED
3726  * @param event packet
3727  * @return indicator_index
3728  * @note: btstack_type 1
3729  */
3730 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_index(const uint8_t * event){
3731     return event[3];
3732 }
3733 /**
3734  * @brief Get field indicator_status from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED
3735  * @param event packet
3736  * @return indicator_status
3737  * @note: btstack_type 1
3738  */
3739 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_status(const uint8_t * event){
3740     return event[4];
3741 }
3742 /**
3743  * @brief Get field indicator_name from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED
3744  * @param event packet
3745  * @return indicator_name
3746  * @note: btstack_type T
3747  */
3748 static inline const char * hfp_subevent_ag_indicator_status_changed_get_indicator_name(const uint8_t * event){
3749     return (const char *) &event[5];
3750 }
3751 
3752 /**
3753  * @brief Get field network_operator_mode from event HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED
3754  * @param event packet
3755  * @return network_operator_mode
3756  * @note: btstack_type 1
3757  */
3758 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_mode(const uint8_t * event){
3759     return event[3];
3760 }
3761 /**
3762  * @brief Get field network_operator_format from event HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED
3763  * @param event packet
3764  * @return network_operator_format
3765  * @note: btstack_type 1
3766  */
3767 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_format(const uint8_t * event){
3768     return event[4];
3769 }
3770 /**
3771  * @brief Get field network_operator_name from event HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED
3772  * @param event packet
3773  * @return network_operator_name
3774  * @note: btstack_type T
3775  */
3776 static inline const char * hfp_subevent_network_operator_changed_get_network_operator_name(const uint8_t * event){
3777     return (const char *) &event[5];
3778 }
3779 
3780 /**
3781  * @brief Get field error from event HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR
3782  * @param event packet
3783  * @return error
3784  * @note: btstack_type 1
3785  */
3786 static inline uint8_t hfp_subevent_extended_audio_gateway_error_get_error(const uint8_t * event){
3787     return event[3];
3788 }
3789 
3790 
3791 
3792 
3793 /**
3794  * @brief Get field number from event HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER
3795  * @param event packet
3796  * @return number
3797  * @note: btstack_type T
3798  */
3799 static inline const char * hfp_subevent_place_call_with_number_get_number(const uint8_t * event){
3800     return (const char *) &event[3];
3801 }
3802 
3803 
3804 /**
3805  * @brief Get field number from event HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG
3806  * @param event packet
3807  * @return number
3808  * @note: btstack_type T
3809  */
3810 static inline const char * hfp_subevent_number_for_voice_tag_get_number(const uint8_t * event){
3811     return (const char *) &event[3];
3812 }
3813 
3814 /**
3815  * @brief Get field dtmf from event HFP_SUBEVENT_TRANSMIT_DTMF_CODES
3816  * @param event packet
3817  * @return dtmf
3818  * @note: btstack_type T
3819  */
3820 static inline const char * hfp_subevent_transmit_dtmf_codes_get_dtmf(const uint8_t * event){
3821     return (const char *) &event[3];
3822 }
3823 
3824 
3825 
3826 
3827 /**
3828  * @brief Get field status from event HFP_SUBEVENT_SPEAKER_VOLUME
3829  * @param event packet
3830  * @return status
3831  * @note: btstack_type 1
3832  */
3833 static inline uint8_t hfp_subevent_speaker_volume_get_status(const uint8_t * event){
3834     return event[3];
3835 }
3836 /**
3837  * @brief Get field gain from event HFP_SUBEVENT_SPEAKER_VOLUME
3838  * @param event packet
3839  * @return gain
3840  * @note: btstack_type 1
3841  */
3842 static inline uint8_t hfp_subevent_speaker_volume_get_gain(const uint8_t * event){
3843     return event[4];
3844 }
3845 
3846 /**
3847  * @brief Get field status from event HFP_SUBEVENT_MICROPHONE_VOLUME
3848  * @param event packet
3849  * @return status
3850  * @note: btstack_type 1
3851  */
3852 static inline uint8_t hfp_subevent_microphone_volume_get_status(const uint8_t * event){
3853     return event[3];
3854 }
3855 /**
3856  * @brief Get field gain from event HFP_SUBEVENT_MICROPHONE_VOLUME
3857  * @param event packet
3858  * @return gain
3859  * @note: btstack_type 1
3860  */
3861 static inline uint8_t hfp_subevent_microphone_volume_get_gain(const uint8_t * event){
3862     return event[4];
3863 }
3864 
3865 /**
3866  * @brief Get field type from event HFP_SUBEVENT_CALL_WAITING_NOTIFICATION
3867  * @param event packet
3868  * @return type
3869  * @note: btstack_type 1
3870  */
3871 static inline uint8_t hfp_subevent_call_waiting_notification_get_type(const uint8_t * event){
3872     return event[3];
3873 }
3874 /**
3875  * @brief Get field number from event HFP_SUBEVENT_CALL_WAITING_NOTIFICATION
3876  * @param event packet
3877  * @return number
3878  * @note: btstack_type T
3879  */
3880 static inline const char * hfp_subevent_call_waiting_notification_get_number(const uint8_t * event){
3881     return (const char *) &event[4];
3882 }
3883 
3884 /**
3885  * @brief Get field type from event HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION
3886  * @param event packet
3887  * @return type
3888  * @note: btstack_type 1
3889  */
3890 static inline uint8_t hfp_subevent_calling_line_identification_notification_get_type(const uint8_t * event){
3891     return event[3];
3892 }
3893 /**
3894  * @brief Get field number from event HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION
3895  * @param event packet
3896  * @return number
3897  * @note: btstack_type T
3898  */
3899 static inline const char * hfp_subevent_calling_line_identification_notification_get_number(const uint8_t * event){
3900     return (const char *) &event[4];
3901 }
3902 
3903 /**
3904  * @brief Get field clcc_idx from event HFP_SUBEVENT_ENHANCED_CALL_STATUS
3905  * @param event packet
3906  * @return clcc_idx
3907  * @note: btstack_type 1
3908  */
3909 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_idx(const uint8_t * event){
3910     return event[3];
3911 }
3912 /**
3913  * @brief Get field clcc_dir from event HFP_SUBEVENT_ENHANCED_CALL_STATUS
3914  * @param event packet
3915  * @return clcc_dir
3916  * @note: btstack_type 1
3917  */
3918 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_dir(const uint8_t * event){
3919     return event[4];
3920 }
3921 /**
3922  * @brief Get field clcc_status from event HFP_SUBEVENT_ENHANCED_CALL_STATUS
3923  * @param event packet
3924  * @return clcc_status
3925  * @note: btstack_type 1
3926  */
3927 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_status(const uint8_t * event){
3928     return event[5];
3929 }
3930 /**
3931  * @brief Get field clcc_mpty from event HFP_SUBEVENT_ENHANCED_CALL_STATUS
3932  * @param event packet
3933  * @return clcc_mpty
3934  * @note: btstack_type 1
3935  */
3936 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_mpty(const uint8_t * event){
3937     return event[6];
3938 }
3939 /**
3940  * @brief Get field bnip_type from event HFP_SUBEVENT_ENHANCED_CALL_STATUS
3941  * @param event packet
3942  * @return bnip_type
3943  * @note: btstack_type 1
3944  */
3945 static inline uint8_t hfp_subevent_enhanced_call_status_get_bnip_type(const uint8_t * event){
3946     return event[7];
3947 }
3948 /**
3949  * @brief Get field bnip_number from event HFP_SUBEVENT_ENHANCED_CALL_STATUS
3950  * @param event packet
3951  * @return bnip_number
3952  * @note: btstack_type T
3953  */
3954 static inline const char * hfp_subevent_enhanced_call_status_get_bnip_number(const uint8_t * event){
3955     return (const char *) &event[8];
3956 }
3957 
3958 /**
3959  * @brief Get field status from event HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION
3960  * @param event packet
3961  * @return status
3962  * @note: btstack_type 1
3963  */
3964 static inline uint8_t hfp_subevent_subscriber_number_information_get_status(const uint8_t * event){
3965     return event[3];
3966 }
3967 /**
3968  * @brief Get field bnip_type from event HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION
3969  * @param event packet
3970  * @return bnip_type
3971  * @note: btstack_type 1
3972  */
3973 static inline uint8_t hfp_subevent_subscriber_number_information_get_bnip_type(const uint8_t * event){
3974     return event[4];
3975 }
3976 /**
3977  * @brief Get field bnip_number from event HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION
3978  * @param event packet
3979  * @return bnip_number
3980  * @note: btstack_type T
3981  */
3982 static inline const char * hfp_subevent_subscriber_number_information_get_bnip_number(const uint8_t * event){
3983     return (const char *) &event[5];
3984 }
3985 
3986 /**
3987  * @brief Get field value from event HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS
3988  * @param event packet
3989  * @return value
3990  * @note: btstack_type T
3991  */
3992 static inline const char * hfp_subevent_response_and_hold_status_get_value(const uint8_t * event){
3993     return (const char *) &event[3];
3994 }
3995 
3996 #ifdef ENABLE_BLE
3997 /**
3998  * @brief Get field handle from event ANCS_SUBEVENT_CLIENT_CONNECTED
3999  * @param event packet
4000  * @return handle
4001  * @note: btstack_type H
4002  */
4003 static inline hci_con_handle_t ancs_subevent_client_connected_get_handle(const uint8_t * event){
4004     return little_endian_read_16(event, 3);
4005 }
4006 #endif
4007 
4008 #ifdef ENABLE_BLE
4009 /**
4010  * @brief Get field handle from event ANCS_SUBEVENT_CLIENT_NOTIFICATION
4011  * @param event packet
4012  * @return handle
4013  * @note: btstack_type H
4014  */
4015 static inline hci_con_handle_t ancs_subevent_client_notification_get_handle(const uint8_t * event){
4016     return little_endian_read_16(event, 3);
4017 }
4018 /**
4019  * @brief Get field attribute_id from event ANCS_SUBEVENT_CLIENT_NOTIFICATION
4020  * @param event packet
4021  * @return attribute_id
4022  * @note: btstack_type 2
4023  */
4024 static inline uint16_t ancs_subevent_client_notification_get_attribute_id(const uint8_t * event){
4025     return little_endian_read_16(event, 5);
4026 }
4027 /**
4028  * @brief Get field text from event ANCS_SUBEVENT_CLIENT_NOTIFICATION
4029  * @param event packet
4030  * @return text
4031  * @note: btstack_type T
4032  */
4033 static inline const char * ancs_subevent_client_notification_get_text(const uint8_t * event){
4034     return (const char *) &event[7];
4035 }
4036 #endif
4037 
4038 #ifdef ENABLE_BLE
4039 /**
4040  * @brief Get field handle from event ANCS_SUBEVENT_CLIENT_DISCONNECTED
4041  * @param event packet
4042  * @return handle
4043  * @note: btstack_type H
4044  */
4045 static inline hci_con_handle_t ancs_subevent_client_disconnected_get_handle(const uint8_t * event){
4046     return little_endian_read_16(event, 3);
4047 }
4048 #endif
4049 
4050 /**
4051  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_ACCEPT
4052  * @param event packet
4053  * @return avdtp_cid
4054  * @note: btstack_type 2
4055  */
4056 static inline uint16_t avdtp_subevent_signaling_accept_get_avdtp_cid(const uint8_t * event){
4057     return little_endian_read_16(event, 3);
4058 }
4059 /**
4060  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_ACCEPT
4061  * @param event packet
4062  * @return local_seid
4063  * @note: btstack_type 1
4064  */
4065 static inline uint8_t avdtp_subevent_signaling_accept_get_local_seid(const uint8_t * event){
4066     return event[5];
4067 }
4068 /**
4069  * @brief Get field signal_identifier from event AVDTP_SUBEVENT_SIGNALING_ACCEPT
4070  * @param event packet
4071  * @return signal_identifier
4072  * @note: btstack_type 1
4073  */
4074 static inline uint8_t avdtp_subevent_signaling_accept_get_signal_identifier(const uint8_t * event){
4075     return event[6];
4076 }
4077 
4078 /**
4079  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_REJECT
4080  * @param event packet
4081  * @return avdtp_cid
4082  * @note: btstack_type 2
4083  */
4084 static inline uint16_t avdtp_subevent_signaling_reject_get_avdtp_cid(const uint8_t * event){
4085     return little_endian_read_16(event, 3);
4086 }
4087 /**
4088  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_REJECT
4089  * @param event packet
4090  * @return local_seid
4091  * @note: btstack_type 1
4092  */
4093 static inline uint8_t avdtp_subevent_signaling_reject_get_local_seid(const uint8_t * event){
4094     return event[5];
4095 }
4096 /**
4097  * @brief Get field signal_identifier from event AVDTP_SUBEVENT_SIGNALING_REJECT
4098  * @param event packet
4099  * @return signal_identifier
4100  * @note: btstack_type 1
4101  */
4102 static inline uint8_t avdtp_subevent_signaling_reject_get_signal_identifier(const uint8_t * event){
4103     return event[6];
4104 }
4105 
4106 /**
4107  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT
4108  * @param event packet
4109  * @return avdtp_cid
4110  * @note: btstack_type 2
4111  */
4112 static inline uint16_t avdtp_subevent_signaling_general_reject_get_avdtp_cid(const uint8_t * event){
4113     return little_endian_read_16(event, 3);
4114 }
4115 /**
4116  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT
4117  * @param event packet
4118  * @return local_seid
4119  * @note: btstack_type 1
4120  */
4121 static inline uint8_t avdtp_subevent_signaling_general_reject_get_local_seid(const uint8_t * event){
4122     return event[5];
4123 }
4124 /**
4125  * @brief Get field signal_identifier from event AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT
4126  * @param event packet
4127  * @return signal_identifier
4128  * @note: btstack_type 1
4129  */
4130 static inline uint8_t avdtp_subevent_signaling_general_reject_get_signal_identifier(const uint8_t * event){
4131     return event[6];
4132 }
4133 
4134 /**
4135  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED
4136  * @param event packet
4137  * @return avdtp_cid
4138  * @note: btstack_type 2
4139  */
4140 static inline uint16_t avdtp_subevent_signaling_connection_established_get_avdtp_cid(const uint8_t * event){
4141     return little_endian_read_16(event, 3);
4142 }
4143 /**
4144  * @brief Get field bd_addr from event AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED
4145  * @param event packet
4146  * @param Pointer to storage for bd_addr
4147  * @note: btstack_type B
4148  */
4149 static inline void avdtp_subevent_signaling_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
4150     reverse_bd_addr(&event[5], bd_addr);
4151 }
4152 /**
4153  * @brief Get field status from event AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED
4154  * @param event packet
4155  * @return status
4156  * @note: btstack_type 1
4157  */
4158 static inline uint8_t avdtp_subevent_signaling_connection_established_get_status(const uint8_t * event){
4159     return event[11];
4160 }
4161 
4162 /**
4163  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED
4164  * @param event packet
4165  * @return avdtp_cid
4166  * @note: btstack_type 2
4167  */
4168 static inline uint16_t avdtp_subevent_signaling_connection_released_get_avdtp_cid(const uint8_t * event){
4169     return little_endian_read_16(event, 3);
4170 }
4171 
4172 /**
4173  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND
4174  * @param event packet
4175  * @return avdtp_cid
4176  * @note: btstack_type 2
4177  */
4178 static inline uint16_t avdtp_subevent_signaling_sep_found_get_avdtp_cid(const uint8_t * event){
4179     return little_endian_read_16(event, 3);
4180 }
4181 /**
4182  * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND
4183  * @param event packet
4184  * @return remote_seid
4185  * @note: btstack_type 1
4186  */
4187 static inline uint8_t avdtp_subevent_signaling_sep_found_get_remote_seid(const uint8_t * event){
4188     return event[5];
4189 }
4190 /**
4191  * @brief Get field in_use from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND
4192  * @param event packet
4193  * @return in_use
4194  * @note: btstack_type 1
4195  */
4196 static inline uint8_t avdtp_subevent_signaling_sep_found_get_in_use(const uint8_t * event){
4197     return event[6];
4198 }
4199 /**
4200  * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND
4201  * @param event packet
4202  * @return media_type
4203  * @note: btstack_type 1
4204  */
4205 static inline uint8_t avdtp_subevent_signaling_sep_found_get_media_type(const uint8_t * event){
4206     return event[7];
4207 }
4208 /**
4209  * @brief Get field sep_type from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND
4210  * @param event packet
4211  * @return sep_type
4212  * @note: btstack_type 1
4213  */
4214 static inline uint8_t avdtp_subevent_signaling_sep_found_get_sep_type(const uint8_t * event){
4215     return event[8];
4216 }
4217 
4218 /**
4219  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY
4220  * @param event packet
4221  * @return avdtp_cid
4222  * @note: btstack_type 2
4223  */
4224 static inline uint16_t avdtp_subevent_signaling_media_codec_sbc_capability_get_avdtp_cid(const uint8_t * event){
4225     return little_endian_read_16(event, 3);
4226 }
4227 /**
4228  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY
4229  * @param event packet
4230  * @return local_seid
4231  * @note: btstack_type 1
4232  */
4233 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_local_seid(const uint8_t * event){
4234     return event[5];
4235 }
4236 /**
4237  * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY
4238  * @param event packet
4239  * @return remote_seid
4240  * @note: btstack_type 1
4241  */
4242 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_remote_seid(const uint8_t * event){
4243     return event[6];
4244 }
4245 /**
4246  * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY
4247  * @param event packet
4248  * @return media_type
4249  * @note: btstack_type 1
4250  */
4251 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_media_type(const uint8_t * event){
4252     return event[7];
4253 }
4254 /**
4255  * @brief Get field sampling_frequency_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY
4256  * @param event packet
4257  * @return sampling_frequency_bitmap
4258  * @note: btstack_type 1
4259  */
4260 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_sampling_frequency_bitmap(const uint8_t * event){
4261     return event[8];
4262 }
4263 /**
4264  * @brief Get field channel_mode_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY
4265  * @param event packet
4266  * @return channel_mode_bitmap
4267  * @note: btstack_type 1
4268  */
4269 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_channel_mode_bitmap(const uint8_t * event){
4270     return event[9];
4271 }
4272 /**
4273  * @brief Get field block_length_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY
4274  * @param event packet
4275  * @return block_length_bitmap
4276  * @note: btstack_type 1
4277  */
4278 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_block_length_bitmap(const uint8_t * event){
4279     return event[10];
4280 }
4281 /**
4282  * @brief Get field subbands_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY
4283  * @param event packet
4284  * @return subbands_bitmap
4285  * @note: btstack_type 1
4286  */
4287 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_subbands_bitmap(const uint8_t * event){
4288     return event[11];
4289 }
4290 /**
4291  * @brief Get field allocation_method_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY
4292  * @param event packet
4293  * @return allocation_method_bitmap
4294  * @note: btstack_type 1
4295  */
4296 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_allocation_method_bitmap(const uint8_t * event){
4297     return event[12];
4298 }
4299 /**
4300  * @brief Get field min_bitpool_value from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY
4301  * @param event packet
4302  * @return min_bitpool_value
4303  * @note: btstack_type 1
4304  */
4305 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_min_bitpool_value(const uint8_t * event){
4306     return event[13];
4307 }
4308 /**
4309  * @brief Get field max_bitpool_value from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY
4310  * @param event packet
4311  * @return max_bitpool_value
4312  * @note: btstack_type 1
4313  */
4314 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_max_bitpool_value(const uint8_t * event){
4315     return event[14];
4316 }
4317 
4318 /**
4319  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY
4320  * @param event packet
4321  * @return avdtp_cid
4322  * @note: btstack_type 2
4323  */
4324 static inline uint16_t avdtp_subevent_signaling_media_codec_other_capability_get_avdtp_cid(const uint8_t * event){
4325     return little_endian_read_16(event, 3);
4326 }
4327 /**
4328  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY
4329  * @param event packet
4330  * @return local_seid
4331  * @note: btstack_type 1
4332  */
4333 static inline uint8_t avdtp_subevent_signaling_media_codec_other_capability_get_local_seid(const uint8_t * event){
4334     return event[5];
4335 }
4336 /**
4337  * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY
4338  * @param event packet
4339  * @return remote_seid
4340  * @note: btstack_type 1
4341  */
4342 static inline uint8_t avdtp_subevent_signaling_media_codec_other_capability_get_remote_seid(const uint8_t * event){
4343     return event[6];
4344 }
4345 /**
4346  * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY
4347  * @param event packet
4348  * @return media_type
4349  * @note: btstack_type 1
4350  */
4351 static inline uint8_t avdtp_subevent_signaling_media_codec_other_capability_get_media_type(const uint8_t * event){
4352     return event[7];
4353 }
4354 /**
4355  * @brief Get field media_codec_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY
4356  * @param event packet
4357  * @return media_codec_type
4358  * @note: btstack_type 2
4359  */
4360 static inline uint16_t avdtp_subevent_signaling_media_codec_other_capability_get_media_codec_type(const uint8_t * event){
4361     return little_endian_read_16(event, 8);
4362 }
4363 /**
4364  * @brief Get field media_codec_information_len from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY
4365  * @param event packet
4366  * @return media_codec_information_len
4367  * @note: btstack_type L
4368  */
4369 static inline int avdtp_subevent_signaling_media_codec_other_capability_get_media_codec_information_len(const uint8_t * event){
4370     return little_endian_read_16(event, 10);
4371 }
4372 /**
4373  * @brief Get field media_codec_information from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY
4374  * @param event packet
4375  * @return media_codec_information
4376  * @note: btstack_type V
4377  */
4378 static inline const uint8_t * avdtp_subevent_signaling_media_codec_other_capability_get_media_codec_information(const uint8_t * event){
4379     return &event[12];
4380 }
4381 
4382 /**
4383  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY
4384  * @param event packet
4385  * @return avdtp_cid
4386  * @note: btstack_type 2
4387  */
4388 static inline uint16_t avdtp_subevent_signaling_media_transport_capability_get_avdtp_cid(const uint8_t * event){
4389     return little_endian_read_16(event, 3);
4390 }
4391 /**
4392  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY
4393  * @param event packet
4394  * @return local_seid
4395  * @note: btstack_type 1
4396  */
4397 static inline uint8_t avdtp_subevent_signaling_media_transport_capability_get_local_seid(const uint8_t * event){
4398     return event[5];
4399 }
4400 /**
4401  * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY
4402  * @param event packet
4403  * @return remote_seid
4404  * @note: btstack_type 1
4405  */
4406 static inline uint8_t avdtp_subevent_signaling_media_transport_capability_get_remote_seid(const uint8_t * event){
4407     return event[6];
4408 }
4409 
4410 /**
4411  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY
4412  * @param event packet
4413  * @return avdtp_cid
4414  * @note: btstack_type 2
4415  */
4416 static inline uint16_t avdtp_subevent_signaling_reporting_capability_get_avdtp_cid(const uint8_t * event){
4417     return little_endian_read_16(event, 3);
4418 }
4419 /**
4420  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY
4421  * @param event packet
4422  * @return local_seid
4423  * @note: btstack_type 1
4424  */
4425 static inline uint8_t avdtp_subevent_signaling_reporting_capability_get_local_seid(const uint8_t * event){
4426     return event[5];
4427 }
4428 /**
4429  * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY
4430  * @param event packet
4431  * @return remote_seid
4432  * @note: btstack_type 1
4433  */
4434 static inline uint8_t avdtp_subevent_signaling_reporting_capability_get_remote_seid(const uint8_t * event){
4435     return event[6];
4436 }
4437 
4438 /**
4439  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY
4440  * @param event packet
4441  * @return avdtp_cid
4442  * @note: btstack_type 2
4443  */
4444 static inline uint16_t avdtp_subevent_signaling_recovery_capability_get_avdtp_cid(const uint8_t * event){
4445     return little_endian_read_16(event, 3);
4446 }
4447 /**
4448  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY
4449  * @param event packet
4450  * @return local_seid
4451  * @note: btstack_type 1
4452  */
4453 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_local_seid(const uint8_t * event){
4454     return event[5];
4455 }
4456 /**
4457  * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY
4458  * @param event packet
4459  * @return remote_seid
4460  * @note: btstack_type 1
4461  */
4462 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_remote_seid(const uint8_t * event){
4463     return event[6];
4464 }
4465 /**
4466  * @brief Get field recovery_type from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY
4467  * @param event packet
4468  * @return recovery_type
4469  * @note: btstack_type 1
4470  */
4471 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_recovery_type(const uint8_t * event){
4472     return event[7];
4473 }
4474 /**
4475  * @brief Get field maximum_recovery_window_size from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY
4476  * @param event packet
4477  * @return maximum_recovery_window_size
4478  * @note: btstack_type 1
4479  */
4480 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_maximum_recovery_window_size(const uint8_t * event){
4481     return event[8];
4482 }
4483 /**
4484  * @brief Get field maximum_number_media_packets from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY
4485  * @param event packet
4486  * @return maximum_number_media_packets
4487  * @note: btstack_type 1
4488  */
4489 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_maximum_number_media_packets(const uint8_t * event){
4490     return event[9];
4491 }
4492 
4493 /**
4494  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY
4495  * @param event packet
4496  * @return avdtp_cid
4497  * @note: btstack_type 2
4498  */
4499 static inline uint16_t avdtp_subevent_signaling_content_protection_capability_get_avdtp_cid(const uint8_t * event){
4500     return little_endian_read_16(event, 3);
4501 }
4502 /**
4503  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY
4504  * @param event packet
4505  * @return local_seid
4506  * @note: btstack_type 1
4507  */
4508 static inline uint8_t avdtp_subevent_signaling_content_protection_capability_get_local_seid(const uint8_t * event){
4509     return event[5];
4510 }
4511 /**
4512  * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY
4513  * @param event packet
4514  * @return remote_seid
4515  * @note: btstack_type 1
4516  */
4517 static inline uint8_t avdtp_subevent_signaling_content_protection_capability_get_remote_seid(const uint8_t * event){
4518     return event[6];
4519 }
4520 /**
4521  * @brief Get field cp_type from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY
4522  * @param event packet
4523  * @return cp_type
4524  * @note: btstack_type 2
4525  */
4526 static inline uint16_t avdtp_subevent_signaling_content_protection_capability_get_cp_type(const uint8_t * event){
4527     return little_endian_read_16(event, 7);
4528 }
4529 /**
4530  * @brief Get field cp_type_value_len from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY
4531  * @param event packet
4532  * @return cp_type_value_len
4533  * @note: btstack_type L
4534  */
4535 static inline int avdtp_subevent_signaling_content_protection_capability_get_cp_type_value_len(const uint8_t * event){
4536     return little_endian_read_16(event, 9);
4537 }
4538 /**
4539  * @brief Get field cp_type_value from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY
4540  * @param event packet
4541  * @return cp_type_value
4542  * @note: btstack_type V
4543  */
4544 static inline const uint8_t * avdtp_subevent_signaling_content_protection_capability_get_cp_type_value(const uint8_t * event){
4545     return &event[11];
4546 }
4547 
4548 /**
4549  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY
4550  * @param event packet
4551  * @return avdtp_cid
4552  * @note: btstack_type 2
4553  */
4554 static inline uint16_t avdtp_subevent_signaling_multiplexing_capability_get_avdtp_cid(const uint8_t * event){
4555     return little_endian_read_16(event, 3);
4556 }
4557 /**
4558  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY
4559  * @param event packet
4560  * @return local_seid
4561  * @note: btstack_type 1
4562  */
4563 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_local_seid(const uint8_t * event){
4564     return event[5];
4565 }
4566 /**
4567  * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY
4568  * @param event packet
4569  * @return remote_seid
4570  * @note: btstack_type 1
4571  */
4572 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_remote_seid(const uint8_t * event){
4573     return event[6];
4574 }
4575 /**
4576  * @brief Get field fragmentation from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY
4577  * @param event packet
4578  * @return fragmentation
4579  * @note: btstack_type 1
4580  */
4581 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_fragmentation(const uint8_t * event){
4582     return event[7];
4583 }
4584 /**
4585  * @brief Get field transport_identifiers_num from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY
4586  * @param event packet
4587  * @return transport_identifiers_num
4588  * @note: btstack_type 1
4589  */
4590 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_transport_identifiers_num(const uint8_t * event){
4591     return event[8];
4592 }
4593 /**
4594  * @brief Get field transport_session_identifier_1 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY
4595  * @param event packet
4596  * @return transport_session_identifier_1
4597  * @note: btstack_type 1
4598  */
4599 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_transport_session_identifier_1(const uint8_t * event){
4600     return event[9];
4601 }
4602 /**
4603  * @brief Get field transport_session_identifier_2 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY
4604  * @param event packet
4605  * @return transport_session_identifier_2
4606  * @note: btstack_type 1
4607  */
4608 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_transport_session_identifier_2(const uint8_t * event){
4609     return event[10];
4610 }
4611 /**
4612  * @brief Get field transport_session_identifier_3 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY
4613  * @param event packet
4614  * @return transport_session_identifier_3
4615  * @note: btstack_type 1
4616  */
4617 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_transport_session_identifier_3(const uint8_t * event){
4618     return event[11];
4619 }
4620 /**
4621  * @brief Get field tcid_1 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY
4622  * @param event packet
4623  * @return tcid_1
4624  * @note: btstack_type 1
4625  */
4626 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_tcid_1(const uint8_t * event){
4627     return event[12];
4628 }
4629 /**
4630  * @brief Get field tcid_2 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY
4631  * @param event packet
4632  * @return tcid_2
4633  * @note: btstack_type 1
4634  */
4635 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_tcid_2(const uint8_t * event){
4636     return event[13];
4637 }
4638 /**
4639  * @brief Get field tcid_3 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY
4640  * @param event packet
4641  * @return tcid_3
4642  * @note: btstack_type 1
4643  */
4644 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_tcid_3(const uint8_t * event){
4645     return event[14];
4646 }
4647 
4648 /**
4649  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY
4650  * @param event packet
4651  * @return avdtp_cid
4652  * @note: btstack_type 2
4653  */
4654 static inline uint16_t avdtp_subevent_signaling_delay_reporting_capability_get_avdtp_cid(const uint8_t * event){
4655     return little_endian_read_16(event, 3);
4656 }
4657 /**
4658  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY
4659  * @param event packet
4660  * @return local_seid
4661  * @note: btstack_type 1
4662  */
4663 static inline uint8_t avdtp_subevent_signaling_delay_reporting_capability_get_local_seid(const uint8_t * event){
4664     return event[5];
4665 }
4666 /**
4667  * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY
4668  * @param event packet
4669  * @return remote_seid
4670  * @note: btstack_type 1
4671  */
4672 static inline uint8_t avdtp_subevent_signaling_delay_reporting_capability_get_remote_seid(const uint8_t * event){
4673     return event[6];
4674 }
4675 
4676 /**
4677  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY
4678  * @param event packet
4679  * @return avdtp_cid
4680  * @note: btstack_type 2
4681  */
4682 static inline uint16_t avdtp_subevent_signaling_header_compression_capability_get_avdtp_cid(const uint8_t * event){
4683     return little_endian_read_16(event, 3);
4684 }
4685 /**
4686  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY
4687  * @param event packet
4688  * @return local_seid
4689  * @note: btstack_type 1
4690  */
4691 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_local_seid(const uint8_t * event){
4692     return event[5];
4693 }
4694 /**
4695  * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY
4696  * @param event packet
4697  * @return remote_seid
4698  * @note: btstack_type 1
4699  */
4700 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_remote_seid(const uint8_t * event){
4701     return event[6];
4702 }
4703 /**
4704  * @brief Get field back_ch from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY
4705  * @param event packet
4706  * @return back_ch
4707  * @note: btstack_type 1
4708  */
4709 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_back_ch(const uint8_t * event){
4710     return event[7];
4711 }
4712 /**
4713  * @brief Get field media from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY
4714  * @param event packet
4715  * @return media
4716  * @note: btstack_type 1
4717  */
4718 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_media(const uint8_t * event){
4719     return event[8];
4720 }
4721 /**
4722  * @brief Get field recovery from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY
4723  * @param event packet
4724  * @return recovery
4725  * @note: btstack_type 1
4726  */
4727 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_recovery(const uint8_t * event){
4728     return event[9];
4729 }
4730 
4731 /**
4732  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
4733  * @param event packet
4734  * @return avdtp_cid
4735  * @note: btstack_type 2
4736  */
4737 static inline uint16_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_avdtp_cid(const uint8_t * event){
4738     return little_endian_read_16(event, 3);
4739 }
4740 /**
4741  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
4742  * @param event packet
4743  * @return local_seid
4744  * @note: btstack_type 1
4745  */
4746 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_local_seid(const uint8_t * event){
4747     return event[5];
4748 }
4749 /**
4750  * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
4751  * @param event packet
4752  * @return remote_seid
4753  * @note: btstack_type 1
4754  */
4755 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_remote_seid(const uint8_t * event){
4756     return event[6];
4757 }
4758 /**
4759  * @brief Get field reconfigure from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
4760  * @param event packet
4761  * @return reconfigure
4762  * @note: btstack_type 1
4763  */
4764 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_reconfigure(const uint8_t * event){
4765     return event[7];
4766 }
4767 /**
4768  * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
4769  * @param event packet
4770  * @return media_type
4771  * @note: btstack_type 1
4772  */
4773 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_media_type(const uint8_t * event){
4774     return event[8];
4775 }
4776 /**
4777  * @brief Get field sampling_frequency from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
4778  * @param event packet
4779  * @return sampling_frequency
4780  * @note: btstack_type 2
4781  */
4782 static inline uint16_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_sampling_frequency(const uint8_t * event){
4783     return little_endian_read_16(event, 9);
4784 }
4785 /**
4786  * @brief Get field channel_mode from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
4787  * @param event packet
4788  * @return channel_mode
4789  * @note: btstack_type 1
4790  */
4791 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_channel_mode(const uint8_t * event){
4792     return event[11];
4793 }
4794 /**
4795  * @brief Get field num_channels from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
4796  * @param event packet
4797  * @return num_channels
4798  * @note: btstack_type 1
4799  */
4800 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_num_channels(const uint8_t * event){
4801     return event[12];
4802 }
4803 /**
4804  * @brief Get field block_length from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
4805  * @param event packet
4806  * @return block_length
4807  * @note: btstack_type 1
4808  */
4809 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_block_length(const uint8_t * event){
4810     return event[13];
4811 }
4812 /**
4813  * @brief Get field subbands from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
4814  * @param event packet
4815  * @return subbands
4816  * @note: btstack_type 1
4817  */
4818 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_subbands(const uint8_t * event){
4819     return event[14];
4820 }
4821 /**
4822  * @brief Get field allocation_method from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
4823  * @param event packet
4824  * @return allocation_method
4825  * @note: btstack_type 1
4826  */
4827 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_allocation_method(const uint8_t * event){
4828     return event[15];
4829 }
4830 /**
4831  * @brief Get field min_bitpool_value from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
4832  * @param event packet
4833  * @return min_bitpool_value
4834  * @note: btstack_type 1
4835  */
4836 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_min_bitpool_value(const uint8_t * event){
4837     return event[16];
4838 }
4839 /**
4840  * @brief Get field max_bitpool_value from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
4841  * @param event packet
4842  * @return max_bitpool_value
4843  * @note: btstack_type 1
4844  */
4845 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_max_bitpool_value(const uint8_t * event){
4846     return event[17];
4847 }
4848 
4849 /**
4850  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
4851  * @param event packet
4852  * @return avdtp_cid
4853  * @note: btstack_type 2
4854  */
4855 static inline uint16_t avdtp_subevent_signaling_media_codec_other_configuration_get_avdtp_cid(const uint8_t * event){
4856     return little_endian_read_16(event, 3);
4857 }
4858 /**
4859  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
4860  * @param event packet
4861  * @return local_seid
4862  * @note: btstack_type 1
4863  */
4864 static inline uint8_t avdtp_subevent_signaling_media_codec_other_configuration_get_local_seid(const uint8_t * event){
4865     return event[5];
4866 }
4867 /**
4868  * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
4869  * @param event packet
4870  * @return remote_seid
4871  * @note: btstack_type 1
4872  */
4873 static inline uint8_t avdtp_subevent_signaling_media_codec_other_configuration_get_remote_seid(const uint8_t * event){
4874     return event[6];
4875 }
4876 /**
4877  * @brief Get field reconfigure from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
4878  * @param event packet
4879  * @return reconfigure
4880  * @note: btstack_type 1
4881  */
4882 static inline uint8_t avdtp_subevent_signaling_media_codec_other_configuration_get_reconfigure(const uint8_t * event){
4883     return event[7];
4884 }
4885 /**
4886  * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
4887  * @param event packet
4888  * @return media_type
4889  * @note: btstack_type 1
4890  */
4891 static inline uint8_t avdtp_subevent_signaling_media_codec_other_configuration_get_media_type(const uint8_t * event){
4892     return event[8];
4893 }
4894 /**
4895  * @brief Get field media_codec_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
4896  * @param event packet
4897  * @return media_codec_type
4898  * @note: btstack_type 2
4899  */
4900 static inline uint16_t avdtp_subevent_signaling_media_codec_other_configuration_get_media_codec_type(const uint8_t * event){
4901     return little_endian_read_16(event, 9);
4902 }
4903 /**
4904  * @brief Get field media_codec_information_len from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
4905  * @param event packet
4906  * @return media_codec_information_len
4907  * @note: btstack_type L
4908  */
4909 static inline int avdtp_subevent_signaling_media_codec_other_configuration_get_media_codec_information_len(const uint8_t * event){
4910     return little_endian_read_16(event, 11);
4911 }
4912 /**
4913  * @brief Get field media_codec_information from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
4914  * @param event packet
4915  * @return media_codec_information
4916  * @note: btstack_type V
4917  */
4918 static inline const uint8_t * avdtp_subevent_signaling_media_codec_other_configuration_get_media_codec_information(const uint8_t * event){
4919     return &event[13];
4920 }
4921 
4922 /**
4923  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED
4924  * @param event packet
4925  * @return avdtp_cid
4926  * @note: btstack_type 2
4927  */
4928 static inline uint16_t avdtp_subevent_streaming_connection_established_get_avdtp_cid(const uint8_t * event){
4929     return little_endian_read_16(event, 3);
4930 }
4931 /**
4932  * @brief Get field bd_addr from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED
4933  * @param event packet
4934  * @param Pointer to storage for bd_addr
4935  * @note: btstack_type B
4936  */
4937 static inline void avdtp_subevent_streaming_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
4938     reverse_bd_addr(&event[5], bd_addr);
4939 }
4940 /**
4941  * @brief Get field local_seid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED
4942  * @param event packet
4943  * @return local_seid
4944  * @note: btstack_type 1
4945  */
4946 static inline uint8_t avdtp_subevent_streaming_connection_established_get_local_seid(const uint8_t * event){
4947     return event[11];
4948 }
4949 /**
4950  * @brief Get field remote_seid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED
4951  * @param event packet
4952  * @return remote_seid
4953  * @note: btstack_type 1
4954  */
4955 static inline uint8_t avdtp_subevent_streaming_connection_established_get_remote_seid(const uint8_t * event){
4956     return event[12];
4957 }
4958 /**
4959  * @brief Get field status from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED
4960  * @param event packet
4961  * @return status
4962  * @note: btstack_type 1
4963  */
4964 static inline uint8_t avdtp_subevent_streaming_connection_established_get_status(const uint8_t * event){
4965     return event[13];
4966 }
4967 
4968 /**
4969  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED
4970  * @param event packet
4971  * @return avdtp_cid
4972  * @note: btstack_type 2
4973  */
4974 static inline uint16_t avdtp_subevent_streaming_connection_released_get_avdtp_cid(const uint8_t * event){
4975     return little_endian_read_16(event, 3);
4976 }
4977 /**
4978  * @brief Get field local_seid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED
4979  * @param event packet
4980  * @return local_seid
4981  * @note: btstack_type 1
4982  */
4983 static inline uint8_t avdtp_subevent_streaming_connection_released_get_local_seid(const uint8_t * event){
4984     return event[5];
4985 }
4986 
4987 /**
4988  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW
4989  * @param event packet
4990  * @return avdtp_cid
4991  * @note: btstack_type 2
4992  */
4993 static inline uint16_t avdtp_subevent_streaming_can_send_media_packet_now_get_avdtp_cid(const uint8_t * event){
4994     return little_endian_read_16(event, 3);
4995 }
4996 /**
4997  * @brief Get field local_seid from event AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW
4998  * @param event packet
4999  * @return local_seid
5000  * @note: btstack_type 1
5001  */
5002 static inline uint8_t avdtp_subevent_streaming_can_send_media_packet_now_get_local_seid(const uint8_t * event){
5003     return event[5];
5004 }
5005 /**
5006  * @brief Get field sequence_number from event AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW
5007  * @param event packet
5008  * @return sequence_number
5009  * @note: btstack_type 2
5010  */
5011 static inline uint16_t avdtp_subevent_streaming_can_send_media_packet_now_get_sequence_number(const uint8_t * event){
5012     return little_endian_read_16(event, 6);
5013 }
5014 
5015 /**
5016  * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_CAPABILITY_DONE
5017  * @param event packet
5018  * @return avdtp_cid
5019  * @note: btstack_type 2
5020  */
5021 static inline uint16_t avdtp_subevent_signaling_capability_done_get_avdtp_cid(const uint8_t * event){
5022     return little_endian_read_16(event, 3);
5023 }
5024 /**
5025  * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_CAPABILITY_DONE
5026  * @param event packet
5027  * @return local_seid
5028  * @note: btstack_type 1
5029  */
5030 static inline uint8_t avdtp_subevent_signaling_capability_done_get_local_seid(const uint8_t * event){
5031     return event[5];
5032 }
5033 /**
5034  * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_CAPABILITY_DONE
5035  * @param event packet
5036  * @return remote_seid
5037  * @note: btstack_type 1
5038  */
5039 static inline uint8_t avdtp_subevent_signaling_capability_done_get_remote_seid(const uint8_t * event){
5040     return event[6];
5041 }
5042 
5043 /**
5044  * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW
5045  * @param event packet
5046  * @return a2dp_cid
5047  * @note: btstack_type 2
5048  */
5049 static inline uint16_t a2dp_subevent_streaming_can_send_media_packet_now_get_a2dp_cid(const uint8_t * event){
5050     return little_endian_read_16(event, 3);
5051 }
5052 /**
5053  * @brief Get field local_seid from event A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW
5054  * @param event packet
5055  * @return local_seid
5056  * @note: btstack_type 1
5057  */
5058 static inline uint8_t a2dp_subevent_streaming_can_send_media_packet_now_get_local_seid(const uint8_t * event){
5059     return event[5];
5060 }
5061 
5062 /**
5063  * @brief Get field a2dp_cid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
5064  * @param event packet
5065  * @return a2dp_cid
5066  * @note: btstack_type 2
5067  */
5068 static inline uint16_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_a2dp_cid(const uint8_t * event){
5069     return little_endian_read_16(event, 3);
5070 }
5071 /**
5072  * @brief Get field int_seid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
5073  * @param event packet
5074  * @return int_seid
5075  * @note: btstack_type 1
5076  */
5077 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_int_seid(const uint8_t * event){
5078     return event[5];
5079 }
5080 /**
5081  * @brief Get field acp_seid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
5082  * @param event packet
5083  * @return acp_seid
5084  * @note: btstack_type 1
5085  */
5086 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_acp_seid(const uint8_t * event){
5087     return event[6];
5088 }
5089 /**
5090  * @brief Get field reconfigure from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
5091  * @param event packet
5092  * @return reconfigure
5093  * @note: btstack_type 1
5094  */
5095 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_reconfigure(const uint8_t * event){
5096     return event[7];
5097 }
5098 /**
5099  * @brief Get field media_type from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
5100  * @param event packet
5101  * @return media_type
5102  * @note: btstack_type 1
5103  */
5104 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_media_type(const uint8_t * event){
5105     return event[8];
5106 }
5107 /**
5108  * @brief Get field sampling_frequency from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
5109  * @param event packet
5110  * @return sampling_frequency
5111  * @note: btstack_type 2
5112  */
5113 static inline uint16_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_sampling_frequency(const uint8_t * event){
5114     return little_endian_read_16(event, 9);
5115 }
5116 /**
5117  * @brief Get field channel_mode from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
5118  * @param event packet
5119  * @return channel_mode
5120  * @note: btstack_type 1
5121  */
5122 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_channel_mode(const uint8_t * event){
5123     return event[11];
5124 }
5125 /**
5126  * @brief Get field num_channels from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
5127  * @param event packet
5128  * @return num_channels
5129  * @note: btstack_type 1
5130  */
5131 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_num_channels(const uint8_t * event){
5132     return event[12];
5133 }
5134 /**
5135  * @brief Get field block_length from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
5136  * @param event packet
5137  * @return block_length
5138  * @note: btstack_type 1
5139  */
5140 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_block_length(const uint8_t * event){
5141     return event[13];
5142 }
5143 /**
5144  * @brief Get field subbands from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
5145  * @param event packet
5146  * @return subbands
5147  * @note: btstack_type 1
5148  */
5149 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_subbands(const uint8_t * event){
5150     return event[14];
5151 }
5152 /**
5153  * @brief Get field allocation_method from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
5154  * @param event packet
5155  * @return allocation_method
5156  * @note: btstack_type 1
5157  */
5158 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_allocation_method(const uint8_t * event){
5159     return event[15];
5160 }
5161 /**
5162  * @brief Get field min_bitpool_value from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
5163  * @param event packet
5164  * @return min_bitpool_value
5165  * @note: btstack_type 1
5166  */
5167 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_min_bitpool_value(const uint8_t * event){
5168     return event[16];
5169 }
5170 /**
5171  * @brief Get field max_bitpool_value from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION
5172  * @param event packet
5173  * @return max_bitpool_value
5174  * @note: btstack_type 1
5175  */
5176 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_max_bitpool_value(const uint8_t * event){
5177     return event[17];
5178 }
5179 
5180 /**
5181  * @brief Get field a2dp_cid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
5182  * @param event packet
5183  * @return a2dp_cid
5184  * @note: btstack_type 2
5185  */
5186 static inline uint16_t a2dp_subevent_signaling_media_codec_other_configuration_get_a2dp_cid(const uint8_t * event){
5187     return little_endian_read_16(event, 3);
5188 }
5189 /**
5190  * @brief Get field int_seid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
5191  * @param event packet
5192  * @return int_seid
5193  * @note: btstack_type 1
5194  */
5195 static inline uint8_t a2dp_subevent_signaling_media_codec_other_configuration_get_int_seid(const uint8_t * event){
5196     return event[5];
5197 }
5198 /**
5199  * @brief Get field acp_seid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
5200  * @param event packet
5201  * @return acp_seid
5202  * @note: btstack_type 1
5203  */
5204 static inline uint8_t a2dp_subevent_signaling_media_codec_other_configuration_get_acp_seid(const uint8_t * event){
5205     return event[6];
5206 }
5207 /**
5208  * @brief Get field reconfigure from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
5209  * @param event packet
5210  * @return reconfigure
5211  * @note: btstack_type 1
5212  */
5213 static inline uint8_t a2dp_subevent_signaling_media_codec_other_configuration_get_reconfigure(const uint8_t * event){
5214     return event[7];
5215 }
5216 /**
5217  * @brief Get field media_type from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
5218  * @param event packet
5219  * @return media_type
5220  * @note: btstack_type 1
5221  */
5222 static inline uint8_t a2dp_subevent_signaling_media_codec_other_configuration_get_media_type(const uint8_t * event){
5223     return event[8];
5224 }
5225 /**
5226  * @brief Get field media_codec_type from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
5227  * @param event packet
5228  * @return media_codec_type
5229  * @note: btstack_type 2
5230  */
5231 static inline uint16_t a2dp_subevent_signaling_media_codec_other_configuration_get_media_codec_type(const uint8_t * event){
5232     return little_endian_read_16(event, 9);
5233 }
5234 /**
5235  * @brief Get field media_codec_information_len from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
5236  * @param event packet
5237  * @return media_codec_information_len
5238  * @note: btstack_type L
5239  */
5240 static inline int a2dp_subevent_signaling_media_codec_other_configuration_get_media_codec_information_len(const uint8_t * event){
5241     return little_endian_read_16(event, 11);
5242 }
5243 /**
5244  * @brief Get field media_codec_information from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION
5245  * @param event packet
5246  * @return media_codec_information
5247  * @note: btstack_type V
5248  */
5249 static inline const uint8_t * a2dp_subevent_signaling_media_codec_other_configuration_get_media_codec_information(const uint8_t * event){
5250     return &event[13];
5251 }
5252 
5253 /**
5254  * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_ESTABLISHED
5255  * @param event packet
5256  * @return a2dp_cid
5257  * @note: btstack_type 2
5258  */
5259 static inline uint16_t a2dp_subevent_stream_established_get_a2dp_cid(const uint8_t * event){
5260     return little_endian_read_16(event, 3);
5261 }
5262 /**
5263  * @brief Get field bd_addr from event A2DP_SUBEVENT_STREAM_ESTABLISHED
5264  * @param event packet
5265  * @param Pointer to storage for bd_addr
5266  * @note: btstack_type B
5267  */
5268 static inline void a2dp_subevent_stream_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
5269     reverse_bd_addr(&event[5], bd_addr);
5270 }
5271 /**
5272  * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_ESTABLISHED
5273  * @param event packet
5274  * @return local_seid
5275  * @note: btstack_type 1
5276  */
5277 static inline uint8_t a2dp_subevent_stream_established_get_local_seid(const uint8_t * event){
5278     return event[11];
5279 }
5280 /**
5281  * @brief Get field remote_seid from event A2DP_SUBEVENT_STREAM_ESTABLISHED
5282  * @param event packet
5283  * @return remote_seid
5284  * @note: btstack_type 1
5285  */
5286 static inline uint8_t a2dp_subevent_stream_established_get_remote_seid(const uint8_t * event){
5287     return event[12];
5288 }
5289 /**
5290  * @brief Get field status from event A2DP_SUBEVENT_STREAM_ESTABLISHED
5291  * @param event packet
5292  * @return status
5293  * @note: btstack_type 1
5294  */
5295 static inline uint8_t a2dp_subevent_stream_established_get_status(const uint8_t * event){
5296     return event[13];
5297 }
5298 
5299 /**
5300  * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_STARTED
5301  * @param event packet
5302  * @return a2dp_cid
5303  * @note: btstack_type 2
5304  */
5305 static inline uint16_t a2dp_subevent_stream_started_get_a2dp_cid(const uint8_t * event){
5306     return little_endian_read_16(event, 3);
5307 }
5308 /**
5309  * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_STARTED
5310  * @param event packet
5311  * @return local_seid
5312  * @note: btstack_type 1
5313  */
5314 static inline uint8_t a2dp_subevent_stream_started_get_local_seid(const uint8_t * event){
5315     return event[5];
5316 }
5317 
5318 /**
5319  * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_SUSPENDED
5320  * @param event packet
5321  * @return a2dp_cid
5322  * @note: btstack_type 2
5323  */
5324 static inline uint16_t a2dp_subevent_stream_suspended_get_a2dp_cid(const uint8_t * event){
5325     return little_endian_read_16(event, 3);
5326 }
5327 /**
5328  * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_SUSPENDED
5329  * @param event packet
5330  * @return local_seid
5331  * @note: btstack_type 1
5332  */
5333 static inline uint8_t a2dp_subevent_stream_suspended_get_local_seid(const uint8_t * event){
5334     return event[5];
5335 }
5336 
5337 /**
5338  * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_STOPPED
5339  * @param event packet
5340  * @return a2dp_cid
5341  * @note: btstack_type 2
5342  */
5343 static inline uint16_t a2dp_subevent_stream_stopped_get_a2dp_cid(const uint8_t * event){
5344     return little_endian_read_16(event, 3);
5345 }
5346 /**
5347  * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_STOPPED
5348  * @param event packet
5349  * @return local_seid
5350  * @note: btstack_type 1
5351  */
5352 static inline uint8_t a2dp_subevent_stream_stopped_get_local_seid(const uint8_t * event){
5353     return event[5];
5354 }
5355 
5356 /**
5357  * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_RELEASED
5358  * @param event packet
5359  * @return a2dp_cid
5360  * @note: btstack_type 2
5361  */
5362 static inline uint16_t a2dp_subevent_stream_released_get_a2dp_cid(const uint8_t * event){
5363     return little_endian_read_16(event, 3);
5364 }
5365 /**
5366  * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_RELEASED
5367  * @param event packet
5368  * @return local_seid
5369  * @note: btstack_type 1
5370  */
5371 static inline uint8_t a2dp_subevent_stream_released_get_local_seid(const uint8_t * event){
5372     return event[5];
5373 }
5374 
5375 /**
5376  * @brief Get field a2dp_cid from event A2DP_SUBEVENT_COMMAND_ACCEPTED
5377  * @param event packet
5378  * @return a2dp_cid
5379  * @note: btstack_type 2
5380  */
5381 static inline uint16_t a2dp_subevent_command_accepted_get_a2dp_cid(const uint8_t * event){
5382     return little_endian_read_16(event, 3);
5383 }
5384 /**
5385  * @brief Get field local_seid from event A2DP_SUBEVENT_COMMAND_ACCEPTED
5386  * @param event packet
5387  * @return local_seid
5388  * @note: btstack_type 1
5389  */
5390 static inline uint8_t a2dp_subevent_command_accepted_get_local_seid(const uint8_t * event){
5391     return event[5];
5392 }
5393 /**
5394  * @brief Get field signal_identifier from event A2DP_SUBEVENT_COMMAND_ACCEPTED
5395  * @param event packet
5396  * @return signal_identifier
5397  * @note: btstack_type 1
5398  */
5399 static inline uint8_t a2dp_subevent_command_accepted_get_signal_identifier(const uint8_t * event){
5400     return event[6];
5401 }
5402 
5403 /**
5404  * @brief Get field a2dp_cid from event A2DP_SUBEVENT_COMMAND_REJECTED
5405  * @param event packet
5406  * @return a2dp_cid
5407  * @note: btstack_type 2
5408  */
5409 static inline uint16_t a2dp_subevent_command_rejected_get_a2dp_cid(const uint8_t * event){
5410     return little_endian_read_16(event, 3);
5411 }
5412 /**
5413  * @brief Get field local_seid from event A2DP_SUBEVENT_COMMAND_REJECTED
5414  * @param event packet
5415  * @return local_seid
5416  * @note: btstack_type 1
5417  */
5418 static inline uint8_t a2dp_subevent_command_rejected_get_local_seid(const uint8_t * event){
5419     return event[5];
5420 }
5421 /**
5422  * @brief Get field signal_identifier from event A2DP_SUBEVENT_COMMAND_REJECTED
5423  * @param event packet
5424  * @return signal_identifier
5425  * @note: btstack_type 1
5426  */
5427 static inline uint8_t a2dp_subevent_command_rejected_get_signal_identifier(const uint8_t * event){
5428     return event[6];
5429 }
5430 
5431 /**
5432  * @brief Get field a2dp_cid from event A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED
5433  * @param event packet
5434  * @return a2dp_cid
5435  * @note: btstack_type 2
5436  */
5437 static inline uint16_t a2dp_subevent_signaling_connection_established_get_a2dp_cid(const uint8_t * event){
5438     return little_endian_read_16(event, 3);
5439 }
5440 /**
5441  * @brief Get field bd_addr from event A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED
5442  * @param event packet
5443  * @param Pointer to storage for bd_addr
5444  * @note: btstack_type B
5445  */
5446 static inline void a2dp_subevent_signaling_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
5447     reverse_bd_addr(&event[5], bd_addr);
5448 }
5449 /**
5450  * @brief Get field status from event A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED
5451  * @param event packet
5452  * @return status
5453  * @note: btstack_type 1
5454  */
5455 static inline uint8_t a2dp_subevent_signaling_connection_established_get_status(const uint8_t * event){
5456     return event[11];
5457 }
5458 
5459 /**
5460  * @brief Get field a2dp_cid from event A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED
5461  * @param event packet
5462  * @return a2dp_cid
5463  * @note: btstack_type 2
5464  */
5465 static inline uint16_t a2dp_subevent_signaling_connection_released_get_a2dp_cid(const uint8_t * event){
5466     return little_endian_read_16(event, 3);
5467 }
5468 
5469 /**
5470  * @brief Get field status from event AVRCP_SUBEVENT_CONNECTION_ESTABLISHED
5471  * @param event packet
5472  * @return status
5473  * @note: btstack_type 1
5474  */
5475 static inline uint8_t avrcp_subevent_connection_established_get_status(const uint8_t * event){
5476     return event[3];
5477 }
5478 /**
5479  * @brief Get field bd_addr from event AVRCP_SUBEVENT_CONNECTION_ESTABLISHED
5480  * @param event packet
5481  * @param Pointer to storage for bd_addr
5482  * @note: btstack_type B
5483  */
5484 static inline void avrcp_subevent_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
5485     reverse_bd_addr(&event[4], bd_addr);
5486 }
5487 /**
5488  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_CONNECTION_ESTABLISHED
5489  * @param event packet
5490  * @return avrcp_cid
5491  * @note: btstack_type 2
5492  */
5493 static inline uint16_t avrcp_subevent_connection_established_get_avrcp_cid(const uint8_t * event){
5494     return little_endian_read_16(event, 10);
5495 }
5496 
5497 /**
5498  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_CONNECTION_RELEASED
5499  * @param event packet
5500  * @return avrcp_cid
5501  * @note: btstack_type 2
5502  */
5503 static inline uint16_t avrcp_subevent_connection_released_get_avrcp_cid(const uint8_t * event){
5504     return little_endian_read_16(event, 3);
5505 }
5506 
5507 /**
5508  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE
5509  * @param event packet
5510  * @return avrcp_cid
5511  * @note: btstack_type 2
5512  */
5513 static inline uint16_t avrcp_subevent_shuffle_and_repeat_mode_get_avrcp_cid(const uint8_t * event){
5514     return little_endian_read_16(event, 3);
5515 }
5516 /**
5517  * @brief Get field command_type from event AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE
5518  * @param event packet
5519  * @return command_type
5520  * @note: btstack_type 1
5521  */
5522 static inline uint8_t avrcp_subevent_shuffle_and_repeat_mode_get_command_type(const uint8_t * event){
5523     return event[5];
5524 }
5525 /**
5526  * @brief Get field repeat_mode from event AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE
5527  * @param event packet
5528  * @return repeat_mode
5529  * @note: btstack_type 1
5530  */
5531 static inline uint8_t avrcp_subevent_shuffle_and_repeat_mode_get_repeat_mode(const uint8_t * event){
5532     return event[6];
5533 }
5534 /**
5535  * @brief Get field shuffle_mode from event AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE
5536  * @param event packet
5537  * @return shuffle_mode
5538  * @note: btstack_type 1
5539  */
5540 static inline uint8_t avrcp_subevent_shuffle_and_repeat_mode_get_shuffle_mode(const uint8_t * event){
5541     return event[7];
5542 }
5543 
5544 /**
5545  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_PLAY_STATUS
5546  * @param event packet
5547  * @return avrcp_cid
5548  * @note: btstack_type 2
5549  */
5550 static inline uint16_t avrcp_subevent_play_status_get_avrcp_cid(const uint8_t * event){
5551     return little_endian_read_16(event, 3);
5552 }
5553 /**
5554  * @brief Get field command_type from event AVRCP_SUBEVENT_PLAY_STATUS
5555  * @param event packet
5556  * @return command_type
5557  * @note: btstack_type 1
5558  */
5559 static inline uint8_t avrcp_subevent_play_status_get_command_type(const uint8_t * event){
5560     return event[5];
5561 }
5562 /**
5563  * @brief Get field song_length from event AVRCP_SUBEVENT_PLAY_STATUS
5564  * @param event packet
5565  * @return song_length
5566  * @note: btstack_type 4
5567  */
5568 static inline uint32_t avrcp_subevent_play_status_get_song_length(const uint8_t * event){
5569     return little_endian_read_32(event, 6);
5570 }
5571 /**
5572  * @brief Get field song_position from event AVRCP_SUBEVENT_PLAY_STATUS
5573  * @param event packet
5574  * @return song_position
5575  * @note: btstack_type 4
5576  */
5577 static inline uint32_t avrcp_subevent_play_status_get_song_position(const uint8_t * event){
5578     return little_endian_read_32(event, 10);
5579 }
5580 /**
5581  * @brief Get field play_status from event AVRCP_SUBEVENT_PLAY_STATUS
5582  * @param event packet
5583  * @return play_status
5584  * @note: btstack_type 1
5585  */
5586 static inline uint8_t avrcp_subevent_play_status_get_play_status(const uint8_t * event){
5587     return event[14];
5588 }
5589 
5590 /**
5591  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED
5592  * @param event packet
5593  * @return avrcp_cid
5594  * @note: btstack_type 2
5595  */
5596 static inline uint16_t avrcp_subevent_notification_playback_status_changed_get_avrcp_cid(const uint8_t * event){
5597     return little_endian_read_16(event, 3);
5598 }
5599 /**
5600  * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED
5601  * @param event packet
5602  * @return command_type
5603  * @note: btstack_type 1
5604  */
5605 static inline uint8_t avrcp_subevent_notification_playback_status_changed_get_command_type(const uint8_t * event){
5606     return event[5];
5607 }
5608 /**
5609  * @brief Get field play_status from event AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED
5610  * @param event packet
5611  * @return play_status
5612  * @note: btstack_type 1
5613  */
5614 static inline uint8_t avrcp_subevent_notification_playback_status_changed_get_play_status(const uint8_t * event){
5615     return event[6];
5616 }
5617 
5618 /**
5619  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED
5620  * @param event packet
5621  * @return avrcp_cid
5622  * @note: btstack_type 2
5623  */
5624 static inline uint16_t avrcp_subevent_notification_track_changed_get_avrcp_cid(const uint8_t * event){
5625     return little_endian_read_16(event, 3);
5626 }
5627 /**
5628  * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED
5629  * @param event packet
5630  * @return command_type
5631  * @note: btstack_type 1
5632  */
5633 static inline uint8_t avrcp_subevent_notification_track_changed_get_command_type(const uint8_t * event){
5634     return event[5];
5635 }
5636 
5637 /**
5638  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED
5639  * @param event packet
5640  * @return avrcp_cid
5641  * @note: btstack_type 2
5642  */
5643 static inline uint16_t avrcp_subevent_notification_now_playing_content_changed_get_avrcp_cid(const uint8_t * event){
5644     return little_endian_read_16(event, 3);
5645 }
5646 /**
5647  * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED
5648  * @param event packet
5649  * @return command_type
5650  * @note: btstack_type 1
5651  */
5652 static inline uint8_t avrcp_subevent_notification_now_playing_content_changed_get_command_type(const uint8_t * event){
5653     return event[5];
5654 }
5655 
5656 /**
5657  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED
5658  * @param event packet
5659  * @return avrcp_cid
5660  * @note: btstack_type 2
5661  */
5662 static inline uint16_t avrcp_subevent_notification_available_players_changed_get_avrcp_cid(const uint8_t * event){
5663     return little_endian_read_16(event, 3);
5664 }
5665 /**
5666  * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED
5667  * @param event packet
5668  * @return command_type
5669  * @note: btstack_type 1
5670  */
5671 static inline uint8_t avrcp_subevent_notification_available_players_changed_get_command_type(const uint8_t * event){
5672     return event[5];
5673 }
5674 
5675 /**
5676  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED
5677  * @param event packet
5678  * @return avrcp_cid
5679  * @note: btstack_type 2
5680  */
5681 static inline uint16_t avrcp_subevent_notification_volume_changed_get_avrcp_cid(const uint8_t * event){
5682     return little_endian_read_16(event, 3);
5683 }
5684 /**
5685  * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED
5686  * @param event packet
5687  * @return command_type
5688  * @note: btstack_type 1
5689  */
5690 static inline uint8_t avrcp_subevent_notification_volume_changed_get_command_type(const uint8_t * event){
5691     return event[5];
5692 }
5693 /**
5694  * @brief Get field absolute_volume from event AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED
5695  * @param event packet
5696  * @return absolute_volume
5697  * @note: btstack_type 1
5698  */
5699 static inline uint8_t avrcp_subevent_notification_volume_changed_get_absolute_volume(const uint8_t * event){
5700     return event[6];
5701 }
5702 
5703 /**
5704  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE
5705  * @param event packet
5706  * @return avrcp_cid
5707  * @note: btstack_type 2
5708  */
5709 static inline uint16_t avrcp_subevent_set_absolute_volume_response_get_avrcp_cid(const uint8_t * event){
5710     return little_endian_read_16(event, 3);
5711 }
5712 /**
5713  * @brief Get field command_type from event AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE
5714  * @param event packet
5715  * @return command_type
5716  * @note: btstack_type 1
5717  */
5718 static inline uint8_t avrcp_subevent_set_absolute_volume_response_get_command_type(const uint8_t * event){
5719     return event[5];
5720 }
5721 /**
5722  * @brief Get field absolute_volume from event AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE
5723  * @param event packet
5724  * @return absolute_volume
5725  * @note: btstack_type 1
5726  */
5727 static inline uint8_t avrcp_subevent_set_absolute_volume_response_get_absolute_volume(const uint8_t * event){
5728     return event[6];
5729 }
5730 
5731 /**
5732  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE
5733  * @param event packet
5734  * @return avrcp_cid
5735  * @note: btstack_type 2
5736  */
5737 static inline uint16_t avrcp_subevent_enable_notification_complete_get_avrcp_cid(const uint8_t * event){
5738     return little_endian_read_16(event, 3);
5739 }
5740 /**
5741  * @brief Get field command_type from event AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE
5742  * @param event packet
5743  * @return command_type
5744  * @note: btstack_type 1
5745  */
5746 static inline uint8_t avrcp_subevent_enable_notification_complete_get_command_type(const uint8_t * event){
5747     return event[5];
5748 }
5749 /**
5750  * @brief Get field notification_id from event AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE
5751  * @param event packet
5752  * @return notification_id
5753  * @note: btstack_type 1
5754  */
5755 static inline uint8_t avrcp_subevent_enable_notification_complete_get_notification_id(const uint8_t * event){
5756     return event[6];
5757 }
5758 
5759 /**
5760  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_OPERATION_START
5761  * @param event packet
5762  * @return avrcp_cid
5763  * @note: btstack_type 2
5764  */
5765 static inline uint16_t avrcp_subevent_operation_start_get_avrcp_cid(const uint8_t * event){
5766     return little_endian_read_16(event, 3);
5767 }
5768 /**
5769  * @brief Get field command_type from event AVRCP_SUBEVENT_OPERATION_START
5770  * @param event packet
5771  * @return command_type
5772  * @note: btstack_type 1
5773  */
5774 static inline uint8_t avrcp_subevent_operation_start_get_command_type(const uint8_t * event){
5775     return event[5];
5776 }
5777 /**
5778  * @brief Get field operation_id from event AVRCP_SUBEVENT_OPERATION_START
5779  * @param event packet
5780  * @return operation_id
5781  * @note: btstack_type 1
5782  */
5783 static inline uint8_t avrcp_subevent_operation_start_get_operation_id(const uint8_t * event){
5784     return event[6];
5785 }
5786 
5787 /**
5788  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_OPERATION_COMPLETE
5789  * @param event packet
5790  * @return avrcp_cid
5791  * @note: btstack_type 2
5792  */
5793 static inline uint16_t avrcp_subevent_operation_complete_get_avrcp_cid(const uint8_t * event){
5794     return little_endian_read_16(event, 3);
5795 }
5796 /**
5797  * @brief Get field command_type from event AVRCP_SUBEVENT_OPERATION_COMPLETE
5798  * @param event packet
5799  * @return command_type
5800  * @note: btstack_type 1
5801  */
5802 static inline uint8_t avrcp_subevent_operation_complete_get_command_type(const uint8_t * event){
5803     return event[5];
5804 }
5805 /**
5806  * @brief Get field operation_id from event AVRCP_SUBEVENT_OPERATION_COMPLETE
5807  * @param event packet
5808  * @return operation_id
5809  * @note: btstack_type 1
5810  */
5811 static inline uint8_t avrcp_subevent_operation_complete_get_operation_id(const uint8_t * event){
5812     return event[6];
5813 }
5814 
5815 /**
5816  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE
5817  * @param event packet
5818  * @return avrcp_cid
5819  * @note: btstack_type 2
5820  */
5821 static inline uint16_t avrcp_subevent_player_application_value_response_get_avrcp_cid(const uint8_t * event){
5822     return little_endian_read_16(event, 3);
5823 }
5824 /**
5825  * @brief Get field command_type from event AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE
5826  * @param event packet
5827  * @return command_type
5828  * @note: btstack_type 1
5829  */
5830 static inline uint8_t avrcp_subevent_player_application_value_response_get_command_type(const uint8_t * event){
5831     return event[5];
5832 }
5833 
5834 /**
5835  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_COMPANY_IDS_QUERY
5836  * @param event packet
5837  * @return avrcp_cid
5838  * @note: btstack_type 2
5839  */
5840 static inline uint16_t avrcp_subevent_company_ids_query_get_avrcp_cid(const uint8_t * event){
5841     return little_endian_read_16(event, 3);
5842 }
5843 
5844 /**
5845  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_EVENT_IDS_QUERY
5846  * @param event packet
5847  * @return avrcp_cid
5848  * @note: btstack_type 2
5849  */
5850 static inline uint16_t avrcp_subevent_event_ids_query_get_avrcp_cid(const uint8_t * event){
5851     return little_endian_read_16(event, 3);
5852 }
5853 
5854 /**
5855  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_PLAY_STATUS_QUERY
5856  * @param event packet
5857  * @return avrcp_cid
5858  * @note: btstack_type 2
5859  */
5860 static inline uint16_t avrcp_subevent_play_status_query_get_avrcp_cid(const uint8_t * event){
5861     return little_endian_read_16(event, 3);
5862 }
5863 
5864 /**
5865  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_OPERATION
5866  * @param event packet
5867  * @return avrcp_cid
5868  * @note: btstack_type 2
5869  */
5870 static inline uint16_t avrcp_subevent_operation_get_avrcp_cid(const uint8_t * event){
5871     return little_endian_read_16(event, 3);
5872 }
5873 /**
5874  * @brief Get field operation_id from event AVRCP_SUBEVENT_OPERATION
5875  * @param event packet
5876  * @return operation_id
5877  * @note: btstack_type 1
5878  */
5879 static inline uint8_t avrcp_subevent_operation_get_operation_id(const uint8_t * event){
5880     return event[5];
5881 }
5882 /**
5883  * @brief Get field operands_length from event AVRCP_SUBEVENT_OPERATION
5884  * @param event packet
5885  * @return operands_length
5886  * @note: btstack_type 1
5887  */
5888 static inline uint8_t avrcp_subevent_operation_get_operands_length(const uint8_t * event){
5889     return event[6];
5890 }
5891 /**
5892  * @brief Get field operand from event AVRCP_SUBEVENT_OPERATION
5893  * @param event packet
5894  * @return operand
5895  * @note: btstack_type 1
5896  */
5897 static inline uint8_t avrcp_subevent_operation_get_operand(const uint8_t * event){
5898     return event[7];
5899 }
5900 
5901 /**
5902  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO
5903  * @param event packet
5904  * @return avrcp_cid
5905  * @note: btstack_type 2
5906  */
5907 static inline uint16_t avrcp_subevent_now_playing_track_info_get_avrcp_cid(const uint8_t * event){
5908     return little_endian_read_16(event, 3);
5909 }
5910 /**
5911  * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO
5912  * @param event packet
5913  * @return command_type
5914  * @note: btstack_type 1
5915  */
5916 static inline uint8_t avrcp_subevent_now_playing_track_info_get_command_type(const uint8_t * event){
5917     return event[5];
5918 }
5919 /**
5920  * @brief Get field track from event AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO
5921  * @param event packet
5922  * @return track
5923  * @note: btstack_type 1
5924  */
5925 static inline uint8_t avrcp_subevent_now_playing_track_info_get_track(const uint8_t * event){
5926     return event[6];
5927 }
5928 
5929 /**
5930  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO
5931  * @param event packet
5932  * @return avrcp_cid
5933  * @note: btstack_type 2
5934  */
5935 static inline uint16_t avrcp_subevent_now_playing_total_tracks_info_get_avrcp_cid(const uint8_t * event){
5936     return little_endian_read_16(event, 3);
5937 }
5938 /**
5939  * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO
5940  * @param event packet
5941  * @return command_type
5942  * @note: btstack_type 1
5943  */
5944 static inline uint8_t avrcp_subevent_now_playing_total_tracks_info_get_command_type(const uint8_t * event){
5945     return event[5];
5946 }
5947 /**
5948  * @brief Get field total_tracks from event AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO
5949  * @param event packet
5950  * @return total_tracks
5951  * @note: btstack_type 1
5952  */
5953 static inline uint8_t avrcp_subevent_now_playing_total_tracks_info_get_total_tracks(const uint8_t * event){
5954     return event[6];
5955 }
5956 
5957 /**
5958  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO
5959  * @param event packet
5960  * @return avrcp_cid
5961  * @note: btstack_type 2
5962  */
5963 static inline uint16_t avrcp_subevent_now_playing_song_length_ms_info_get_avrcp_cid(const uint8_t * event){
5964     return little_endian_read_16(event, 3);
5965 }
5966 /**
5967  * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO
5968  * @param event packet
5969  * @return command_type
5970  * @note: btstack_type 1
5971  */
5972 static inline uint8_t avrcp_subevent_now_playing_song_length_ms_info_get_command_type(const uint8_t * event){
5973     return event[5];
5974 }
5975 /**
5976  * @brief Get field song_length from event AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO
5977  * @param event packet
5978  * @return song_length
5979  * @note: btstack_type 4
5980  */
5981 static inline uint32_t avrcp_subevent_now_playing_song_length_ms_info_get_song_length(const uint8_t * event){
5982     return little_endian_read_32(event, 6);
5983 }
5984 
5985 /**
5986  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO
5987  * @param event packet
5988  * @return avrcp_cid
5989  * @note: btstack_type 2
5990  */
5991 static inline uint16_t avrcp_subevent_now_playing_title_info_get_avrcp_cid(const uint8_t * event){
5992     return little_endian_read_16(event, 3);
5993 }
5994 /**
5995  * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO
5996  * @param event packet
5997  * @return command_type
5998  * @note: btstack_type 1
5999  */
6000 static inline uint8_t avrcp_subevent_now_playing_title_info_get_command_type(const uint8_t * event){
6001     return event[5];
6002 }
6003 /**
6004  * @brief Get field value_len from event AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO
6005  * @param event packet
6006  * @return value_len
6007  * @note: btstack_type J
6008  */
6009 static inline int avrcp_subevent_now_playing_title_info_get_value_len(const uint8_t * event){
6010     return event[6];
6011 }
6012 /**
6013  * @brief Get field value from event AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO
6014  * @param event packet
6015  * @return value
6016  * @note: btstack_type V
6017  */
6018 static inline const uint8_t * avrcp_subevent_now_playing_title_info_get_value(const uint8_t * event){
6019     return &event[7];
6020 }
6021 
6022 /**
6023  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO
6024  * @param event packet
6025  * @return avrcp_cid
6026  * @note: btstack_type 2
6027  */
6028 static inline uint16_t avrcp_subevent_now_playing_artist_info_get_avrcp_cid(const uint8_t * event){
6029     return little_endian_read_16(event, 3);
6030 }
6031 /**
6032  * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO
6033  * @param event packet
6034  * @return command_type
6035  * @note: btstack_type 1
6036  */
6037 static inline uint8_t avrcp_subevent_now_playing_artist_info_get_command_type(const uint8_t * event){
6038     return event[5];
6039 }
6040 /**
6041  * @brief Get field value_len from event AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO
6042  * @param event packet
6043  * @return value_len
6044  * @note: btstack_type J
6045  */
6046 static inline int avrcp_subevent_now_playing_artist_info_get_value_len(const uint8_t * event){
6047     return event[6];
6048 }
6049 /**
6050  * @brief Get field value from event AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO
6051  * @param event packet
6052  * @return value
6053  * @note: btstack_type V
6054  */
6055 static inline const uint8_t * avrcp_subevent_now_playing_artist_info_get_value(const uint8_t * event){
6056     return &event[7];
6057 }
6058 
6059 /**
6060  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO
6061  * @param event packet
6062  * @return avrcp_cid
6063  * @note: btstack_type 2
6064  */
6065 static inline uint16_t avrcp_subevent_now_playing_album_info_get_avrcp_cid(const uint8_t * event){
6066     return little_endian_read_16(event, 3);
6067 }
6068 /**
6069  * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO
6070  * @param event packet
6071  * @return command_type
6072  * @note: btstack_type 1
6073  */
6074 static inline uint8_t avrcp_subevent_now_playing_album_info_get_command_type(const uint8_t * event){
6075     return event[5];
6076 }
6077 /**
6078  * @brief Get field value_len from event AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO
6079  * @param event packet
6080  * @return value_len
6081  * @note: btstack_type J
6082  */
6083 static inline int avrcp_subevent_now_playing_album_info_get_value_len(const uint8_t * event){
6084     return event[6];
6085 }
6086 /**
6087  * @brief Get field value from event AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO
6088  * @param event packet
6089  * @return value
6090  * @note: btstack_type V
6091  */
6092 static inline const uint8_t * avrcp_subevent_now_playing_album_info_get_value(const uint8_t * event){
6093     return &event[7];
6094 }
6095 
6096 /**
6097  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO
6098  * @param event packet
6099  * @return avrcp_cid
6100  * @note: btstack_type 2
6101  */
6102 static inline uint16_t avrcp_subevent_now_playing_genre_info_get_avrcp_cid(const uint8_t * event){
6103     return little_endian_read_16(event, 3);
6104 }
6105 /**
6106  * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO
6107  * @param event packet
6108  * @return command_type
6109  * @note: btstack_type 1
6110  */
6111 static inline uint8_t avrcp_subevent_now_playing_genre_info_get_command_type(const uint8_t * event){
6112     return event[5];
6113 }
6114 /**
6115  * @brief Get field value_len from event AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO
6116  * @param event packet
6117  * @return value_len
6118  * @note: btstack_type J
6119  */
6120 static inline int avrcp_subevent_now_playing_genre_info_get_value_len(const uint8_t * event){
6121     return event[6];
6122 }
6123 /**
6124  * @brief Get field value from event AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO
6125  * @param event packet
6126  * @return value
6127  * @note: btstack_type V
6128  */
6129 static inline const uint8_t * avrcp_subevent_now_playing_genre_info_get_value(const uint8_t * event){
6130     return &event[7];
6131 }
6132 
6133 /**
6134  * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE
6135  * @param event packet
6136  * @return avrcp_cid
6137  * @note: btstack_type 2
6138  */
6139 static inline uint16_t avrcp_subevent_now_playing_info_done_get_avrcp_cid(const uint8_t * event){
6140     return little_endian_read_16(event, 3);
6141 }
6142 /**
6143  * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE
6144  * @param event packet
6145  * @return command_type
6146  * @note: btstack_type 1
6147  */
6148 static inline uint8_t avrcp_subevent_now_playing_info_done_get_command_type(const uint8_t * event){
6149     return event[5];
6150 }
6151 /**
6152  * @brief Get field status from event AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE
6153  * @param event packet
6154  * @return status
6155  * @note: btstack_type 1
6156  */
6157 static inline uint8_t avrcp_subevent_now_playing_info_done_get_status(const uint8_t * event){
6158     return event[6];
6159 }
6160 
6161 /**
6162  * @brief Get field bd_addr from event AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION
6163  * @param event packet
6164  * @param Pointer to storage for bd_addr
6165  * @note: btstack_type B
6166  */
6167 static inline void avrcp_subevent_incoming_browsing_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
6168     reverse_bd_addr(&event[3], bd_addr);
6169 }
6170 /**
6171  * @brief Get field browsing_cid from event AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION
6172  * @param event packet
6173  * @return browsing_cid
6174  * @note: btstack_type 2
6175  */
6176 static inline uint16_t avrcp_subevent_incoming_browsing_connection_get_browsing_cid(const uint8_t * event){
6177     return little_endian_read_16(event, 9);
6178 }
6179 
6180 /**
6181  * @brief Get field status from event AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED
6182  * @param event packet
6183  * @return status
6184  * @note: btstack_type 1
6185  */
6186 static inline uint8_t avrcp_subevent_browsing_connection_established_get_status(const uint8_t * event){
6187     return event[3];
6188 }
6189 /**
6190  * @brief Get field bd_addr from event AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED
6191  * @param event packet
6192  * @param Pointer to storage for bd_addr
6193  * @note: btstack_type B
6194  */
6195 static inline void avrcp_subevent_browsing_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
6196     reverse_bd_addr(&event[4], bd_addr);
6197 }
6198 /**
6199  * @brief Get field browsing_cid from event AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED
6200  * @param event packet
6201  * @return browsing_cid
6202  * @note: btstack_type 2
6203  */
6204 static inline uint16_t avrcp_subevent_browsing_connection_established_get_browsing_cid(const uint8_t * event){
6205     return little_endian_read_16(event, 10);
6206 }
6207 
6208 /**
6209  * @brief Get field browsing_cid from event AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED
6210  * @param event packet
6211  * @return browsing_cid
6212  * @note: btstack_type 2
6213  */
6214 static inline uint16_t avrcp_subevent_browsing_connection_released_get_browsing_cid(const uint8_t * event){
6215     return little_endian_read_16(event, 3);
6216 }
6217 
6218 /**
6219  * @brief Get field browsing_cid from event AVRCP_SUBEVENT_BROWSING_MEDIA_ITEM_DONE
6220  * @param event packet
6221  * @return browsing_cid
6222  * @note: btstack_type 2
6223  */
6224 static inline uint16_t avrcp_subevent_browsing_media_item_done_get_browsing_cid(const uint8_t * event){
6225     return little_endian_read_16(event, 3);
6226 }
6227 /**
6228  * @brief Get field browsing_status from event AVRCP_SUBEVENT_BROWSING_MEDIA_ITEM_DONE
6229  * @param event packet
6230  * @return browsing_status
6231  * @note: btstack_type 1
6232  */
6233 static inline uint8_t avrcp_subevent_browsing_media_item_done_get_browsing_status(const uint8_t * event){
6234     return event[5];
6235 }
6236 /**
6237  * @brief Get field bluetooth_status from event AVRCP_SUBEVENT_BROWSING_MEDIA_ITEM_DONE
6238  * @param event packet
6239  * @return bluetooth_status
6240  * @note: btstack_type 1
6241  */
6242 static inline uint8_t avrcp_subevent_browsing_media_item_done_get_bluetooth_status(const uint8_t * event){
6243     return event[6];
6244 }
6245 
6246 /**
6247  * @brief Get field goep_cid from event GOEP_SUBEVENT_CONNECTION_OPENED
6248  * @param event packet
6249  * @return goep_cid
6250  * @note: btstack_type 2
6251  */
6252 static inline uint16_t goep_subevent_connection_opened_get_goep_cid(const uint8_t * event){
6253     return little_endian_read_16(event, 3);
6254 }
6255 /**
6256  * @brief Get field status from event GOEP_SUBEVENT_CONNECTION_OPENED
6257  * @param event packet
6258  * @return status
6259  * @note: btstack_type 1
6260  */
6261 static inline uint8_t goep_subevent_connection_opened_get_status(const uint8_t * event){
6262     return event[5];
6263 }
6264 /**
6265  * @brief Get field bd_addr from event GOEP_SUBEVENT_CONNECTION_OPENED
6266  * @param event packet
6267  * @param Pointer to storage for bd_addr
6268  * @note: btstack_type B
6269  */
6270 static inline void goep_subevent_connection_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
6271     reverse_bd_addr(&event[6], bd_addr);
6272 }
6273 /**
6274  * @brief Get field con_handle from event GOEP_SUBEVENT_CONNECTION_OPENED
6275  * @param event packet
6276  * @return con_handle
6277  * @note: btstack_type H
6278  */
6279 static inline hci_con_handle_t goep_subevent_connection_opened_get_con_handle(const uint8_t * event){
6280     return little_endian_read_16(event, 12);
6281 }
6282 /**
6283  * @brief Get field incoming from event GOEP_SUBEVENT_CONNECTION_OPENED
6284  * @param event packet
6285  * @return incoming
6286  * @note: btstack_type 1
6287  */
6288 static inline uint8_t goep_subevent_connection_opened_get_incoming(const uint8_t * event){
6289     return event[14];
6290 }
6291 
6292 /**
6293  * @brief Get field goep_cid from event GOEP_SUBEVENT_CONNECTION_CLOSED
6294  * @param event packet
6295  * @return goep_cid
6296  * @note: btstack_type 2
6297  */
6298 static inline uint16_t goep_subevent_connection_closed_get_goep_cid(const uint8_t * event){
6299     return little_endian_read_16(event, 3);
6300 }
6301 
6302 /**
6303  * @brief Get field goep_cid from event GOEP_SUBEVENT_CAN_SEND_NOW
6304  * @param event packet
6305  * @return goep_cid
6306  * @note: btstack_type 2
6307  */
6308 static inline uint16_t goep_subevent_can_send_now_get_goep_cid(const uint8_t * event){
6309     return little_endian_read_16(event, 3);
6310 }
6311 
6312 /**
6313  * @brief Get field pbap_cid from event PBAP_SUBEVENT_CONNECTION_OPENED
6314  * @param event packet
6315  * @return pbap_cid
6316  * @note: btstack_type 2
6317  */
6318 static inline uint16_t pbap_subevent_connection_opened_get_pbap_cid(const uint8_t * event){
6319     return little_endian_read_16(event, 3);
6320 }
6321 /**
6322  * @brief Get field status from event PBAP_SUBEVENT_CONNECTION_OPENED
6323  * @param event packet
6324  * @return status
6325  * @note: btstack_type 1
6326  */
6327 static inline uint8_t pbap_subevent_connection_opened_get_status(const uint8_t * event){
6328     return event[5];
6329 }
6330 /**
6331  * @brief Get field bd_addr from event PBAP_SUBEVENT_CONNECTION_OPENED
6332  * @param event packet
6333  * @param Pointer to storage for bd_addr
6334  * @note: btstack_type B
6335  */
6336 static inline void pbap_subevent_connection_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
6337     reverse_bd_addr(&event[6], bd_addr);
6338 }
6339 /**
6340  * @brief Get field con_handle from event PBAP_SUBEVENT_CONNECTION_OPENED
6341  * @param event packet
6342  * @return con_handle
6343  * @note: btstack_type H
6344  */
6345 static inline hci_con_handle_t pbap_subevent_connection_opened_get_con_handle(const uint8_t * event){
6346     return little_endian_read_16(event, 12);
6347 }
6348 /**
6349  * @brief Get field incoming from event PBAP_SUBEVENT_CONNECTION_OPENED
6350  * @param event packet
6351  * @return incoming
6352  * @note: btstack_type 1
6353  */
6354 static inline uint8_t pbap_subevent_connection_opened_get_incoming(const uint8_t * event){
6355     return event[14];
6356 }
6357 
6358 /**
6359  * @brief Get field goep_cid from event PBAP_SUBEVENT_CONNECTION_CLOSED
6360  * @param event packet
6361  * @return goep_cid
6362  * @note: btstack_type 2
6363  */
6364 static inline uint16_t pbap_subevent_connection_closed_get_goep_cid(const uint8_t * event){
6365     return little_endian_read_16(event, 3);
6366 }
6367 
6368 /**
6369  * @brief Get field goep_cid from event PBAP_SUBEVENT_OPERATION_COMPLETED
6370  * @param event packet
6371  * @return goep_cid
6372  * @note: btstack_type 2
6373  */
6374 static inline uint16_t pbap_subevent_operation_completed_get_goep_cid(const uint8_t * event){
6375     return little_endian_read_16(event, 3);
6376 }
6377 /**
6378  * @brief Get field status from event PBAP_SUBEVENT_OPERATION_COMPLETED
6379  * @param event packet
6380  * @return status
6381  * @note: btstack_type 1
6382  */
6383 static inline uint8_t pbap_subevent_operation_completed_get_status(const uint8_t * event){
6384     return event[5];
6385 }
6386 
6387 /**
6388  * @brief Get field hid_cid from event HID_SUBEVENT_CONNECTION_OPENED
6389  * @param event packet
6390  * @return hid_cid
6391  * @note: btstack_type 2
6392  */
6393 static inline uint16_t hid_subevent_connection_opened_get_hid_cid(const uint8_t * event){
6394     return little_endian_read_16(event, 3);
6395 }
6396 /**
6397  * @brief Get field status from event HID_SUBEVENT_CONNECTION_OPENED
6398  * @param event packet
6399  * @return status
6400  * @note: btstack_type 1
6401  */
6402 static inline uint8_t hid_subevent_connection_opened_get_status(const uint8_t * event){
6403     return event[5];
6404 }
6405 /**
6406  * @brief Get field bd_addr from event HID_SUBEVENT_CONNECTION_OPENED
6407  * @param event packet
6408  * @param Pointer to storage for bd_addr
6409  * @note: btstack_type B
6410  */
6411 static inline void hid_subevent_connection_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
6412     reverse_bd_addr(&event[6], bd_addr);
6413 }
6414 /**
6415  * @brief Get field con_handle from event HID_SUBEVENT_CONNECTION_OPENED
6416  * @param event packet
6417  * @return con_handle
6418  * @note: btstack_type H
6419  */
6420 static inline hci_con_handle_t hid_subevent_connection_opened_get_con_handle(const uint8_t * event){
6421     return little_endian_read_16(event, 12);
6422 }
6423 /**
6424  * @brief Get field incoming from event HID_SUBEVENT_CONNECTION_OPENED
6425  * @param event packet
6426  * @return incoming
6427  * @note: btstack_type 1
6428  */
6429 static inline uint8_t hid_subevent_connection_opened_get_incoming(const uint8_t * event){
6430     return event[14];
6431 }
6432 
6433 /**
6434  * @brief Get field hid_cid from event HID_SUBEVENT_CONNECTION_CLOSED
6435  * @param event packet
6436  * @return hid_cid
6437  * @note: btstack_type 2
6438  */
6439 static inline uint16_t hid_subevent_connection_closed_get_hid_cid(const uint8_t * event){
6440     return little_endian_read_16(event, 3);
6441 }
6442 
6443 /**
6444  * @brief Get field hid_cid from event HID_SUBEVENT_CAN_SEND_NOW
6445  * @param event packet
6446  * @return hid_cid
6447  * @note: btstack_type 2
6448  */
6449 static inline uint16_t hid_subevent_can_send_now_get_hid_cid(const uint8_t * event){
6450     return little_endian_read_16(event, 3);
6451 }
6452 
6453 /**
6454  * @brief Get field con_handle from event HIDS_SUBEVENT_CAN_SEND_NOW
6455  * @param event packet
6456  * @return con_handle
6457  * @note: btstack_type 2
6458  */
6459 static inline uint16_t hids_subevent_can_send_now_get_con_handle(const uint8_t * event){
6460     return little_endian_read_16(event, 3);
6461 }
6462 
6463 /**
6464  * @brief Get field con_handle from event HIDS_SUBEVENT_PROTOCOL_MODE
6465  * @param event packet
6466  * @return con_handle
6467  * @note: btstack_type 2
6468  */
6469 static inline uint16_t hids_subevent_protocol_mode_get_con_handle(const uint8_t * event){
6470     return little_endian_read_16(event, 3);
6471 }
6472 /**
6473  * @brief Get field protocol_mode from event HIDS_SUBEVENT_PROTOCOL_MODE
6474  * @param event packet
6475  * @return protocol_mode
6476  * @note: btstack_type 1
6477  */
6478 static inline uint8_t hids_subevent_protocol_mode_get_protocol_mode(const uint8_t * event){
6479     return event[5];
6480 }
6481 
6482 /**
6483  * @brief Get field con_handle from event HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE
6484  * @param event packet
6485  * @return con_handle
6486  * @note: btstack_type 2
6487  */
6488 static inline uint16_t hids_subevent_boot_mouse_input_report_enable_get_con_handle(const uint8_t * event){
6489     return little_endian_read_16(event, 3);
6490 }
6491 /**
6492  * @brief Get field enable from event HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE
6493  * @param event packet
6494  * @return enable
6495  * @note: btstack_type 1
6496  */
6497 static inline uint8_t hids_subevent_boot_mouse_input_report_enable_get_enable(const uint8_t * event){
6498     return event[5];
6499 }
6500 
6501 /**
6502  * @brief Get field con_handle from event HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE
6503  * @param event packet
6504  * @return con_handle
6505  * @note: btstack_type 2
6506  */
6507 static inline uint16_t hids_subevent_boot_keyboard_input_report_enable_get_con_handle(const uint8_t * event){
6508     return little_endian_read_16(event, 3);
6509 }
6510 /**
6511  * @brief Get field enable from event HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE
6512  * @param event packet
6513  * @return enable
6514  * @note: btstack_type 1
6515  */
6516 static inline uint8_t hids_subevent_boot_keyboard_input_report_enable_get_enable(const uint8_t * event){
6517     return event[5];
6518 }
6519 
6520 /**
6521  * @brief Get field con_handle from event HIDS_SUBEVENT_INPUT_REPORT_ENABLE
6522  * @param event packet
6523  * @return con_handle
6524  * @note: btstack_type 2
6525  */
6526 static inline uint16_t hids_subevent_input_report_enable_get_con_handle(const uint8_t * event){
6527     return little_endian_read_16(event, 3);
6528 }
6529 /**
6530  * @brief Get field enable from event HIDS_SUBEVENT_INPUT_REPORT_ENABLE
6531  * @param event packet
6532  * @return enable
6533  * @note: btstack_type 1
6534  */
6535 static inline uint8_t hids_subevent_input_report_enable_get_enable(const uint8_t * event){
6536     return event[5];
6537 }
6538 
6539 
6540 
6541 /* API_END */
6542 
6543 #if defined __cplusplus
6544 }
6545 #endif
6546 
6547 #endif // __BTSTACK_EVENT_H
6548