xref: /btstack/src/btstack_event.h (revision 423c667c13e0fb5d595b3640a5d1a44fbdf8d998)
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 hsp event
74  * @param event packet
75  * @return subevent_code
76  */
77 static inline uint8_t hci_event_hsp_meta_get_subevent_code(const uint8_t * event){
78     return event[2];
79 }
80 /***
81  * @brief Get subevent code for hfp event
82  * @param event packet
83  * @return subevent_code
84  */
85 static inline uint8_t hci_event_hfp_meta_get_subevent_code(const uint8_t * event){
86     return event[2];
87 }
88 /***
89  * @brief Get subevent code for ancs event
90  * @param event packet
91  * @return subevent_code
92  */
93 static inline uint8_t hci_event_ancs_meta_get_subevent_code(const uint8_t * event){
94     return event[2];
95 }
96 /**
97  * @brief Get field status from event hci_event_inquiry_complete
98  * @param event packet
99  * @return status
100  * @note: btstack_type 1
101  */
102 static inline uint8_t hci_event_inquiry_complete_get_status(const uint8_t * event){
103     return event[2];
104 }
105 
106 /**
107  * @brief Get field num_responses from event hci_event_inquiry_result
108  * @param event packet
109  * @return num_responses
110  * @note: btstack_type 1
111  */
112 static inline uint8_t hci_event_inquiry_result_get_num_responses(const uint8_t * event){
113     return event[2];
114 }
115 /**
116  * @brief Get field bd_addr from event hci_event_inquiry_result
117  * @param event packet
118  * @param Pointer to storage for bd_addr
119  * @note: btstack_type B
120  */
121 static inline void hci_event_inquiry_result_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
122     reverse_bd_addr(&event[3], bd_addr);
123 }
124 /**
125  * @brief Get field page_scan_repetition_mode from event hci_event_inquiry_result
126  * @param event packet
127  * @return page_scan_repetition_mode
128  * @note: btstack_type 1
129  */
130 static inline uint8_t hci_event_inquiry_result_get_page_scan_repetition_mode(const uint8_t * event){
131     return event[9];
132 }
133 /**
134  * @brief Get field reserved1 from event hci_event_inquiry_result
135  * @param event packet
136  * @return reserved1
137  * @note: btstack_type 1
138  */
139 static inline uint8_t hci_event_inquiry_result_get_reserved1(const uint8_t * event){
140     return event[10];
141 }
142 /**
143  * @brief Get field reserved2 from event hci_event_inquiry_result
144  * @param event packet
145  * @return reserved2
146  * @note: btstack_type 1
147  */
148 static inline uint8_t hci_event_inquiry_result_get_reserved2(const uint8_t * event){
149     return event[11];
150 }
151 /**
152  * @brief Get field class_of_device from event hci_event_inquiry_result
153  * @param event packet
154  * @return class_of_device
155  * @note: btstack_type 3
156  */
157 static inline uint32_t hci_event_inquiry_result_get_class_of_device(const uint8_t * event){
158     return little_endian_read_24(event, 12);
159 }
160 /**
161  * @brief Get field clock_offset from event hci_event_inquiry_result
162  * @param event packet
163  * @return clock_offset
164  * @note: btstack_type 2
165  */
166 static inline uint16_t hci_event_inquiry_result_get_clock_offset(const uint8_t * event){
167     return little_endian_read_16(event, 15);
168 }
169 
170 /**
171  * @brief Get field status from event hci_event_connection_complete
172  * @param event packet
173  * @return status
174  * @note: btstack_type 1
175  */
176 static inline uint8_t hci_event_connection_complete_get_status(const uint8_t * event){
177     return event[2];
178 }
179 /**
180  * @brief Get field connection_handle from event hci_event_connection_complete
181  * @param event packet
182  * @return connection_handle
183  * @note: btstack_type 2
184  */
185 static inline uint16_t hci_event_connection_complete_get_connection_handle(const uint8_t * event){
186     return little_endian_read_16(event, 3);
187 }
188 /**
189  * @brief Get field bd_addr from event hci_event_connection_complete
190  * @param event packet
191  * @param Pointer to storage for bd_addr
192  * @note: btstack_type B
193  */
194 static inline void hci_event_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
195     reverse_bd_addr(&event[5], bd_addr);
196 }
197 /**
198  * @brief Get field link_type from event hci_event_connection_complete
199  * @param event packet
200  * @return link_type
201  * @note: btstack_type 1
202  */
203 static inline uint8_t hci_event_connection_complete_get_link_type(const uint8_t * event){
204     return event[11];
205 }
206 /**
207  * @brief Get field encryption_enabled from event hci_event_connection_complete
208  * @param event packet
209  * @return encryption_enabled
210  * @note: btstack_type 1
211  */
212 static inline uint8_t hci_event_connection_complete_get_encryption_enabled(const uint8_t * event){
213     return event[12];
214 }
215 
216 /**
217  * @brief Get field bd_addr from event hci_event_connection_request
218  * @param event packet
219  * @param Pointer to storage for bd_addr
220  * @note: btstack_type B
221  */
222 static inline void hci_event_connection_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
223     reverse_bd_addr(&event[2], bd_addr);
224 }
225 /**
226  * @brief Get field class_of_device from event hci_event_connection_request
227  * @param event packet
228  * @return class_of_device
229  * @note: btstack_type 3
230  */
231 static inline uint32_t hci_event_connection_request_get_class_of_device(const uint8_t * event){
232     return little_endian_read_24(event, 8);
233 }
234 /**
235  * @brief Get field link_type from event hci_event_connection_request
236  * @param event packet
237  * @return link_type
238  * @note: btstack_type 1
239  */
240 static inline uint8_t hci_event_connection_request_get_link_type(const uint8_t * event){
241     return event[11];
242 }
243 
244 /**
245  * @brief Get field status from event hci_event_disconnection_complete
246  * @param event packet
247  * @return status
248  * @note: btstack_type 1
249  */
250 static inline uint8_t hci_event_disconnection_complete_get_status(const uint8_t * event){
251     return event[2];
252 }
253 /**
254  * @brief Get field connection_handle from event hci_event_disconnection_complete
255  * @param event packet
256  * @return connection_handle
257  * @note: btstack_type 2
258  */
259 static inline uint16_t hci_event_disconnection_complete_get_connection_handle(const uint8_t * event){
260     return little_endian_read_16(event, 3);
261 }
262 /**
263  * @brief Get field reason from event hci_event_disconnection_complete
264  * @param event packet
265  * @return reason
266  * @note: btstack_type 1
267  */
268 static inline uint8_t hci_event_disconnection_complete_get_reason(const uint8_t * event){
269     return event[5];
270 }
271 
272 /**
273  * @brief Get field status from event hci_event_authentication_complete_event
274  * @param event packet
275  * @return status
276  * @note: btstack_type 1
277  */
278 static inline uint8_t hci_event_authentication_complete_event_get_status(const uint8_t * event){
279     return event[2];
280 }
281 /**
282  * @brief Get field connection_handle from event hci_event_authentication_complete_event
283  * @param event packet
284  * @return connection_handle
285  * @note: btstack_type 2
286  */
287 static inline uint16_t hci_event_authentication_complete_event_get_connection_handle(const uint8_t * event){
288     return little_endian_read_16(event, 3);
289 }
290 
291 /**
292  * @brief Get field status from event hci_event_remote_name_request_complete
293  * @param event packet
294  * @return status
295  * @note: btstack_type 1
296  */
297 //  static inline uint8_t hci_event_remote_name_request_complete_get_status(const uint8_t * event){
298 //      not implemented yet
299 //  }
300 /**
301  * @brief Get field bd_addr from event hci_event_remote_name_request_complete
302  * @param event packet
303  * @return bd_addr
304  * @note: btstack_type B
305  */
306 //  static inline bd_addr_t hci_event_remote_name_request_complete_get_bd_addr(const uint8_t * event){
307 //      not implemented yet
308 //  }
309 /**
310  * @brief Get field remote_name from event hci_event_remote_name_request_complete
311  * @param event packet
312  * @return remote_name
313  * @note: btstack_type N
314  */
315 //  static inline String hci_event_remote_name_request_complete_get_remote_name(const uint8_t * event){
316 //      not implemented yet
317 //  }
318 
319 /**
320  * @brief Get field status from event hci_event_encryption_change
321  * @param event packet
322  * @return status
323  * @note: btstack_type 1
324  */
325 static inline uint8_t hci_event_encryption_change_get_status(const uint8_t * event){
326     return event[2];
327 }
328 /**
329  * @brief Get field connection_handle from event hci_event_encryption_change
330  * @param event packet
331  * @return connection_handle
332  * @note: btstack_type 2
333  */
334 static inline uint16_t hci_event_encryption_change_get_connection_handle(const uint8_t * event){
335     return little_endian_read_16(event, 3);
336 }
337 /**
338  * @brief Get field encryption_enabled from event hci_event_encryption_change
339  * @param event packet
340  * @return encryption_enabled
341  * @note: btstack_type 1
342  */
343 static inline uint8_t hci_event_encryption_change_get_encryption_enabled(const uint8_t * event){
344     return event[5];
345 }
346 
347 /**
348  * @brief Get field status from event hci_event_change_connection_link_key_complete
349  * @param event packet
350  * @return status
351  * @note: btstack_type 1
352  */
353 static inline uint8_t hci_event_change_connection_link_key_complete_get_status(const uint8_t * event){
354     return event[2];
355 }
356 /**
357  * @brief Get field connection_handle from event hci_event_change_connection_link_key_complete
358  * @param event packet
359  * @return connection_handle
360  * @note: btstack_type 2
361  */
362 static inline uint16_t hci_event_change_connection_link_key_complete_get_connection_handle(const uint8_t * event){
363     return little_endian_read_16(event, 3);
364 }
365 
366 /**
367  * @brief Get field status from event hci_event_master_link_key_complete
368  * @param event packet
369  * @return status
370  * @note: btstack_type 1
371  */
372 static inline uint8_t hci_event_master_link_key_complete_get_status(const uint8_t * event){
373     return event[2];
374 }
375 /**
376  * @brief Get field connection_handle from event hci_event_master_link_key_complete
377  * @param event packet
378  * @return connection_handle
379  * @note: btstack_type 2
380  */
381 static inline uint16_t hci_event_master_link_key_complete_get_connection_handle(const uint8_t * event){
382     return little_endian_read_16(event, 3);
383 }
384 /**
385  * @brief Get field key_flag from event hci_event_master_link_key_complete
386  * @param event packet
387  * @return key_flag
388  * @note: btstack_type 1
389  */
390 static inline uint8_t hci_event_master_link_key_complete_get_key_flag(const uint8_t * event){
391     return event[5];
392 }
393 
394 /**
395  * @brief Get field num_hci_command_packets from event hci_event_command_complete
396  * @param event packet
397  * @return num_hci_command_packets
398  * @note: btstack_type 1
399  */
400 static inline uint8_t hci_event_command_complete_get_num_hci_command_packets(const uint8_t * event){
401     return event[2];
402 }
403 /**
404  * @brief Get field command_opcode from event hci_event_command_complete
405  * @param event packet
406  * @return command_opcode
407  * @note: btstack_type 2
408  */
409 static inline uint16_t hci_event_command_complete_get_command_opcode(const uint8_t * event){
410     return little_endian_read_16(event, 3);
411 }
412 /**
413  * @brief Get field return_parameters from event hci_event_command_complete
414  * @param event packet
415  * @return return_parameters
416  * @note: btstack_type R
417  */
418 static inline const uint8_t * hci_event_command_complete_get_return_parameters(const uint8_t * event){
419     return &event[5];
420 }
421 
422 /**
423  * @brief Get field status from event hci_event_command_status
424  * @param event packet
425  * @return status
426  * @note: btstack_type 1
427  */
428 static inline uint8_t hci_event_command_status_get_status(const uint8_t * event){
429     return event[2];
430 }
431 /**
432  * @brief Get field num_hci_command_packets from event hci_event_command_status
433  * @param event packet
434  * @return num_hci_command_packets
435  * @note: btstack_type 1
436  */
437 static inline uint8_t hci_event_command_status_get_num_hci_command_packets(const uint8_t * event){
438     return event[3];
439 }
440 /**
441  * @brief Get field command_opcode from event hci_event_command_status
442  * @param event packet
443  * @return command_opcode
444  * @note: btstack_type 2
445  */
446 static inline uint16_t hci_event_command_status_get_command_opcode(const uint8_t * event){
447     return little_endian_read_16(event, 4);
448 }
449 
450 /**
451  * @brief Get field hardware_code from event hci_event_hardware_error
452  * @param event packet
453  * @return hardware_code
454  * @note: btstack_type 1
455  */
456 static inline uint8_t hci_event_hardware_error_get_hardware_code(const uint8_t * event){
457     return event[2];
458 }
459 
460 /**
461  * @brief Get field status from event hci_event_role_change
462  * @param event packet
463  * @return status
464  * @note: btstack_type 1
465  */
466 static inline uint8_t hci_event_role_change_get_status(const uint8_t * event){
467     return event[2];
468 }
469 /**
470  * @brief Get field bd_addr from event hci_event_role_change
471  * @param event packet
472  * @param Pointer to storage for bd_addr
473  * @note: btstack_type B
474  */
475 static inline void hci_event_role_change_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
476     reverse_bd_addr(&event[3], bd_addr);
477 }
478 /**
479  * @brief Get field role from event hci_event_role_change
480  * @param event packet
481  * @return role
482  * @note: btstack_type 1
483  */
484 static inline uint8_t hci_event_role_change_get_role(const uint8_t * event){
485     return event[9];
486 }
487 
488 /**
489  * @brief Get field num_responses from event hci_event_inquiry_result_with_rssi
490  * @param event packet
491  * @return num_responses
492  * @note: btstack_type 1
493  */
494 static inline uint8_t hci_event_inquiry_result_with_rssi_get_num_responses(const uint8_t * event){
495     return event[2];
496 }
497 /**
498  * @brief Get field bd_addr from event hci_event_inquiry_result_with_rssi
499  * @param event packet
500  * @param Pointer to storage for bd_addr
501  * @note: btstack_type B
502  */
503 static inline void hci_event_inquiry_result_with_rssi_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
504     reverse_bd_addr(&event[3], bd_addr);
505 }
506 /**
507  * @brief Get field page_scan_repetition_mode from event hci_event_inquiry_result_with_rssi
508  * @param event packet
509  * @return page_scan_repetition_mode
510  * @note: btstack_type 1
511  */
512 static inline uint8_t hci_event_inquiry_result_with_rssi_get_page_scan_repetition_mode(const uint8_t * event){
513     return event[9];
514 }
515 /**
516  * @brief Get field reserved from event hci_event_inquiry_result_with_rssi
517  * @param event packet
518  * @return reserved
519  * @note: btstack_type 1
520  */
521 static inline uint8_t hci_event_inquiry_result_with_rssi_get_reserved(const uint8_t * event){
522     return event[10];
523 }
524 /**
525  * @brief Get field class_of_device from event hci_event_inquiry_result_with_rssi
526  * @param event packet
527  * @return class_of_device
528  * @note: btstack_type 3
529  */
530 static inline uint32_t hci_event_inquiry_result_with_rssi_get_class_of_device(const uint8_t * event){
531     return little_endian_read_24(event, 11);
532 }
533 /**
534  * @brief Get field clock_offset from event hci_event_inquiry_result_with_rssi
535  * @param event packet
536  * @return clock_offset
537  * @note: btstack_type 2
538  */
539 static inline uint16_t hci_event_inquiry_result_with_rssi_get_clock_offset(const uint8_t * event){
540     return little_endian_read_16(event, 14);
541 }
542 /**
543  * @brief Get field rssi from event hci_event_inquiry_result_with_rssi
544  * @param event packet
545  * @return rssi
546  * @note: btstack_type 1
547  */
548 static inline uint8_t hci_event_inquiry_result_with_rssi_get_rssi(const uint8_t * event){
549     return event[16];
550 }
551 
552 /**
553  * @brief Get field status from event hci_event_synchronous_connection_complete
554  * @param event packet
555  * @return status
556  * @note: btstack_type 1
557  */
558 static inline uint8_t hci_event_synchronous_connection_complete_get_status(const uint8_t * event){
559     return event[2];
560 }
561 /**
562  * @brief Get field handle from event hci_event_synchronous_connection_complete
563  * @param event packet
564  * @return handle
565  * @note: btstack_type H
566  */
567 static inline hci_con_handle_t hci_event_synchronous_connection_complete_get_handle(const uint8_t * event){
568     return little_endian_read_16(event, 3);
569 }
570 /**
571  * @brief Get field bd_addr from event hci_event_synchronous_connection_complete
572  * @param event packet
573  * @param Pointer to storage for bd_addr
574  * @note: btstack_type B
575  */
576 static inline void hci_event_synchronous_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
577     reverse_bd_addr(&event[5], bd_addr);
578 }
579 /**
580  * @brief Get field link_type from event hci_event_synchronous_connection_complete
581  * @param event packet
582  * @return link_type
583  * @note: btstack_type 1
584  */
585 static inline uint8_t hci_event_synchronous_connection_complete_get_link_type(const uint8_t * event){
586     return event[11];
587 }
588 /**
589  * @brief Get field transmission_interval from event hci_event_synchronous_connection_complete
590  * @param event packet
591  * @return transmission_interval
592  * @note: btstack_type 1
593  */
594 static inline uint8_t hci_event_synchronous_connection_complete_get_transmission_interval(const uint8_t * event){
595     return event[12];
596 }
597 /**
598  * @brief Get field retransmission_interval from event hci_event_synchronous_connection_complete
599  * @param event packet
600  * @return retransmission_interval
601  * @note: btstack_type 1
602  */
603 static inline uint8_t hci_event_synchronous_connection_complete_get_retransmission_interval(const uint8_t * event){
604     return event[13];
605 }
606 /**
607  * @brief Get field rx_packet_length from event hci_event_synchronous_connection_complete
608  * @param event packet
609  * @return rx_packet_length
610  * @note: btstack_type 2
611  */
612 static inline uint16_t hci_event_synchronous_connection_complete_get_rx_packet_length(const uint8_t * event){
613     return little_endian_read_16(event, 14);
614 }
615 /**
616  * @brief Get field tx_packet_length from event hci_event_synchronous_connection_complete
617  * @param event packet
618  * @return tx_packet_length
619  * @note: btstack_type 2
620  */
621 static inline uint16_t hci_event_synchronous_connection_complete_get_tx_packet_length(const uint8_t * event){
622     return little_endian_read_16(event, 16);
623 }
624 /**
625  * @brief Get field air_mode from event hci_event_synchronous_connection_complete
626  * @param event packet
627  * @return air_mode
628  * @note: btstack_type 1
629  */
630 static inline uint8_t hci_event_synchronous_connection_complete_get_air_mode(const uint8_t * event){
631     return event[18];
632 }
633 
634 /**
635  * @brief Get field num_responses from event hci_event_extended_inquiry_response
636  * @param event packet
637  * @return num_responses
638  * @note: btstack_type 1
639  */
640 static inline uint8_t hci_event_extended_inquiry_response_get_num_responses(const uint8_t * event){
641     return event[2];
642 }
643 /**
644  * @brief Get field bd_addr from event hci_event_extended_inquiry_response
645  * @param event packet
646  * @param Pointer to storage for bd_addr
647  * @note: btstack_type B
648  */
649 static inline void hci_event_extended_inquiry_response_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
650     reverse_bd_addr(&event[3], bd_addr);
651 }
652 /**
653  * @brief Get field page_scan_repetition_mode from event hci_event_extended_inquiry_response
654  * @param event packet
655  * @return page_scan_repetition_mode
656  * @note: btstack_type 1
657  */
658 static inline uint8_t hci_event_extended_inquiry_response_get_page_scan_repetition_mode(const uint8_t * event){
659     return event[9];
660 }
661 /**
662  * @brief Get field reserved from event hci_event_extended_inquiry_response
663  * @param event packet
664  * @return reserved
665  * @note: btstack_type 1
666  */
667 static inline uint8_t hci_event_extended_inquiry_response_get_reserved(const uint8_t * event){
668     return event[10];
669 }
670 /**
671  * @brief Get field class_of_device from event hci_event_extended_inquiry_response
672  * @param event packet
673  * @return class_of_device
674  * @note: btstack_type 3
675  */
676 static inline uint32_t hci_event_extended_inquiry_response_get_class_of_device(const uint8_t * event){
677     return little_endian_read_24(event, 11);
678 }
679 /**
680  * @brief Get field clock_offset from event hci_event_extended_inquiry_response
681  * @param event packet
682  * @return clock_offset
683  * @note: btstack_type 2
684  */
685 static inline uint16_t hci_event_extended_inquiry_response_get_clock_offset(const uint8_t * event){
686     return little_endian_read_16(event, 14);
687 }
688 /**
689  * @brief Get field rssi from event hci_event_extended_inquiry_response
690  * @param event packet
691  * @return rssi
692  * @note: btstack_type 1
693  */
694 static inline uint8_t hci_event_extended_inquiry_response_get_rssi(const uint8_t * event){
695     return event[16];
696 }
697 
698 /**
699  * @brief Get field status from event hci_event_encryption_key_refresh_complete
700  * @param event packet
701  * @return status
702  * @note: btstack_type 1
703  */
704 static inline uint8_t hci_event_encryption_key_refresh_complete_get_status(const uint8_t * event){
705     return event[2];
706 }
707 /**
708  * @brief Get field handle from event hci_event_encryption_key_refresh_complete
709  * @param event packet
710  * @return handle
711  * @note: btstack_type H
712  */
713 static inline hci_con_handle_t hci_event_encryption_key_refresh_complete_get_handle(const uint8_t * event){
714     return little_endian_read_16(event, 3);
715 }
716 
717 /**
718  * @brief Get field state from event btstack_event_state
719  * @param event packet
720  * @return state
721  * @note: btstack_type 1
722  */
723 static inline uint8_t btstack_event_state_get_state(const uint8_t * event){
724     return event[2];
725 }
726 
727 
728 /**
729  * @brief Get field discoverable from event btstack_event_discoverable_enabled
730  * @param event packet
731  * @return discoverable
732  * @note: btstack_type 1
733  */
734 static inline uint8_t btstack_event_discoverable_enabled_get_discoverable(const uint8_t * event){
735     return event[2];
736 }
737 
738 /**
739  * @brief Get field handle from event hci_event_sco_can_send_now
740  * @param event packet
741  * @param Pointer to storage for handle
742  * @note: btstack_type B
743  */
744 static inline void hci_event_sco_can_send_now_get_handle(const uint8_t * event, bd_addr_t handle){
745     reverse_bd_addr(&event[2], handle);
746 }
747 
748 /**
749  * @brief Get field status from event l2cap_event_channel_opened
750  * @param event packet
751  * @return status
752  * @note: btstack_type 1
753  */
754 static inline uint8_t l2cap_event_channel_opened_get_status(const uint8_t * event){
755     return event[2];
756 }
757 /**
758  * @brief Get field address from event l2cap_event_channel_opened
759  * @param event packet
760  * @param Pointer to storage for address
761  * @note: btstack_type B
762  */
763 static inline void l2cap_event_channel_opened_get_address(const uint8_t * event, bd_addr_t address){
764     reverse_bd_addr(&event[3], address);
765 }
766 /**
767  * @brief Get field handle from event l2cap_event_channel_opened
768  * @param event packet
769  * @return handle
770  * @note: btstack_type H
771  */
772 static inline hci_con_handle_t l2cap_event_channel_opened_get_handle(const uint8_t * event){
773     return little_endian_read_16(event, 9);
774 }
775 /**
776  * @brief Get field psm from event l2cap_event_channel_opened
777  * @param event packet
778  * @return psm
779  * @note: btstack_type 2
780  */
781 static inline uint16_t l2cap_event_channel_opened_get_psm(const uint8_t * event){
782     return little_endian_read_16(event, 11);
783 }
784 /**
785  * @brief Get field local_cid from event l2cap_event_channel_opened
786  * @param event packet
787  * @return local_cid
788  * @note: btstack_type 2
789  */
790 static inline uint16_t l2cap_event_channel_opened_get_local_cid(const uint8_t * event){
791     return little_endian_read_16(event, 13);
792 }
793 /**
794  * @brief Get field remote_cid from event l2cap_event_channel_opened
795  * @param event packet
796  * @return remote_cid
797  * @note: btstack_type 2
798  */
799 static inline uint16_t l2cap_event_channel_opened_get_remote_cid(const uint8_t * event){
800     return little_endian_read_16(event, 15);
801 }
802 /**
803  * @brief Get field local_mtu from event l2cap_event_channel_opened
804  * @param event packet
805  * @return local_mtu
806  * @note: btstack_type 2
807  */
808 static inline uint16_t l2cap_event_channel_opened_get_local_mtu(const uint8_t * event){
809     return little_endian_read_16(event, 17);
810 }
811 /**
812  * @brief Get field remote_mtu from event l2cap_event_channel_opened
813  * @param event packet
814  * @return remote_mtu
815  * @note: btstack_type 2
816  */
817 static inline uint16_t l2cap_event_channel_opened_get_remote_mtu(const uint8_t * event){
818     return little_endian_read_16(event, 19);
819 }
820 /**
821  * @brief Get field flush_timeout from event l2cap_event_channel_opened
822  * @param event packet
823  * @return flush_timeout
824  * @note: btstack_type 2
825  */
826 static inline uint16_t l2cap_event_channel_opened_get_flush_timeout(const uint8_t * event){
827     return little_endian_read_16(event, 21);
828 }
829 
830 /**
831  * @brief Get field local_cid from event l2cap_event_channel_closed
832  * @param event packet
833  * @return local_cid
834  * @note: btstack_type 2
835  */
836 static inline uint16_t l2cap_event_channel_closed_get_local_cid(const uint8_t * event){
837     return little_endian_read_16(event, 2);
838 }
839 
840 /**
841  * @brief Get field status from event l2cap_event_incoming_connection
842  * @param event packet
843  * @return status
844  * @note: btstack_type 1
845  */
846 static inline uint8_t l2cap_event_incoming_connection_get_status(const uint8_t * event){
847     return event[2];
848 }
849 /**
850  * @brief Get field address from event l2cap_event_incoming_connection
851  * @param event packet
852  * @param Pointer to storage for address
853  * @note: btstack_type B
854  */
855 static inline void l2cap_event_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){
856     reverse_bd_addr(&event[3], address);
857 }
858 /**
859  * @brief Get field handle from event l2cap_event_incoming_connection
860  * @param event packet
861  * @return handle
862  * @note: btstack_type H
863  */
864 static inline hci_con_handle_t l2cap_event_incoming_connection_get_handle(const uint8_t * event){
865     return little_endian_read_16(event, 9);
866 }
867 /**
868  * @brief Get field psm from event l2cap_event_incoming_connection
869  * @param event packet
870  * @return psm
871  * @note: btstack_type 2
872  */
873 static inline uint16_t l2cap_event_incoming_connection_get_psm(const uint8_t * event){
874     return little_endian_read_16(event, 11);
875 }
876 /**
877  * @brief Get field local_cid from event l2cap_event_incoming_connection
878  * @param event packet
879  * @return local_cid
880  * @note: btstack_type 2
881  */
882 static inline uint16_t l2cap_event_incoming_connection_get_local_cid(const uint8_t * event){
883     return little_endian_read_16(event, 13);
884 }
885 /**
886  * @brief Get field remote_cid from event l2cap_event_incoming_connection
887  * @param event packet
888  * @return remote_cid
889  * @note: btstack_type 2
890  */
891 static inline uint16_t l2cap_event_incoming_connection_get_remote_cid(const uint8_t * event){
892     return little_endian_read_16(event, 15);
893 }
894 
895 /**
896  * @brief Get field status from event l2cap_event_service_registered
897  * @param event packet
898  * @return status
899  * @note: btstack_type 1
900  */
901 static inline uint8_t l2cap_event_service_registered_get_status(const uint8_t * event){
902     return event[2];
903 }
904 /**
905  * @brief Get field psm from event l2cap_event_service_registered
906  * @param event packet
907  * @return psm
908  * @note: btstack_type 2
909  */
910 static inline uint16_t l2cap_event_service_registered_get_psm(const uint8_t * event){
911     return little_endian_read_16(event, 3);
912 }
913 
914 /**
915  * @brief Get field handle from event l2cap_event_connection_parameter_update_request
916  * @param event packet
917  * @return handle
918  * @note: btstack_type H
919  */
920 static inline hci_con_handle_t l2cap_event_connection_parameter_update_request_get_handle(const uint8_t * event){
921     return little_endian_read_16(event, 2);
922 }
923 /**
924  * @brief Get field interval_min from event l2cap_event_connection_parameter_update_request
925  * @param event packet
926  * @return interval_min
927  * @note: btstack_type 2
928  */
929 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_min(const uint8_t * event){
930     return little_endian_read_16(event, 4);
931 }
932 /**
933  * @brief Get field interval_max from event l2cap_event_connection_parameter_update_request
934  * @param event packet
935  * @return interval_max
936  * @note: btstack_type 2
937  */
938 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_max(const uint8_t * event){
939     return little_endian_read_16(event, 6);
940 }
941 /**
942  * @brief Get field latencey from event l2cap_event_connection_parameter_update_request
943  * @param event packet
944  * @return latencey
945  * @note: btstack_type 2
946  */
947 static inline uint16_t l2cap_event_connection_parameter_update_request_get_latencey(const uint8_t * event){
948     return little_endian_read_16(event, 8);
949 }
950 /**
951  * @brief Get field timeout_multiplier from event l2cap_event_connection_parameter_update_request
952  * @param event packet
953  * @return timeout_multiplier
954  * @note: btstack_type 2
955  */
956 static inline uint16_t l2cap_event_connection_parameter_update_request_get_timeout_multiplier(const uint8_t * event){
957     return little_endian_read_16(event, 10);
958 }
959 
960 /**
961  * @brief Get field handle from event l2cap_event_connection_parameter_update_response
962  * @param event packet
963  * @return handle
964  * @note: btstack_type H
965  */
966 static inline hci_con_handle_t l2cap_event_connection_parameter_update_response_get_handle(const uint8_t * event){
967     return little_endian_read_16(event, 2);
968 }
969 
970 /**
971  * @brief Get field local_cid from event l2cap_event_can_send_now
972  * @param event packet
973  * @return local_cid
974  * @note: btstack_type 2
975  */
976 static inline uint16_t l2cap_event_can_send_now_get_local_cid(const uint8_t * event){
977     return little_endian_read_16(event, 2);
978 }
979 
980 /**
981  * @brief Get field status from event rfcomm_event_channel_opened
982  * @param event packet
983  * @return status
984  * @note: btstack_type 1
985  */
986 static inline uint8_t rfcomm_event_channel_opened_get_status(const uint8_t * event){
987     return event[2];
988 }
989 /**
990  * @brief Get field bd_addr from event rfcomm_event_channel_opened
991  * @param event packet
992  * @param Pointer to storage for bd_addr
993  * @note: btstack_type B
994  */
995 static inline void rfcomm_event_channel_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
996     reverse_bd_addr(&event[3], bd_addr);
997 }
998 /**
999  * @brief Get field con_handle from event rfcomm_event_channel_opened
1000  * @param event packet
1001  * @return con_handle
1002  * @note: btstack_type 2
1003  */
1004 static inline uint16_t rfcomm_event_channel_opened_get_con_handle(const uint8_t * event){
1005     return little_endian_read_16(event, 9);
1006 }
1007 /**
1008  * @brief Get field server_channel from event rfcomm_event_channel_opened
1009  * @param event packet
1010  * @return server_channel
1011  * @note: btstack_type 1
1012  */
1013 static inline uint8_t rfcomm_event_channel_opened_get_server_channel(const uint8_t * event){
1014     return event[11];
1015 }
1016 /**
1017  * @brief Get field rfcomm_cid from event rfcomm_event_channel_opened
1018  * @param event packet
1019  * @return rfcomm_cid
1020  * @note: btstack_type 2
1021  */
1022 static inline uint16_t rfcomm_event_channel_opened_get_rfcomm_cid(const uint8_t * event){
1023     return little_endian_read_16(event, 12);
1024 }
1025 /**
1026  * @brief Get field max_frame_size from event rfcomm_event_channel_opened
1027  * @param event packet
1028  * @return max_frame_size
1029  * @note: btstack_type 2
1030  */
1031 static inline uint16_t rfcomm_event_channel_opened_get_max_frame_size(const uint8_t * event){
1032     return little_endian_read_16(event, 14);
1033 }
1034 
1035 /**
1036  * @brief Get field rfcomm_cid from event rfcomm_event_channel_closed
1037  * @param event packet
1038  * @return rfcomm_cid
1039  * @note: btstack_type 2
1040  */
1041 static inline uint16_t rfcomm_event_channel_closed_get_rfcomm_cid(const uint8_t * event){
1042     return little_endian_read_16(event, 2);
1043 }
1044 
1045 /**
1046  * @brief Get field bd_addr from event rfcomm_event_incoming_connection
1047  * @param event packet
1048  * @param Pointer to storage for bd_addr
1049  * @note: btstack_type B
1050  */
1051 static inline void rfcomm_event_incoming_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
1052     reverse_bd_addr(&event[2], bd_addr);
1053 }
1054 /**
1055  * @brief Get field server_channel from event rfcomm_event_incoming_connection
1056  * @param event packet
1057  * @return server_channel
1058  * @note: btstack_type 1
1059  */
1060 static inline uint8_t rfcomm_event_incoming_connection_get_server_channel(const uint8_t * event){
1061     return event[8];
1062 }
1063 /**
1064  * @brief Get field rfcomm_cid from event rfcomm_event_incoming_connection
1065  * @param event packet
1066  * @return rfcomm_cid
1067  * @note: btstack_type 2
1068  */
1069 static inline uint16_t rfcomm_event_incoming_connection_get_rfcomm_cid(const uint8_t * event){
1070     return little_endian_read_16(event, 9);
1071 }
1072 
1073 /**
1074  * @brief Get field rfcomm_cid from event rfcomm_event_remote_line_status
1075  * @param event packet
1076  * @return rfcomm_cid
1077  * @note: btstack_type 2
1078  */
1079 static inline uint16_t rfcomm_event_remote_line_status_get_rfcomm_cid(const uint8_t * event){
1080     return little_endian_read_16(event, 2);
1081 }
1082 /**
1083  * @brief Get field line_status from event rfcomm_event_remote_line_status
1084  * @param event packet
1085  * @return line_status
1086  * @note: btstack_type 1
1087  */
1088 static inline uint8_t rfcomm_event_remote_line_status_get_line_status(const uint8_t * event){
1089     return event[4];
1090 }
1091 
1092 /**
1093  * @brief Get field rfcomm_cid from event rfcomm_event_credits
1094  * @param event packet
1095  * @return rfcomm_cid
1096  * @note: btstack_type 2
1097  */
1098 static inline uint16_t rfcomm_event_credits_get_rfcomm_cid(const uint8_t * event){
1099     return little_endian_read_16(event, 2);
1100 }
1101 /**
1102  * @brief Get field credits from event rfcomm_event_credits
1103  * @param event packet
1104  * @return credits
1105  * @note: btstack_type 1
1106  */
1107 static inline uint8_t rfcomm_event_credits_get_credits(const uint8_t * event){
1108     return event[4];
1109 }
1110 
1111 /**
1112  * @brief Get field status from event rfcomm_event_service_registered
1113  * @param event packet
1114  * @return status
1115  * @note: btstack_type 1
1116  */
1117 static inline uint8_t rfcomm_event_service_registered_get_status(const uint8_t * event){
1118     return event[2];
1119 }
1120 /**
1121  * @brief Get field channel_id from event rfcomm_event_service_registered
1122  * @param event packet
1123  * @return channel_id
1124  * @note: btstack_type 1
1125  */
1126 static inline uint8_t rfcomm_event_service_registered_get_channel_id(const uint8_t * event){
1127     return event[3];
1128 }
1129 
1130 /**
1131  * @brief Get field status from event rfcomm_event_persistent_channel
1132  * @param event packet
1133  * @return status
1134  * @note: btstack_type 1
1135  */
1136 static inline uint8_t rfcomm_event_persistent_channel_get_status(const uint8_t * event){
1137     return event[2];
1138 }
1139 /**
1140  * @brief Get field server_channel_id from event rfcomm_event_persistent_channel
1141  * @param event packet
1142  * @return server_channel_id
1143  * @note: btstack_type 1
1144  */
1145 static inline uint8_t rfcomm_event_persistent_channel_get_server_channel_id(const uint8_t * event){
1146     return event[3];
1147 }
1148 
1149 /**
1150  * @brief Get field rfcomm_cid from event rfcomm_event_remote_modem_status
1151  * @param event packet
1152  * @return rfcomm_cid
1153  * @note: btstack_type 2
1154  */
1155 static inline uint16_t rfcomm_event_remote_modem_status_get_rfcomm_cid(const uint8_t * event){
1156     return little_endian_read_16(event, 2);
1157 }
1158 /**
1159  * @brief Get field modem_status from event rfcomm_event_remote_modem_status
1160  * @param event packet
1161  * @return modem_status
1162  * @note: btstack_type 1
1163  */
1164 static inline uint8_t rfcomm_event_remote_modem_status_get_modem_status(const uint8_t * event){
1165     return event[4];
1166 }
1167 
1168 /**
1169  * @brief Get field rfcomm_cid from event rfcomm_event_can_send_now
1170  * @param event packet
1171  * @return rfcomm_cid
1172  * @note: btstack_type 2
1173  */
1174 static inline uint16_t rfcomm_event_can_send_now_get_rfcomm_cid(const uint8_t * event){
1175     return little_endian_read_16(event, 2);
1176 }
1177 
1178 /**
1179  * @brief Get field status from event sdp_event_service_registered
1180  * @param event packet
1181  * @return status
1182  * @note: btstack_type 1
1183  */
1184 static inline uint8_t sdp_event_service_registered_get_status(const uint8_t * event){
1185     return event[2];
1186 }
1187 /**
1188  * @brief Get field service_record_handle from event sdp_event_service_registered
1189  * @param event packet
1190  * @return service_record_handle
1191  * @note: btstack_type 4
1192  */
1193 static inline uint32_t sdp_event_service_registered_get_service_record_handle(const uint8_t * event){
1194     return little_endian_read_32(event, 3);
1195 }
1196 
1197 /**
1198  * @brief Get field status from event sdp_event_query_complete
1199  * @param event packet
1200  * @return status
1201  * @note: btstack_type 1
1202  */
1203 static inline uint8_t sdp_event_query_complete_get_status(const uint8_t * event){
1204     return event[2];
1205 }
1206 
1207 /**
1208  * @brief Get field rfcomm_channel from event sdp_event_query_rfcomm_service
1209  * @param event packet
1210  * @return rfcomm_channel
1211  * @note: btstack_type 1
1212  */
1213 static inline uint8_t sdp_event_query_rfcomm_service_get_rfcomm_channel(const uint8_t * event){
1214     return event[2];
1215 }
1216 /**
1217  * @brief Get field name from event sdp_event_query_rfcomm_service
1218  * @param event packet
1219  * @return name
1220  * @note: btstack_type T
1221  */
1222 static inline const char * sdp_event_query_rfcomm_service_get_name(const uint8_t * event){
1223     return (const char *) &event[3];
1224 }
1225 
1226 /**
1227  * @brief Get field record_id from event sdp_event_query_attribute_byte
1228  * @param event packet
1229  * @return record_id
1230  * @note: btstack_type 2
1231  */
1232 static inline uint16_t sdp_event_query_attribute_byte_get_record_id(const uint8_t * event){
1233     return little_endian_read_16(event, 2);
1234 }
1235 /**
1236  * @brief Get field attribute_id from event sdp_event_query_attribute_byte
1237  * @param event packet
1238  * @return attribute_id
1239  * @note: btstack_type 2
1240  */
1241 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_id(const uint8_t * event){
1242     return little_endian_read_16(event, 4);
1243 }
1244 /**
1245  * @brief Get field attribute_length from event sdp_event_query_attribute_byte
1246  * @param event packet
1247  * @return attribute_length
1248  * @note: btstack_type 2
1249  */
1250 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_length(const uint8_t * event){
1251     return little_endian_read_16(event, 6);
1252 }
1253 /**
1254  * @brief Get field data_offset from event sdp_event_query_attribute_byte
1255  * @param event packet
1256  * @return data_offset
1257  * @note: btstack_type 2
1258  */
1259 static inline uint16_t sdp_event_query_attribute_byte_get_data_offset(const uint8_t * event){
1260     return little_endian_read_16(event, 8);
1261 }
1262 /**
1263  * @brief Get field data from event sdp_event_query_attribute_byte
1264  * @param event packet
1265  * @return data
1266  * @note: btstack_type 1
1267  */
1268 static inline uint8_t sdp_event_query_attribute_byte_get_data(const uint8_t * event){
1269     return event[10];
1270 }
1271 
1272 /**
1273  * @brief Get field record_id from event sdp_event_query_attribute_value
1274  * @param event packet
1275  * @return record_id
1276  * @note: btstack_type 2
1277  */
1278 static inline uint16_t sdp_event_query_attribute_value_get_record_id(const uint8_t * event){
1279     return little_endian_read_16(event, 2);
1280 }
1281 /**
1282  * @brief Get field attribute_id from event sdp_event_query_attribute_value
1283  * @param event packet
1284  * @return attribute_id
1285  * @note: btstack_type 2
1286  */
1287 static inline uint16_t sdp_event_query_attribute_value_get_attribute_id(const uint8_t * event){
1288     return little_endian_read_16(event, 4);
1289 }
1290 /**
1291  * @brief Get field attribute_length from event sdp_event_query_attribute_value
1292  * @param event packet
1293  * @return attribute_length
1294  * @note: btstack_type L
1295  */
1296 static inline int sdp_event_query_attribute_value_get_attribute_length(const uint8_t * event){
1297     return little_endian_read_16(event, 6);
1298 }
1299 /**
1300  * @brief Get field attribute_value from event sdp_event_query_attribute_value
1301  * @param event packet
1302  * @return attribute_value
1303  * @note: btstack_type V
1304  */
1305 static inline const uint8_t * sdp_event_query_attribute_value_get_attribute_value(const uint8_t * event){
1306     return &event[8];
1307 }
1308 
1309 /**
1310  * @brief Get field total_count from event sdp_event_query_service_record_handle
1311  * @param event packet
1312  * @return total_count
1313  * @note: btstack_type 2
1314  */
1315 static inline uint16_t sdp_event_query_service_record_handle_get_total_count(const uint8_t * event){
1316     return little_endian_read_16(event, 2);
1317 }
1318 /**
1319  * @brief Get field record_index from event sdp_event_query_service_record_handle
1320  * @param event packet
1321  * @return record_index
1322  * @note: btstack_type 2
1323  */
1324 static inline uint16_t sdp_event_query_service_record_handle_get_record_index(const uint8_t * event){
1325     return little_endian_read_16(event, 4);
1326 }
1327 /**
1328  * @brief Get field record_handle from event sdp_event_query_service_record_handle
1329  * @param event packet
1330  * @return record_handle
1331  * @note: btstack_type 4
1332  */
1333 static inline uint32_t sdp_event_query_service_record_handle_get_record_handle(const uint8_t * event){
1334     return little_endian_read_32(event, 6);
1335 }
1336 
1337 #ifdef ENABLE_BLE
1338 /**
1339  * @brief Get field handle from event gatt_event_query_complete
1340  * @param event packet
1341  * @return handle
1342  * @note: btstack_type H
1343  */
1344 static inline hci_con_handle_t gatt_event_query_complete_get_handle(const uint8_t * event){
1345     return little_endian_read_16(event, 2);
1346 }
1347 /**
1348  * @brief Get field status from event gatt_event_query_complete
1349  * @param event packet
1350  * @return status
1351  * @note: btstack_type 1
1352  */
1353 static inline uint8_t gatt_event_query_complete_get_status(const uint8_t * event){
1354     return event[4];
1355 }
1356 #endif
1357 
1358 #ifdef ENABLE_BLE
1359 /**
1360  * @brief Get field handle from event gatt_event_service_query_result
1361  * @param event packet
1362  * @return handle
1363  * @note: btstack_type H
1364  */
1365 static inline hci_con_handle_t gatt_event_service_query_result_get_handle(const uint8_t * event){
1366     return little_endian_read_16(event, 2);
1367 }
1368 /**
1369  * @brief Get field service from event gatt_event_service_query_result
1370  * @param event packet
1371  * @param Pointer to storage for service
1372  * @note: btstack_type X
1373  */
1374 static inline void gatt_event_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){
1375     gatt_client_deserialize_service(event, 4, service);
1376 }
1377 #endif
1378 
1379 #ifdef ENABLE_BLE
1380 /**
1381  * @brief Get field handle from event gatt_event_characteristic_query_result
1382  * @param event packet
1383  * @return handle
1384  * @note: btstack_type H
1385  */
1386 static inline hci_con_handle_t gatt_event_characteristic_query_result_get_handle(const uint8_t * event){
1387     return little_endian_read_16(event, 2);
1388 }
1389 /**
1390  * @brief Get field characteristic from event gatt_event_characteristic_query_result
1391  * @param event packet
1392  * @param Pointer to storage for characteristic
1393  * @note: btstack_type Y
1394  */
1395 static inline void gatt_event_characteristic_query_result_get_characteristic(const uint8_t * event, gatt_client_characteristic_t * characteristic){
1396     gatt_client_deserialize_characteristic(event, 4, characteristic);
1397 }
1398 #endif
1399 
1400 #ifdef ENABLE_BLE
1401 /**
1402  * @brief Get field handle from event gatt_event_included_service_query_result
1403  * @param event packet
1404  * @return handle
1405  * @note: btstack_type H
1406  */
1407 static inline hci_con_handle_t gatt_event_included_service_query_result_get_handle(const uint8_t * event){
1408     return little_endian_read_16(event, 2);
1409 }
1410 /**
1411  * @brief Get field include_handle from event gatt_event_included_service_query_result
1412  * @param event packet
1413  * @return include_handle
1414  * @note: btstack_type 2
1415  */
1416 static inline uint16_t gatt_event_included_service_query_result_get_include_handle(const uint8_t * event){
1417     return little_endian_read_16(event, 4);
1418 }
1419 /**
1420  * @brief Get field service from event gatt_event_included_service_query_result
1421  * @param event packet
1422  * @param Pointer to storage for service
1423  * @note: btstack_type X
1424  */
1425 static inline void gatt_event_included_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){
1426     gatt_client_deserialize_service(event, 6, service);
1427 }
1428 #endif
1429 
1430 #ifdef ENABLE_BLE
1431 /**
1432  * @brief Get field handle from event gatt_event_all_characteristic_descriptors_query_result
1433  * @param event packet
1434  * @return handle
1435  * @note: btstack_type H
1436  */
1437 static inline hci_con_handle_t gatt_event_all_characteristic_descriptors_query_result_get_handle(const uint8_t * event){
1438     return little_endian_read_16(event, 2);
1439 }
1440 /**
1441  * @brief Get field characteristic_descriptor from event gatt_event_all_characteristic_descriptors_query_result
1442  * @param event packet
1443  * @param Pointer to storage for characteristic_descriptor
1444  * @note: btstack_type Z
1445  */
1446 static inline void gatt_event_all_characteristic_descriptors_query_result_get_characteristic_descriptor(const uint8_t * event, gatt_client_characteristic_descriptor_t * characteristic_descriptor){
1447     gatt_client_deserialize_characteristic_descriptor(event, 4, characteristic_descriptor);
1448 }
1449 #endif
1450 
1451 #ifdef ENABLE_BLE
1452 /**
1453  * @brief Get field handle from event gatt_event_characteristic_value_query_result
1454  * @param event packet
1455  * @return handle
1456  * @note: btstack_type H
1457  */
1458 static inline hci_con_handle_t gatt_event_characteristic_value_query_result_get_handle(const uint8_t * event){
1459     return little_endian_read_16(event, 2);
1460 }
1461 /**
1462  * @brief Get field value_handle from event gatt_event_characteristic_value_query_result
1463  * @param event packet
1464  * @return value_handle
1465  * @note: btstack_type 2
1466  */
1467 static inline uint16_t gatt_event_characteristic_value_query_result_get_value_handle(const uint8_t * event){
1468     return little_endian_read_16(event, 4);
1469 }
1470 /**
1471  * @brief Get field value_length from event gatt_event_characteristic_value_query_result
1472  * @param event packet
1473  * @return value_length
1474  * @note: btstack_type L
1475  */
1476 static inline int gatt_event_characteristic_value_query_result_get_value_length(const uint8_t * event){
1477     return little_endian_read_16(event, 6);
1478 }
1479 /**
1480  * @brief Get field value from event gatt_event_characteristic_value_query_result
1481  * @param event packet
1482  * @return value
1483  * @note: btstack_type V
1484  */
1485 static inline const uint8_t * gatt_event_characteristic_value_query_result_get_value(const uint8_t * event){
1486     return &event[8];
1487 }
1488 #endif
1489 
1490 #ifdef ENABLE_BLE
1491 /**
1492  * @brief Get field handle from event gatt_event_long_characteristic_value_query_result
1493  * @param event packet
1494  * @return handle
1495  * @note: btstack_type H
1496  */
1497 static inline hci_con_handle_t gatt_event_long_characteristic_value_query_result_get_handle(const uint8_t * event){
1498     return little_endian_read_16(event, 2);
1499 }
1500 /**
1501  * @brief Get field value_handle from event gatt_event_long_characteristic_value_query_result
1502  * @param event packet
1503  * @return value_handle
1504  * @note: btstack_type 2
1505  */
1506 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_handle(const uint8_t * event){
1507     return little_endian_read_16(event, 4);
1508 }
1509 /**
1510  * @brief Get field value_offset from event gatt_event_long_characteristic_value_query_result
1511  * @param event packet
1512  * @return value_offset
1513  * @note: btstack_type 2
1514  */
1515 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_offset(const uint8_t * event){
1516     return little_endian_read_16(event, 6);
1517 }
1518 /**
1519  * @brief Get field value_length from event gatt_event_long_characteristic_value_query_result
1520  * @param event packet
1521  * @return value_length
1522  * @note: btstack_type L
1523  */
1524 static inline int gatt_event_long_characteristic_value_query_result_get_value_length(const uint8_t * event){
1525     return little_endian_read_16(event, 8);
1526 }
1527 /**
1528  * @brief Get field value from event gatt_event_long_characteristic_value_query_result
1529  * @param event packet
1530  * @return value
1531  * @note: btstack_type V
1532  */
1533 static inline const uint8_t * gatt_event_long_characteristic_value_query_result_get_value(const uint8_t * event){
1534     return &event[10];
1535 }
1536 #endif
1537 
1538 #ifdef ENABLE_BLE
1539 /**
1540  * @brief Get field handle from event gatt_event_notification
1541  * @param event packet
1542  * @return handle
1543  * @note: btstack_type H
1544  */
1545 static inline hci_con_handle_t gatt_event_notification_get_handle(const uint8_t * event){
1546     return little_endian_read_16(event, 2);
1547 }
1548 /**
1549  * @brief Get field value_handle from event gatt_event_notification
1550  * @param event packet
1551  * @return value_handle
1552  * @note: btstack_type 2
1553  */
1554 static inline uint16_t gatt_event_notification_get_value_handle(const uint8_t * event){
1555     return little_endian_read_16(event, 4);
1556 }
1557 /**
1558  * @brief Get field value_length from event gatt_event_notification
1559  * @param event packet
1560  * @return value_length
1561  * @note: btstack_type L
1562  */
1563 static inline int gatt_event_notification_get_value_length(const uint8_t * event){
1564     return little_endian_read_16(event, 6);
1565 }
1566 /**
1567  * @brief Get field value from event gatt_event_notification
1568  * @param event packet
1569  * @return value
1570  * @note: btstack_type V
1571  */
1572 static inline const uint8_t * gatt_event_notification_get_value(const uint8_t * event){
1573     return &event[8];
1574 }
1575 #endif
1576 
1577 #ifdef ENABLE_BLE
1578 /**
1579  * @brief Get field handle from event gatt_event_indication
1580  * @param event packet
1581  * @return handle
1582  * @note: btstack_type H
1583  */
1584 static inline hci_con_handle_t gatt_event_indication_get_handle(const uint8_t * event){
1585     return little_endian_read_16(event, 2);
1586 }
1587 /**
1588  * @brief Get field value_handle from event gatt_event_indication
1589  * @param event packet
1590  * @return value_handle
1591  * @note: btstack_type 2
1592  */
1593 static inline uint16_t gatt_event_indication_get_value_handle(const uint8_t * event){
1594     return little_endian_read_16(event, 4);
1595 }
1596 /**
1597  * @brief Get field value_length from event gatt_event_indication
1598  * @param event packet
1599  * @return value_length
1600  * @note: btstack_type L
1601  */
1602 static inline int gatt_event_indication_get_value_length(const uint8_t * event){
1603     return little_endian_read_16(event, 6);
1604 }
1605 /**
1606  * @brief Get field value from event gatt_event_indication
1607  * @param event packet
1608  * @return value
1609  * @note: btstack_type V
1610  */
1611 static inline const uint8_t * gatt_event_indication_get_value(const uint8_t * event){
1612     return &event[8];
1613 }
1614 #endif
1615 
1616 #ifdef ENABLE_BLE
1617 /**
1618  * @brief Get field descriptor_handle from event gatt_event_characteristic_descriptor_query_result
1619  * @param event packet
1620  * @return descriptor_handle
1621  * @note: btstack_type H
1622  */
1623 static inline hci_con_handle_t gatt_event_characteristic_descriptor_query_result_get_descriptor_handle(const uint8_t * event){
1624     return little_endian_read_16(event, 2);
1625 }
1626 /**
1627  * @brief Get field descriptor_length from event gatt_event_characteristic_descriptor_query_result
1628  * @param event packet
1629  * @return descriptor_length
1630  * @note: btstack_type 2
1631  */
1632 static inline uint16_t gatt_event_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){
1633     return little_endian_read_16(event, 4);
1634 }
1635 /**
1636  * @brief Get field descriptor from event gatt_event_characteristic_descriptor_query_result
1637  * @param event packet
1638  * @return descriptor
1639  * @note: btstack_type L
1640  */
1641 static inline int gatt_event_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){
1642     return little_endian_read_16(event, 6);
1643 }
1644 #endif
1645 
1646 #ifdef ENABLE_BLE
1647 /**
1648  * @brief Get field handle from event gatt_event_long_characteristic_descriptor_query_result
1649  * @param event packet
1650  * @return handle
1651  * @note: btstack_type H
1652  */
1653 static inline hci_con_handle_t gatt_event_long_characteristic_descriptor_query_result_get_handle(const uint8_t * event){
1654     return little_endian_read_16(event, 2);
1655 }
1656 /**
1657  * @brief Get field descriptor_offset from event gatt_event_long_characteristic_descriptor_query_result
1658  * @param event packet
1659  * @return descriptor_offset
1660  * @note: btstack_type 2
1661  */
1662 static inline uint16_t gatt_event_long_characteristic_descriptor_query_result_get_descriptor_offset(const uint8_t * event){
1663     return little_endian_read_16(event, 4);
1664 }
1665 /**
1666  * @brief Get field descriptor_length from event gatt_event_long_characteristic_descriptor_query_result
1667  * @param event packet
1668  * @return descriptor_length
1669  * @note: btstack_type L
1670  */
1671 static inline int gatt_event_long_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){
1672     return little_endian_read_16(event, 6);
1673 }
1674 /**
1675  * @brief Get field descriptor from event gatt_event_long_characteristic_descriptor_query_result
1676  * @param event packet
1677  * @return descriptor
1678  * @note: btstack_type V
1679  */
1680 static inline const uint8_t * gatt_event_long_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){
1681     return &event[8];
1682 }
1683 #endif
1684 
1685 #ifdef ENABLE_BLE
1686 /**
1687  * @brief Get field handle from event gatt_event_mtu
1688  * @param event packet
1689  * @return handle
1690  * @note: btstack_type H
1691  */
1692 static inline hci_con_handle_t gatt_event_mtu_get_handle(const uint8_t * event){
1693     return little_endian_read_16(event, 2);
1694 }
1695 /**
1696  * @brief Get field MTU from event gatt_event_mtu
1697  * @param event packet
1698  * @return MTU
1699  * @note: btstack_type 2
1700  */
1701 static inline uint16_t gatt_event_mtu_get_MTU(const uint8_t * event){
1702     return little_endian_read_16(event, 4);
1703 }
1704 #endif
1705 
1706 /**
1707  * @brief Get field status from event bnep_event_service_registered
1708  * @param event packet
1709  * @return status
1710  * @note: btstack_type 1
1711  */
1712 static inline uint8_t bnep_event_service_registered_get_status(const uint8_t * event){
1713     return event[2];
1714 }
1715 /**
1716  * @brief Get field service_uuid from event bnep_event_service_registered
1717  * @param event packet
1718  * @return service_uuid
1719  * @note: btstack_type 2
1720  */
1721 static inline uint16_t bnep_event_service_registered_get_service_uuid(const uint8_t * event){
1722     return little_endian_read_16(event, 3);
1723 }
1724 
1725 /**
1726  * @brief Get field status from event bnep_event_channel_opened
1727  * @param event packet
1728  * @return status
1729  * @note: btstack_type 1
1730  */
1731 static inline uint8_t bnep_event_channel_opened_get_status(const uint8_t * event){
1732     return event[2];
1733 }
1734 /**
1735  * @brief Get field bnep_cid from event bnep_event_channel_opened
1736  * @param event packet
1737  * @return bnep_cid
1738  * @note: btstack_type 2
1739  */
1740 static inline uint16_t bnep_event_channel_opened_get_bnep_cid(const uint8_t * event){
1741     return little_endian_read_16(event, 3);
1742 }
1743 /**
1744  * @brief Get field source_uuid from event bnep_event_channel_opened
1745  * @param event packet
1746  * @return source_uuid
1747  * @note: btstack_type 2
1748  */
1749 static inline uint16_t bnep_event_channel_opened_get_source_uuid(const uint8_t * event){
1750     return little_endian_read_16(event, 5);
1751 }
1752 /**
1753  * @brief Get field destination_uuid from event bnep_event_channel_opened
1754  * @param event packet
1755  * @return destination_uuid
1756  * @note: btstack_type 2
1757  */
1758 static inline uint16_t bnep_event_channel_opened_get_destination_uuid(const uint8_t * event){
1759     return little_endian_read_16(event, 7);
1760 }
1761 /**
1762  * @brief Get field mtu from event bnep_event_channel_opened
1763  * @param event packet
1764  * @return mtu
1765  * @note: btstack_type 2
1766  */
1767 static inline uint16_t bnep_event_channel_opened_get_mtu(const uint8_t * event){
1768     return little_endian_read_16(event, 9);
1769 }
1770 /**
1771  * @brief Get field remote_address from event bnep_event_channel_opened
1772  * @param event packet
1773  * @param Pointer to storage for remote_address
1774  * @note: btstack_type B
1775  */
1776 static inline void bnep_event_channel_opened_get_remote_address(const uint8_t * event, bd_addr_t remote_address){
1777     reverse_bd_addr(&event[11], remote_address);
1778 }
1779 
1780 /**
1781  * @brief Get field bnep_cid from event bnep_event_channel_closed
1782  * @param event packet
1783  * @return bnep_cid
1784  * @note: btstack_type 2
1785  */
1786 static inline uint16_t bnep_event_channel_closed_get_bnep_cid(const uint8_t * event){
1787     return little_endian_read_16(event, 2);
1788 }
1789 /**
1790  * @brief Get field source_uuid from event bnep_event_channel_closed
1791  * @param event packet
1792  * @return source_uuid
1793  * @note: btstack_type 2
1794  */
1795 static inline uint16_t bnep_event_channel_closed_get_source_uuid(const uint8_t * event){
1796     return little_endian_read_16(event, 4);
1797 }
1798 /**
1799  * @brief Get field destination_uuid from event bnep_event_channel_closed
1800  * @param event packet
1801  * @return destination_uuid
1802  * @note: btstack_type 2
1803  */
1804 static inline uint16_t bnep_event_channel_closed_get_destination_uuid(const uint8_t * event){
1805     return little_endian_read_16(event, 6);
1806 }
1807 /**
1808  * @brief Get field remote_address from event bnep_event_channel_closed
1809  * @param event packet
1810  * @param Pointer to storage for remote_address
1811  * @note: btstack_type B
1812  */
1813 static inline void bnep_event_channel_closed_get_remote_address(const uint8_t * event, bd_addr_t remote_address){
1814     reverse_bd_addr(&event[8], remote_address);
1815 }
1816 
1817 /**
1818  * @brief Get field bnep_cid from event bnep_event_channel_timeout
1819  * @param event packet
1820  * @return bnep_cid
1821  * @note: btstack_type 2
1822  */
1823 static inline uint16_t bnep_event_channel_timeout_get_bnep_cid(const uint8_t * event){
1824     return little_endian_read_16(event, 2);
1825 }
1826 /**
1827  * @brief Get field source_uuid from event bnep_event_channel_timeout
1828  * @param event packet
1829  * @return source_uuid
1830  * @note: btstack_type 2
1831  */
1832 static inline uint16_t bnep_event_channel_timeout_get_source_uuid(const uint8_t * event){
1833     return little_endian_read_16(event, 4);
1834 }
1835 /**
1836  * @brief Get field destination_uuid from event bnep_event_channel_timeout
1837  * @param event packet
1838  * @return destination_uuid
1839  * @note: btstack_type 2
1840  */
1841 static inline uint16_t bnep_event_channel_timeout_get_destination_uuid(const uint8_t * event){
1842     return little_endian_read_16(event, 6);
1843 }
1844 /**
1845  * @brief Get field remote_address from event bnep_event_channel_timeout
1846  * @param event packet
1847  * @param Pointer to storage for remote_address
1848  * @note: btstack_type B
1849  */
1850 static inline void bnep_event_channel_timeout_get_remote_address(const uint8_t * event, bd_addr_t remote_address){
1851     reverse_bd_addr(&event[8], remote_address);
1852 }
1853 /**
1854  * @brief Get field channel_state from event bnep_event_channel_timeout
1855  * @param event packet
1856  * @return channel_state
1857  * @note: btstack_type 1
1858  */
1859 static inline uint8_t bnep_event_channel_timeout_get_channel_state(const uint8_t * event){
1860     return event[14];
1861 }
1862 
1863 /**
1864  * @brief Get field bnep_cid from event bnep_event_can_send_now
1865  * @param event packet
1866  * @return bnep_cid
1867  * @note: btstack_type 2
1868  */
1869 static inline uint16_t bnep_event_can_send_now_get_bnep_cid(const uint8_t * event){
1870     return little_endian_read_16(event, 2);
1871 }
1872 /**
1873  * @brief Get field source_uuid from event bnep_event_can_send_now
1874  * @param event packet
1875  * @return source_uuid
1876  * @note: btstack_type 2
1877  */
1878 static inline uint16_t bnep_event_can_send_now_get_source_uuid(const uint8_t * event){
1879     return little_endian_read_16(event, 4);
1880 }
1881 /**
1882  * @brief Get field destination_uuid from event bnep_event_can_send_now
1883  * @param event packet
1884  * @return destination_uuid
1885  * @note: btstack_type 2
1886  */
1887 static inline uint16_t bnep_event_can_send_now_get_destination_uuid(const uint8_t * event){
1888     return little_endian_read_16(event, 6);
1889 }
1890 /**
1891  * @brief Get field remote_address from event bnep_event_can_send_now
1892  * @param event packet
1893  * @param Pointer to storage for remote_address
1894  * @note: btstack_type B
1895  */
1896 static inline void bnep_event_can_send_now_get_remote_address(const uint8_t * event, bd_addr_t remote_address){
1897     reverse_bd_addr(&event[8], remote_address);
1898 }
1899 
1900 #ifdef ENABLE_BLE
1901 /**
1902  * @brief Get field handle from event sm_event_just_works_request
1903  * @param event packet
1904  * @return handle
1905  * @note: btstack_type H
1906  */
1907 static inline hci_con_handle_t sm_event_just_works_request_get_handle(const uint8_t * event){
1908     return little_endian_read_16(event, 2);
1909 }
1910 /**
1911  * @brief Get field addr_type from event sm_event_just_works_request
1912  * @param event packet
1913  * @return addr_type
1914  * @note: btstack_type 1
1915  */
1916 static inline uint8_t sm_event_just_works_request_get_addr_type(const uint8_t * event){
1917     return event[4];
1918 }
1919 /**
1920  * @brief Get field address from event sm_event_just_works_request
1921  * @param event packet
1922  * @param Pointer to storage for address
1923  * @note: btstack_type B
1924  */
1925 static inline void sm_event_just_works_request_get_address(const uint8_t * event, bd_addr_t address){
1926     reverse_bd_addr(&event[5], address);
1927 }
1928 #endif
1929 
1930 #ifdef ENABLE_BLE
1931 /**
1932  * @brief Get field handle from event sm_event_just_works_cancel
1933  * @param event packet
1934  * @return handle
1935  * @note: btstack_type H
1936  */
1937 static inline hci_con_handle_t sm_event_just_works_cancel_get_handle(const uint8_t * event){
1938     return little_endian_read_16(event, 2);
1939 }
1940 /**
1941  * @brief Get field addr_type from event sm_event_just_works_cancel
1942  * @param event packet
1943  * @return addr_type
1944  * @note: btstack_type 1
1945  */
1946 static inline uint8_t sm_event_just_works_cancel_get_addr_type(const uint8_t * event){
1947     return event[4];
1948 }
1949 /**
1950  * @brief Get field address from event sm_event_just_works_cancel
1951  * @param event packet
1952  * @param Pointer to storage for address
1953  * @note: btstack_type B
1954  */
1955 static inline void sm_event_just_works_cancel_get_address(const uint8_t * event, bd_addr_t address){
1956     reverse_bd_addr(&event[5], address);
1957 }
1958 #endif
1959 
1960 #ifdef ENABLE_BLE
1961 /**
1962  * @brief Get field handle from event sm_event_passkey_display_number
1963  * @param event packet
1964  * @return handle
1965  * @note: btstack_type H
1966  */
1967 static inline hci_con_handle_t sm_event_passkey_display_number_get_handle(const uint8_t * event){
1968     return little_endian_read_16(event, 2);
1969 }
1970 /**
1971  * @brief Get field addr_type from event sm_event_passkey_display_number
1972  * @param event packet
1973  * @return addr_type
1974  * @note: btstack_type 1
1975  */
1976 static inline uint8_t sm_event_passkey_display_number_get_addr_type(const uint8_t * event){
1977     return event[4];
1978 }
1979 /**
1980  * @brief Get field address from event sm_event_passkey_display_number
1981  * @param event packet
1982  * @param Pointer to storage for address
1983  * @note: btstack_type B
1984  */
1985 static inline void sm_event_passkey_display_number_get_address(const uint8_t * event, bd_addr_t address){
1986     reverse_bd_addr(&event[5], address);
1987 }
1988 /**
1989  * @brief Get field passkey from event sm_event_passkey_display_number
1990  * @param event packet
1991  * @return passkey
1992  * @note: btstack_type 4
1993  */
1994 static inline uint32_t sm_event_passkey_display_number_get_passkey(const uint8_t * event){
1995     return little_endian_read_32(event, 11);
1996 }
1997 #endif
1998 
1999 #ifdef ENABLE_BLE
2000 /**
2001  * @brief Get field handle from event sm_event_passkey_display_cancel
2002  * @param event packet
2003  * @return handle
2004  * @note: btstack_type H
2005  */
2006 static inline hci_con_handle_t sm_event_passkey_display_cancel_get_handle(const uint8_t * event){
2007     return little_endian_read_16(event, 2);
2008 }
2009 /**
2010  * @brief Get field addr_type from event sm_event_passkey_display_cancel
2011  * @param event packet
2012  * @return addr_type
2013  * @note: btstack_type 1
2014  */
2015 static inline uint8_t sm_event_passkey_display_cancel_get_addr_type(const uint8_t * event){
2016     return event[4];
2017 }
2018 /**
2019  * @brief Get field address from event sm_event_passkey_display_cancel
2020  * @param event packet
2021  * @param Pointer to storage for address
2022  * @note: btstack_type B
2023  */
2024 static inline void sm_event_passkey_display_cancel_get_address(const uint8_t * event, bd_addr_t address){
2025     reverse_bd_addr(&event[5], address);
2026 }
2027 #endif
2028 
2029 #ifdef ENABLE_BLE
2030 /**
2031  * @brief Get field handle from event sm_event_passkey_input_number
2032  * @param event packet
2033  * @return handle
2034  * @note: btstack_type H
2035  */
2036 static inline hci_con_handle_t sm_event_passkey_input_number_get_handle(const uint8_t * event){
2037     return little_endian_read_16(event, 2);
2038 }
2039 /**
2040  * @brief Get field addr_type from event sm_event_passkey_input_number
2041  * @param event packet
2042  * @return addr_type
2043  * @note: btstack_type 1
2044  */
2045 static inline uint8_t sm_event_passkey_input_number_get_addr_type(const uint8_t * event){
2046     return event[4];
2047 }
2048 /**
2049  * @brief Get field address from event sm_event_passkey_input_number
2050  * @param event packet
2051  * @param Pointer to storage for address
2052  * @note: btstack_type B
2053  */
2054 static inline void sm_event_passkey_input_number_get_address(const uint8_t * event, bd_addr_t address){
2055     reverse_bd_addr(&event[5], address);
2056 }
2057 #endif
2058 
2059 #ifdef ENABLE_BLE
2060 /**
2061  * @brief Get field handle from event sm_event_passkey_input_cancel
2062  * @param event packet
2063  * @return handle
2064  * @note: btstack_type H
2065  */
2066 static inline hci_con_handle_t sm_event_passkey_input_cancel_get_handle(const uint8_t * event){
2067     return little_endian_read_16(event, 2);
2068 }
2069 /**
2070  * @brief Get field addr_type from event sm_event_passkey_input_cancel
2071  * @param event packet
2072  * @return addr_type
2073  * @note: btstack_type 1
2074  */
2075 static inline uint8_t sm_event_passkey_input_cancel_get_addr_type(const uint8_t * event){
2076     return event[4];
2077 }
2078 /**
2079  * @brief Get field address from event sm_event_passkey_input_cancel
2080  * @param event packet
2081  * @param Pointer to storage for address
2082  * @note: btstack_type B
2083  */
2084 static inline void sm_event_passkey_input_cancel_get_address(const uint8_t * event, bd_addr_t address){
2085     reverse_bd_addr(&event[5], address);
2086 }
2087 #endif
2088 
2089 #ifdef ENABLE_BLE
2090 /**
2091  * @brief Get field handle from event sm_event_identity_resolving_started
2092  * @param event packet
2093  * @return handle
2094  * @note: btstack_type H
2095  */
2096 static inline hci_con_handle_t sm_event_identity_resolving_started_get_handle(const uint8_t * event){
2097     return little_endian_read_16(event, 2);
2098 }
2099 /**
2100  * @brief Get field addr_type from event sm_event_identity_resolving_started
2101  * @param event packet
2102  * @return addr_type
2103  * @note: btstack_type 1
2104  */
2105 static inline uint8_t sm_event_identity_resolving_started_get_addr_type(const uint8_t * event){
2106     return event[4];
2107 }
2108 /**
2109  * @brief Get field address from event sm_event_identity_resolving_started
2110  * @param event packet
2111  * @param Pointer to storage for address
2112  * @note: btstack_type B
2113  */
2114 static inline void sm_event_identity_resolving_started_get_address(const uint8_t * event, bd_addr_t address){
2115     reverse_bd_addr(&event[5], address);
2116 }
2117 #endif
2118 
2119 #ifdef ENABLE_BLE
2120 /**
2121  * @brief Get field handle from event sm_event_identity_resolving_failed
2122  * @param event packet
2123  * @return handle
2124  * @note: btstack_type H
2125  */
2126 static inline hci_con_handle_t sm_event_identity_resolving_failed_get_handle(const uint8_t * event){
2127     return little_endian_read_16(event, 2);
2128 }
2129 /**
2130  * @brief Get field addr_type from event sm_event_identity_resolving_failed
2131  * @param event packet
2132  * @return addr_type
2133  * @note: btstack_type 1
2134  */
2135 static inline uint8_t sm_event_identity_resolving_failed_get_addr_type(const uint8_t * event){
2136     return event[4];
2137 }
2138 /**
2139  * @brief Get field address from event sm_event_identity_resolving_failed
2140  * @param event packet
2141  * @param Pointer to storage for address
2142  * @note: btstack_type B
2143  */
2144 static inline void sm_event_identity_resolving_failed_get_address(const uint8_t * event, bd_addr_t address){
2145     reverse_bd_addr(&event[5], address);
2146 }
2147 #endif
2148 
2149 #ifdef ENABLE_BLE
2150 /**
2151  * @brief Get field handle from event sm_event_identity_resolving_succeeded
2152  * @param event packet
2153  * @return handle
2154  * @note: btstack_type H
2155  */
2156 static inline hci_con_handle_t sm_event_identity_resolving_succeeded_get_handle(const uint8_t * event){
2157     return little_endian_read_16(event, 2);
2158 }
2159 /**
2160  * @brief Get field addr_type from event sm_event_identity_resolving_succeeded
2161  * @param event packet
2162  * @return addr_type
2163  * @note: btstack_type 1
2164  */
2165 static inline uint8_t sm_event_identity_resolving_succeeded_get_addr_type(const uint8_t * event){
2166     return event[4];
2167 }
2168 /**
2169  * @brief Get field address from event sm_event_identity_resolving_succeeded
2170  * @param event packet
2171  * @param Pointer to storage for address
2172  * @note: btstack_type B
2173  */
2174 static inline void sm_event_identity_resolving_succeeded_get_address(const uint8_t * event, bd_addr_t address){
2175     reverse_bd_addr(&event[5], address);
2176 }
2177 /**
2178  * @brief Get field le_device_db_index from event sm_event_identity_resolving_succeeded
2179  * @param event packet
2180  * @return le_device_db_index
2181  * @note: btstack_type 2
2182  */
2183 static inline uint16_t sm_event_identity_resolving_succeeded_get_le_device_db_index(const uint8_t * event){
2184     return little_endian_read_16(event, 11);
2185 }
2186 #endif
2187 
2188 #ifdef ENABLE_BLE
2189 /**
2190  * @brief Get field handle from event sm_event_authorization_request
2191  * @param event packet
2192  * @return handle
2193  * @note: btstack_type H
2194  */
2195 static inline hci_con_handle_t sm_event_authorization_request_get_handle(const uint8_t * event){
2196     return little_endian_read_16(event, 2);
2197 }
2198 /**
2199  * @brief Get field addr_type from event sm_event_authorization_request
2200  * @param event packet
2201  * @return addr_type
2202  * @note: btstack_type 1
2203  */
2204 static inline uint8_t sm_event_authorization_request_get_addr_type(const uint8_t * event){
2205     return event[4];
2206 }
2207 /**
2208  * @brief Get field address from event sm_event_authorization_request
2209  * @param event packet
2210  * @param Pointer to storage for address
2211  * @note: btstack_type B
2212  */
2213 static inline void sm_event_authorization_request_get_address(const uint8_t * event, bd_addr_t address){
2214     reverse_bd_addr(&event[5], address);
2215 }
2216 #endif
2217 
2218 #ifdef ENABLE_BLE
2219 /**
2220  * @brief Get field handle from event sm_event_authorization_result
2221  * @param event packet
2222  * @return handle
2223  * @note: btstack_type H
2224  */
2225 static inline hci_con_handle_t sm_event_authorization_result_get_handle(const uint8_t * event){
2226     return little_endian_read_16(event, 2);
2227 }
2228 /**
2229  * @brief Get field addr_type from event sm_event_authorization_result
2230  * @param event packet
2231  * @return addr_type
2232  * @note: btstack_type 1
2233  */
2234 static inline uint8_t sm_event_authorization_result_get_addr_type(const uint8_t * event){
2235     return event[4];
2236 }
2237 /**
2238  * @brief Get field address from event sm_event_authorization_result
2239  * @param event packet
2240  * @param Pointer to storage for address
2241  * @note: btstack_type B
2242  */
2243 static inline void sm_event_authorization_result_get_address(const uint8_t * event, bd_addr_t address){
2244     reverse_bd_addr(&event[5], address);
2245 }
2246 /**
2247  * @brief Get field authorization_result from event sm_event_authorization_result
2248  * @param event packet
2249  * @return authorization_result
2250  * @note: btstack_type 1
2251  */
2252 static inline uint8_t sm_event_authorization_result_get_authorization_result(const uint8_t * event){
2253     return event[11];
2254 }
2255 #endif
2256 
2257 /**
2258  * @brief Get field advertising_event_type from event gap_event_advertising_report
2259  * @param event packet
2260  * @return advertising_event_type
2261  * @note: btstack_type 1
2262  */
2263 static inline uint8_t gap_event_advertising_report_get_advertising_event_type(const uint8_t * event){
2264     return event[2];
2265 }
2266 /**
2267  * @brief Get field address_type from event gap_event_advertising_report
2268  * @param event packet
2269  * @return address_type
2270  * @note: btstack_type 1
2271  */
2272 static inline uint8_t gap_event_advertising_report_get_address_type(const uint8_t * event){
2273     return event[3];
2274 }
2275 /**
2276  * @brief Get field address from event gap_event_advertising_report
2277  * @param event packet
2278  * @param Pointer to storage for address
2279  * @note: btstack_type B
2280  */
2281 static inline void gap_event_advertising_report_get_address(const uint8_t * event, bd_addr_t address){
2282     reverse_bd_addr(&event[4], address);
2283 }
2284 /**
2285  * @brief Get field rssi from event gap_event_advertising_report
2286  * @param event packet
2287  * @return rssi
2288  * @note: btstack_type 1
2289  */
2290 static inline uint8_t gap_event_advertising_report_get_rssi(const uint8_t * event){
2291     return event[10];
2292 }
2293 /**
2294  * @brief Get field data_length from event gap_event_advertising_report
2295  * @param event packet
2296  * @return data_length
2297  * @note: btstack_type J
2298  */
2299 static inline int gap_event_advertising_report_get_data_length(const uint8_t * event){
2300     return event[11];
2301 }
2302 /**
2303  * @brief Get field data from event gap_event_advertising_report
2304  * @param event packet
2305  * @return data
2306  * @note: btstack_type V
2307  */
2308 static inline const uint8_t * gap_event_advertising_report_get_data(const uint8_t * event){
2309     return &event[12];
2310 }
2311 
2312 /**
2313  * @brief Get field status from event hci_subevent_le_connection_complete
2314  * @param event packet
2315  * @return status
2316  * @note: btstack_type 1
2317  */
2318 static inline uint8_t hci_subevent_le_connection_complete_get_status(const uint8_t * event){
2319     return event[3];
2320 }
2321 /**
2322  * @brief Get field connection_handle from event hci_subevent_le_connection_complete
2323  * @param event packet
2324  * @return connection_handle
2325  * @note: btstack_type H
2326  */
2327 static inline hci_con_handle_t hci_subevent_le_connection_complete_get_connection_handle(const uint8_t * event){
2328     return little_endian_read_16(event, 4);
2329 }
2330 /**
2331  * @brief Get field role from event hci_subevent_le_connection_complete
2332  * @param event packet
2333  * @return role
2334  * @note: btstack_type 1
2335  */
2336 static inline uint8_t hci_subevent_le_connection_complete_get_role(const uint8_t * event){
2337     return event[6];
2338 }
2339 /**
2340  * @brief Get field peer_address_type from event hci_subevent_le_connection_complete
2341  * @param event packet
2342  * @return peer_address_type
2343  * @note: btstack_type 1
2344  */
2345 static inline uint8_t hci_subevent_le_connection_complete_get_peer_address_type(const uint8_t * event){
2346     return event[7];
2347 }
2348 /**
2349  * @brief Get field peer_address from event hci_subevent_le_connection_complete
2350  * @param event packet
2351  * @param Pointer to storage for peer_address
2352  * @note: btstack_type B
2353  */
2354 static inline void hci_subevent_le_connection_complete_get_peer_address(const uint8_t * event, bd_addr_t peer_address){
2355     reverse_bd_addr(&event[8], peer_address);
2356 }
2357 /**
2358  * @brief Get field conn_interval from event hci_subevent_le_connection_complete
2359  * @param event packet
2360  * @return conn_interval
2361  * @note: btstack_type 2
2362  */
2363 static inline uint16_t hci_subevent_le_connection_complete_get_conn_interval(const uint8_t * event){
2364     return little_endian_read_16(event, 14);
2365 }
2366 /**
2367  * @brief Get field conn_latency from event hci_subevent_le_connection_complete
2368  * @param event packet
2369  * @return conn_latency
2370  * @note: btstack_type 2
2371  */
2372 static inline uint16_t hci_subevent_le_connection_complete_get_conn_latency(const uint8_t * event){
2373     return little_endian_read_16(event, 16);
2374 }
2375 /**
2376  * @brief Get field supervision_timeout from event hci_subevent_le_connection_complete
2377  * @param event packet
2378  * @return supervision_timeout
2379  * @note: btstack_type 2
2380  */
2381 static inline uint16_t hci_subevent_le_connection_complete_get_supervision_timeout(const uint8_t * event){
2382     return little_endian_read_16(event, 18);
2383 }
2384 /**
2385  * @brief Get field master_clock_accuracy from event hci_subevent_le_connection_complete
2386  * @param event packet
2387  * @return master_clock_accuracy
2388  * @note: btstack_type 1
2389  */
2390 static inline uint8_t hci_subevent_le_connection_complete_get_master_clock_accuracy(const uint8_t * event){
2391     return event[20];
2392 }
2393 
2394 /**
2395  * @brief Get field status from event hsp_subevent_rfcomm_connection_complete
2396  * @param event packet
2397  * @return status
2398  * @note: btstack_type 1
2399  */
2400 static inline uint8_t hsp_subevent_rfcomm_connection_complete_get_status(const uint8_t * event){
2401     return event[3];
2402 }
2403 
2404 /**
2405  * @brief Get field status from event hsp_subevent_rfcomm_disconnection_complete
2406  * @param event packet
2407  * @return status
2408  * @note: btstack_type 1
2409  */
2410 static inline uint8_t hsp_subevent_rfcomm_disconnection_complete_get_status(const uint8_t * event){
2411     return event[3];
2412 }
2413 
2414 /**
2415  * @brief Get field status from event hsp_subevent_audio_connection_complete
2416  * @param event packet
2417  * @return status
2418  * @note: btstack_type 1
2419  */
2420 static inline uint8_t hsp_subevent_audio_connection_complete_get_status(const uint8_t * event){
2421     return event[3];
2422 }
2423 /**
2424  * @brief Get field handle from event hsp_subevent_audio_connection_complete
2425  * @param event packet
2426  * @return handle
2427  * @note: btstack_type H
2428  */
2429 static inline hci_con_handle_t hsp_subevent_audio_connection_complete_get_handle(const uint8_t * event){
2430     return little_endian_read_16(event, 4);
2431 }
2432 
2433 /**
2434  * @brief Get field status from event hsp_subevent_audio_disconnection_complete
2435  * @param event packet
2436  * @return status
2437  * @note: btstack_type 1
2438  */
2439 static inline uint8_t hsp_subevent_audio_disconnection_complete_get_status(const uint8_t * event){
2440     return event[3];
2441 }
2442 
2443 
2444 /**
2445  * @brief Get field gain from event hsp_subevent_microphone_gain_changed
2446  * @param event packet
2447  * @return gain
2448  * @note: btstack_type 1
2449  */
2450 static inline uint8_t hsp_subevent_microphone_gain_changed_get_gain(const uint8_t * event){
2451     return event[3];
2452 }
2453 
2454 /**
2455  * @brief Get field gain from event hsp_subevent_speaker_gain_changed
2456  * @param event packet
2457  * @return gain
2458  * @note: btstack_type 1
2459  */
2460 static inline uint8_t hsp_subevent_speaker_gain_changed_get_gain(const uint8_t * event){
2461     return event[3];
2462 }
2463 
2464 /**
2465  * @brief Get field value_length from event hsp_subevent_hs_command
2466  * @param event packet
2467  * @return value_length
2468  * @note: btstack_type J
2469  */
2470 static inline int hsp_subevent_hs_command_get_value_length(const uint8_t * event){
2471     return event[3];
2472 }
2473 /**
2474  * @brief Get field value from event hsp_subevent_hs_command
2475  * @param event packet
2476  * @return value
2477  * @note: btstack_type V
2478  */
2479 static inline const uint8_t * hsp_subevent_hs_command_get_value(const uint8_t * event){
2480     return &event[4];
2481 }
2482 
2483 /**
2484  * @brief Get field value_length from event hsp_subevent_ag_indication
2485  * @param event packet
2486  * @return value_length
2487  * @note: btstack_type J
2488  */
2489 static inline int hsp_subevent_ag_indication_get_value_length(const uint8_t * event){
2490     return event[3];
2491 }
2492 /**
2493  * @brief Get field value from event hsp_subevent_ag_indication
2494  * @param event packet
2495  * @return value
2496  * @note: btstack_type V
2497  */
2498 static inline const uint8_t * hsp_subevent_ag_indication_get_value(const uint8_t * event){
2499     return &event[4];
2500 }
2501 
2502 /**
2503  * @brief Get field status from event hfp_subevent_service_level_connection_established
2504  * @param event packet
2505  * @return status
2506  * @note: btstack_type 1
2507  */
2508 static inline uint8_t hfp_subevent_service_level_connection_established_get_status(const uint8_t * event){
2509     return event[3];
2510 }
2511 
2512 
2513 /**
2514  * @brief Get field status from event hfp_subevent_audio_connection_established
2515  * @param event packet
2516  * @return status
2517  * @note: btstack_type 1
2518  */
2519 static inline uint8_t hfp_subevent_audio_connection_established_get_status(const uint8_t * event){
2520     return event[3];
2521 }
2522 
2523 
2524 /**
2525  * @brief Get field status from event hfp_subevent_complete
2526  * @param event packet
2527  * @return status
2528  * @note: btstack_type 1
2529  */
2530 static inline uint8_t hfp_subevent_complete_get_status(const uint8_t * event){
2531     return event[3];
2532 }
2533 
2534 /**
2535  * @brief Get field indicator_index from event hfp_subevent_ag_indicator_status_changed
2536  * @param event packet
2537  * @return indicator_index
2538  * @note: btstack_type 1
2539  */
2540 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_index(const uint8_t * event){
2541     return event[3];
2542 }
2543 /**
2544  * @brief Get field indicator_status from event hfp_subevent_ag_indicator_status_changed
2545  * @param event packet
2546  * @return indicator_status
2547  * @note: btstack_type 1
2548  */
2549 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_status(const uint8_t * event){
2550     return event[4];
2551 }
2552 /**
2553  * @brief Get field indicator_name from event hfp_subevent_ag_indicator_status_changed
2554  * @param event packet
2555  * @return indicator_name
2556  * @note: btstack_type T
2557  */
2558 static inline const char * hfp_subevent_ag_indicator_status_changed_get_indicator_name(const uint8_t * event){
2559     return (const char *) &event[5];
2560 }
2561 
2562 /**
2563  * @brief Get field network_operator_mode from event hfp_subevent_network_operator_changed
2564  * @param event packet
2565  * @return network_operator_mode
2566  * @note: btstack_type 1
2567  */
2568 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_mode(const uint8_t * event){
2569     return event[3];
2570 }
2571 /**
2572  * @brief Get field network_operator_format from event hfp_subevent_network_operator_changed
2573  * @param event packet
2574  * @return network_operator_format
2575  * @note: btstack_type 1
2576  */
2577 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_format(const uint8_t * event){
2578     return event[4];
2579 }
2580 /**
2581  * @brief Get field network_operator_name from event hfp_subevent_network_operator_changed
2582  * @param event packet
2583  * @return network_operator_name
2584  * @note: btstack_type 1
2585  */
2586 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_name(const uint8_t * event){
2587     return event[5];
2588 }
2589 
2590 /**
2591  * @brief Get field error from event hfp_subevent_extended_audio_gateway_error
2592  * @param event packet
2593  * @return error
2594  * @note: btstack_type 1
2595  */
2596 static inline uint8_t hfp_subevent_extended_audio_gateway_error_get_error(const uint8_t * event){
2597     return event[3];
2598 }
2599 
2600 /**
2601  * @brief Get field status from event hfp_subevent_codecs_connection_complete
2602  * @param event packet
2603  * @return status
2604  * @note: btstack_type 1
2605  */
2606 static inline uint8_t hfp_subevent_codecs_connection_complete_get_status(const uint8_t * event){
2607     return event[3];
2608 }
2609 
2610 
2611 
2612 
2613 /**
2614  * @brief Get field number from event hfp_subevent_place_call_with_number
2615  * @param event packet
2616  * @return number
2617  * @note: btstack_type T
2618  */
2619 static inline const char * hfp_subevent_place_call_with_number_get_number(const uint8_t * event){
2620     return (const char *) &event[3];
2621 }
2622 
2623 
2624 /**
2625  * @brief Get field number from event hfp_subevent_number_for_voice_tag
2626  * @param event packet
2627  * @return number
2628  * @note: btstack_type T
2629  */
2630 static inline const char * hfp_subevent_number_for_voice_tag_get_number(const uint8_t * event){
2631     return (const char *) &event[3];
2632 }
2633 
2634 /**
2635  * @brief Get field dtmf from event hfp_subevent_transmit_dtmf_codes
2636  * @param event packet
2637  * @return dtmf
2638  * @note: btstack_type T
2639  */
2640 static inline const char * hfp_subevent_transmit_dtmf_codes_get_dtmf(const uint8_t * event){
2641     return (const char *) &event[3];
2642 }
2643 
2644 
2645 
2646 
2647 /**
2648  * @brief Get field status from event hfp_subevent_speaker_volume
2649  * @param event packet
2650  * @return status
2651  * @note: btstack_type 1
2652  */
2653 static inline uint8_t hfp_subevent_speaker_volume_get_status(const uint8_t * event){
2654     return event[3];
2655 }
2656 /**
2657  * @brief Get field gain from event hfp_subevent_speaker_volume
2658  * @param event packet
2659  * @return gain
2660  * @note: btstack_type 1
2661  */
2662 static inline uint8_t hfp_subevent_speaker_volume_get_gain(const uint8_t * event){
2663     return event[4];
2664 }
2665 
2666 /**
2667  * @brief Get field status from event hfp_subevent_microphone_volume
2668  * @param event packet
2669  * @return status
2670  * @note: btstack_type 1
2671  */
2672 static inline uint8_t hfp_subevent_microphone_volume_get_status(const uint8_t * event){
2673     return event[3];
2674 }
2675 /**
2676  * @brief Get field gain from event hfp_subevent_microphone_volume
2677  * @param event packet
2678  * @return gain
2679  * @note: btstack_type 1
2680  */
2681 static inline uint8_t hfp_subevent_microphone_volume_get_gain(const uint8_t * event){
2682     return event[4];
2683 }
2684 
2685 /**
2686  * @brief Get field type from event hfp_subevent_call_waiting_notification
2687  * @param event packet
2688  * @return type
2689  * @note: btstack_type 1
2690  */
2691 static inline uint8_t hfp_subevent_call_waiting_notification_get_type(const uint8_t * event){
2692     return event[3];
2693 }
2694 /**
2695  * @brief Get field number from event hfp_subevent_call_waiting_notification
2696  * @param event packet
2697  * @return number
2698  * @note: btstack_type T
2699  */
2700 static inline const char * hfp_subevent_call_waiting_notification_get_number(const uint8_t * event){
2701     return (const char *) &event[4];
2702 }
2703 
2704 /**
2705  * @brief Get field type from event hfp_subevent_calling_line_indetification_notification
2706  * @param event packet
2707  * @return type
2708  * @note: btstack_type 1
2709  */
2710 static inline uint8_t hfp_subevent_calling_line_indetification_notification_get_type(const uint8_t * event){
2711     return event[3];
2712 }
2713 /**
2714  * @brief Get field number from event hfp_subevent_calling_line_indetification_notification
2715  * @param event packet
2716  * @return number
2717  * @note: btstack_type T
2718  */
2719 static inline const char * hfp_subevent_calling_line_indetification_notification_get_number(const uint8_t * event){
2720     return (const char *) &event[4];
2721 }
2722 
2723 /**
2724  * @brief Get field clcc_idx from event hfp_subevent_enhanced_call_status
2725  * @param event packet
2726  * @return clcc_idx
2727  * @note: btstack_type 1
2728  */
2729 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_idx(const uint8_t * event){
2730     return event[3];
2731 }
2732 /**
2733  * @brief Get field clcc_dir from event hfp_subevent_enhanced_call_status
2734  * @param event packet
2735  * @return clcc_dir
2736  * @note: btstack_type 1
2737  */
2738 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_dir(const uint8_t * event){
2739     return event[4];
2740 }
2741 /**
2742  * @brief Get field clcc_status from event hfp_subevent_enhanced_call_status
2743  * @param event packet
2744  * @return clcc_status
2745  * @note: btstack_type 1
2746  */
2747 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_status(const uint8_t * event){
2748     return event[5];
2749 }
2750 /**
2751  * @brief Get field clcc_mpty from event hfp_subevent_enhanced_call_status
2752  * @param event packet
2753  * @return clcc_mpty
2754  * @note: btstack_type 1
2755  */
2756 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_mpty(const uint8_t * event){
2757     return event[6];
2758 }
2759 /**
2760  * @brief Get field bnip_type from event hfp_subevent_enhanced_call_status
2761  * @param event packet
2762  * @return bnip_type
2763  * @note: btstack_type 1
2764  */
2765 static inline uint8_t hfp_subevent_enhanced_call_status_get_bnip_type(const uint8_t * event){
2766     return event[7];
2767 }
2768 /**
2769  * @brief Get field bnip_number from event hfp_subevent_enhanced_call_status
2770  * @param event packet
2771  * @return bnip_number
2772  * @note: btstack_type T
2773  */
2774 static inline const char * hfp_subevent_enhanced_call_status_get_bnip_number(const uint8_t * event){
2775     return (const char *) &event[8];
2776 }
2777 
2778 /**
2779  * @brief Get field status from event hfp_subevent_subscriber_number_information
2780  * @param event packet
2781  * @return status
2782  * @note: btstack_type 1
2783  */
2784 static inline uint8_t hfp_subevent_subscriber_number_information_get_status(const uint8_t * event){
2785     return event[3];
2786 }
2787 /**
2788  * @brief Get field bnip_type from event hfp_subevent_subscriber_number_information
2789  * @param event packet
2790  * @return bnip_type
2791  * @note: btstack_type 1
2792  */
2793 static inline uint8_t hfp_subevent_subscriber_number_information_get_bnip_type(const uint8_t * event){
2794     return event[4];
2795 }
2796 /**
2797  * @brief Get field bnip_number from event hfp_subevent_subscriber_number_information
2798  * @param event packet
2799  * @return bnip_number
2800  * @note: btstack_type T
2801  */
2802 static inline const char * hfp_subevent_subscriber_number_information_get_bnip_number(const uint8_t * event){
2803     return (const char *) &event[5];
2804 }
2805 
2806 /**
2807  * @brief Get field value from event hfp_subevent_response_and_hold_status
2808  * @param event packet
2809  * @return value
2810  * @note: btstack_type T
2811  */
2812 static inline const char * hfp_subevent_response_and_hold_status_get_value(const uint8_t * event){
2813     return (const char *) &event[3];
2814 }
2815 
2816 #ifdef ENABLE_BLE
2817 /**
2818  * @brief Get field handle from event ancs_subevent_client_connected
2819  * @param event packet
2820  * @return handle
2821  * @note: btstack_type H
2822  */
2823 static inline hci_con_handle_t ancs_subevent_client_connected_get_handle(const uint8_t * event){
2824     return little_endian_read_16(event, 3);
2825 }
2826 #endif
2827 
2828 #ifdef ENABLE_BLE
2829 /**
2830  * @brief Get field handle from event ancs_subevent_client_notification
2831  * @param event packet
2832  * @return handle
2833  * @note: btstack_type H
2834  */
2835 static inline hci_con_handle_t ancs_subevent_client_notification_get_handle(const uint8_t * event){
2836     return little_endian_read_16(event, 3);
2837 }
2838 /**
2839  * @brief Get field attribute_id from event ancs_subevent_client_notification
2840  * @param event packet
2841  * @return attribute_id
2842  * @note: btstack_type 2
2843  */
2844 static inline uint16_t ancs_subevent_client_notification_get_attribute_id(const uint8_t * event){
2845     return little_endian_read_16(event, 5);
2846 }
2847 /**
2848  * @brief Get field text from event ancs_subevent_client_notification
2849  * @param event packet
2850  * @return text
2851  * @note: btstack_type T
2852  */
2853 static inline const char * ancs_subevent_client_notification_get_text(const uint8_t * event){
2854     return (const char *) &event[7];
2855 }
2856 #endif
2857 
2858 #ifdef ENABLE_BLE
2859 /**
2860  * @brief Get field handle from event ancs_subevent_client_disconnected
2861  * @param event packet
2862  * @return handle
2863  * @note: btstack_type H
2864  */
2865 static inline hci_con_handle_t ancs_subevent_client_disconnected_get_handle(const uint8_t * event){
2866     return little_endian_read_16(event, 3);
2867 }
2868 #endif
2869 
2870 
2871 
2872 /* API_END */
2873 
2874 #if defined __cplusplus
2875 }
2876 #endif
2877 
2878 #endif // __BTSTACK_EVENT_H
2879