xref: /btstack/src/btstack_event.h (revision bcf00d8fa453bd3a5c441c3b99e6e4b685f0d8f0)
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 field status from event l2cap_event_channel_opened
65  * @param Event packet
66  * @return status
67  * @note: btstack_type 1
68  */
69 static inline uint8_t l2cap_event_channel_opened_get_status(const uint8_t * event){
70     return event[2];
71 }
72 /**
73  * @brief Get field address from event l2cap_event_channel_opened
74  * @param Event packet
75  * @param Pointer to storage for address
76  * @note: btstack_type B
77  */
78 static inline void l2cap_event_channel_opened_get_address(const uint8_t * event, bd_addr_t address){
79     reverse_bd_addr(&event[3], address);
80 }
81 /**
82  * @brief Get field handle from event l2cap_event_channel_opened
83  * @param Event packet
84  * @return handle
85  * @note: btstack_type H
86  */
87 static inline hci_con_handle_t l2cap_event_channel_opened_get_handle(const uint8_t * event){
88     return little_endian_read_16(event, 9);
89 }
90 /**
91  * @brief Get field psm from event l2cap_event_channel_opened
92  * @param Event packet
93  * @return psm
94  * @note: btstack_type 2
95  */
96 static inline uint16_t l2cap_event_channel_opened_get_psm(const uint8_t * event){
97     return little_endian_read_16(event, 11);
98 }
99 /**
100  * @brief Get field local_cid from event l2cap_event_channel_opened
101  * @param Event packet
102  * @return local_cid
103  * @note: btstack_type 2
104  */
105 static inline uint16_t l2cap_event_channel_opened_get_local_cid(const uint8_t * event){
106     return little_endian_read_16(event, 13);
107 }
108 /**
109  * @brief Get field remote_cid from event l2cap_event_channel_opened
110  * @param Event packet
111  * @return remote_cid
112  * @note: btstack_type 2
113  */
114 static inline uint16_t l2cap_event_channel_opened_get_remote_cid(const uint8_t * event){
115     return little_endian_read_16(event, 15);
116 }
117 /**
118  * @brief Get field local_mtu from event l2cap_event_channel_opened
119  * @param Event packet
120  * @return local_mtu
121  * @note: btstack_type 2
122  */
123 static inline uint16_t l2cap_event_channel_opened_get_local_mtu(const uint8_t * event){
124     return little_endian_read_16(event, 17);
125 }
126 /**
127  * @brief Get field remote_mtu from event l2cap_event_channel_opened
128  * @param Event packet
129  * @return remote_mtu
130  * @note: btstack_type 2
131  */
132 static inline uint16_t l2cap_event_channel_opened_get_remote_mtu(const uint8_t * event){
133     return little_endian_read_16(event, 19);
134 }
135 /**
136  * @brief Get field flush_timeout from event l2cap_event_channel_opened
137  * @param Event packet
138  * @return flush_timeout
139  * @note: btstack_type 2
140  */
141 static inline uint16_t l2cap_event_channel_opened_get_flush_timeout(const uint8_t * event){
142     return little_endian_read_16(event, 21);
143 }
144 
145 /**
146  * @brief Get field local_cid from event l2cap_event_channel_closed
147  * @param Event packet
148  * @return local_cid
149  * @note: btstack_type 2
150  */
151 static inline uint16_t l2cap_event_channel_closed_get_local_cid(const uint8_t * event){
152     return little_endian_read_16(event, 2);
153 }
154 
155 /**
156  * @brief Get field status from event l2cap_event_incoming_connection
157  * @param Event packet
158  * @return status
159  * @note: btstack_type 1
160  */
161 static inline uint8_t l2cap_event_incoming_connection_get_status(const uint8_t * event){
162     return event[2];
163 }
164 /**
165  * @brief Get field address from event l2cap_event_incoming_connection
166  * @param Event packet
167  * @param Pointer to storage for address
168  * @note: btstack_type B
169  */
170 static inline void l2cap_event_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){
171     reverse_bd_addr(&event[3], address);
172 }
173 /**
174  * @brief Get field handle from event l2cap_event_incoming_connection
175  * @param Event packet
176  * @return handle
177  * @note: btstack_type H
178  */
179 static inline hci_con_handle_t l2cap_event_incoming_connection_get_handle(const uint8_t * event){
180     return little_endian_read_16(event, 9);
181 }
182 /**
183  * @brief Get field psm from event l2cap_event_incoming_connection
184  * @param Event packet
185  * @return psm
186  * @note: btstack_type 2
187  */
188 static inline uint16_t l2cap_event_incoming_connection_get_psm(const uint8_t * event){
189     return little_endian_read_16(event, 11);
190 }
191 /**
192  * @brief Get field local_cid from event l2cap_event_incoming_connection
193  * @param Event packet
194  * @return local_cid
195  * @note: btstack_type 2
196  */
197 static inline uint16_t l2cap_event_incoming_connection_get_local_cid(const uint8_t * event){
198     return little_endian_read_16(event, 13);
199 }
200 /**
201  * @brief Get field remote_cid from event l2cap_event_incoming_connection
202  * @param Event packet
203  * @return remote_cid
204  * @note: btstack_type 2
205  */
206 static inline uint16_t l2cap_event_incoming_connection_get_remote_cid(const uint8_t * event){
207     return little_endian_read_16(event, 15);
208 }
209 
210 /**
211  * @brief Get field status from event l2cap_event_service_registered
212  * @param Event packet
213  * @return status
214  * @note: btstack_type 1
215  */
216 static inline uint8_t l2cap_event_service_registered_get_status(const uint8_t * event){
217     return event[2];
218 }
219 /**
220  * @brief Get field psm from event l2cap_event_service_registered
221  * @param Event packet
222  * @return psm
223  * @note: btstack_type 2
224  */
225 static inline uint16_t l2cap_event_service_registered_get_psm(const uint8_t * event){
226     return little_endian_read_16(event, 3);
227 }
228 
229 /**
230  * @brief Get field handle from event l2cap_event_connection_parameter_update_request
231  * @param Event packet
232  * @return handle
233  * @note: btstack_type H
234  */
235 static inline hci_con_handle_t l2cap_event_connection_parameter_update_request_get_handle(const uint8_t * event){
236     return little_endian_read_16(event, 2);
237 }
238 /**
239  * @brief Get field interval_min from event l2cap_event_connection_parameter_update_request
240  * @param Event packet
241  * @return interval_min
242  * @note: btstack_type 2
243  */
244 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_min(const uint8_t * event){
245     return little_endian_read_16(event, 4);
246 }
247 /**
248  * @brief Get field interval_max from event l2cap_event_connection_parameter_update_request
249  * @param Event packet
250  * @return interval_max
251  * @note: btstack_type 2
252  */
253 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_max(const uint8_t * event){
254     return little_endian_read_16(event, 6);
255 }
256 /**
257  * @brief Get field latencey from event l2cap_event_connection_parameter_update_request
258  * @param Event packet
259  * @return latencey
260  * @note: btstack_type 2
261  */
262 static inline uint16_t l2cap_event_connection_parameter_update_request_get_latencey(const uint8_t * event){
263     return little_endian_read_16(event, 8);
264 }
265 /**
266  * @brief Get field timeout_multiplier from event l2cap_event_connection_parameter_update_request
267  * @param Event packet
268  * @return timeout_multiplier
269  * @note: btstack_type 2
270  */
271 static inline uint16_t l2cap_event_connection_parameter_update_request_get_timeout_multiplier(const uint8_t * event){
272     return little_endian_read_16(event, 10);
273 }
274 
275 /**
276  * @brief Get field handle from event l2cap_event_connection_parameter_update_response
277  * @param Event packet
278  * @return handle
279  * @note: btstack_type H
280  */
281 static inline hci_con_handle_t l2cap_event_connection_parameter_update_response_get_handle(const uint8_t * event){
282     return little_endian_read_16(event, 2);
283 }
284 
285 /**
286  * @brief Get field local_cid from event l2cap_event_can_send_now
287  * @param Event packet
288  * @return local_cid
289  * @note: btstack_type 2
290  */
291 static inline uint16_t l2cap_event_can_send_now_get_local_cid(const uint8_t * event){
292     return little_endian_read_16(event, 2);
293 }
294 
295 /**
296  * @brief Get field status from event rfcomm_event_open_channel_complete
297  * @param Event packet
298  * @return status
299  * @note: btstack_type 1
300  */
301 static inline uint8_t rfcomm_event_open_channel_complete_get_status(const uint8_t * event){
302     return event[2];
303 }
304 /**
305  * @brief Get field bd_addr from event rfcomm_event_open_channel_complete
306  * @param Event packet
307  * @param Pointer to storage for bd_addr
308  * @note: btstack_type B
309  */
310 static inline void rfcomm_event_open_channel_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
311     reverse_bd_addr(&event[3], bd_addr);
312 }
313 /**
314  * @brief Get field con_handle from event rfcomm_event_open_channel_complete
315  * @param Event packet
316  * @return con_handle
317  * @note: btstack_type 2
318  */
319 static inline uint16_t rfcomm_event_open_channel_complete_get_con_handle(const uint8_t * event){
320     return little_endian_read_16(event, 9);
321 }
322 /**
323  * @brief Get field server_channel from event rfcomm_event_open_channel_complete
324  * @param Event packet
325  * @return server_channel
326  * @note: btstack_type 1
327  */
328 static inline uint8_t rfcomm_event_open_channel_complete_get_server_channel(const uint8_t * event){
329     return event[11];
330 }
331 /**
332  * @brief Get field rfcomm_cid from event rfcomm_event_open_channel_complete
333  * @param Event packet
334  * @return rfcomm_cid
335  * @note: btstack_type 2
336  */
337 static inline uint16_t rfcomm_event_open_channel_complete_get_rfcomm_cid(const uint8_t * event){
338     return little_endian_read_16(event, 12);
339 }
340 /**
341  * @brief Get field max_frame_size from event rfcomm_event_open_channel_complete
342  * @param Event packet
343  * @return max_frame_size
344  * @note: btstack_type 2
345  */
346 static inline uint16_t rfcomm_event_open_channel_complete_get_max_frame_size(const uint8_t * event){
347     return little_endian_read_16(event, 14);
348 }
349 
350 /**
351  * @brief Get field rfcomm_cid from event rfcomm_event_channel_closed
352  * @param Event packet
353  * @return rfcomm_cid
354  * @note: btstack_type 2
355  */
356 static inline uint16_t rfcomm_event_channel_closed_get_rfcomm_cid(const uint8_t * event){
357     return little_endian_read_16(event, 2);
358 }
359 
360 /**
361  * @brief Get field bd_addr from event rfcomm_event_incoming_connection
362  * @param Event packet
363  * @param Pointer to storage for bd_addr
364  * @note: btstack_type B
365  */
366 static inline void rfcomm_event_incoming_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){
367     reverse_bd_addr(&event[2], bd_addr);
368 }
369 /**
370  * @brief Get field server_channel from event rfcomm_event_incoming_connection
371  * @param Event packet
372  * @return server_channel
373  * @note: btstack_type 1
374  */
375 static inline uint8_t rfcomm_event_incoming_connection_get_server_channel(const uint8_t * event){
376     return event[8];
377 }
378 /**
379  * @brief Get field rfcomm_cid from event rfcomm_event_incoming_connection
380  * @param Event packet
381  * @return rfcomm_cid
382  * @note: btstack_type 2
383  */
384 static inline uint16_t rfcomm_event_incoming_connection_get_rfcomm_cid(const uint8_t * event){
385     return little_endian_read_16(event, 9);
386 }
387 
388 /**
389  * @brief Get field rfcomm_cid from event rfcomm_event_remote_line_status
390  * @param Event packet
391  * @return rfcomm_cid
392  * @note: btstack_type 2
393  */
394 static inline uint16_t rfcomm_event_remote_line_status_get_rfcomm_cid(const uint8_t * event){
395     return little_endian_read_16(event, 2);
396 }
397 /**
398  * @brief Get field line_status from event rfcomm_event_remote_line_status
399  * @param Event packet
400  * @return line_status
401  * @note: btstack_type 1
402  */
403 static inline uint8_t rfcomm_event_remote_line_status_get_line_status(const uint8_t * event){
404     return event[4];
405 }
406 
407 /**
408  * @brief Get field rfcomm_cid from event rfcomm_event_credits
409  * @param Event packet
410  * @return rfcomm_cid
411  * @note: btstack_type 2
412  */
413 static inline uint16_t rfcomm_event_credits_get_rfcomm_cid(const uint8_t * event){
414     return little_endian_read_16(event, 2);
415 }
416 /**
417  * @brief Get field credits from event rfcomm_event_credits
418  * @param Event packet
419  * @return credits
420  * @note: btstack_type 1
421  */
422 static inline uint8_t rfcomm_event_credits_get_credits(const uint8_t * event){
423     return event[4];
424 }
425 
426 /**
427  * @brief Get field status from event rfcomm_event_service_registered
428  * @param Event packet
429  * @return status
430  * @note: btstack_type 1
431  */
432 static inline uint8_t rfcomm_event_service_registered_get_status(const uint8_t * event){
433     return event[2];
434 }
435 /**
436  * @brief Get field channel_id from event rfcomm_event_service_registered
437  * @param Event packet
438  * @return channel_id
439  * @note: btstack_type 1
440  */
441 static inline uint8_t rfcomm_event_service_registered_get_channel_id(const uint8_t * event){
442     return event[3];
443 }
444 
445 /**
446  * @brief Get field status from event rfcomm_event_persistent_channel
447  * @param Event packet
448  * @return status
449  * @note: btstack_type 1
450  */
451 static inline uint8_t rfcomm_event_persistent_channel_get_status(const uint8_t * event){
452     return event[2];
453 }
454 /**
455  * @brief Get field server_channel_id from event rfcomm_event_persistent_channel
456  * @param Event packet
457  * @return server_channel_id
458  * @note: btstack_type 1
459  */
460 static inline uint8_t rfcomm_event_persistent_channel_get_server_channel_id(const uint8_t * event){
461     return event[3];
462 }
463 
464 /**
465  * @brief Get field rfcomm_cid from event rfcomm_event_remote_modem_status
466  * @param Event packet
467  * @return rfcomm_cid
468  * @note: btstack_type 2
469  */
470 static inline uint16_t rfcomm_event_remote_modem_status_get_rfcomm_cid(const uint8_t * event){
471     return little_endian_read_16(event, 2);
472 }
473 /**
474  * @brief Get field modem_status from event rfcomm_event_remote_modem_status
475  * @param Event packet
476  * @return modem_status
477  * @note: btstack_type 1
478  */
479 static inline uint8_t rfcomm_event_remote_modem_status_get_modem_status(const uint8_t * event){
480     return event[4];
481 }
482 
483 /**
484  * @brief Get field local_cid from event rfcomm_event_can_send_now
485  * @param Event packet
486  * @return local_cid
487  * @note: btstack_type 2
488  */
489 static inline uint16_t rfcomm_event_can_send_now_get_local_cid(const uint8_t * event){
490     return little_endian_read_16(event, 2);
491 }
492 
493 /**
494  * @brief Get field status from event sdp_event_service_registered
495  * @param Event packet
496  * @return status
497  * @note: btstack_type 1
498  */
499 static inline uint8_t sdp_event_service_registered_get_status(const uint8_t * event){
500     return event[2];
501 }
502 /**
503  * @brief Get field service_record_handle from event sdp_event_service_registered
504  * @param Event packet
505  * @return service_record_handle
506  * @note: btstack_type 4
507  */
508 static inline uint32_t sdp_event_service_registered_get_service_record_handle(const uint8_t * event){
509     return little_endian_read_32(event, 3);
510 }
511 
512 /**
513  * @brief Get field status from event sdp_event_query_complete
514  * @param Event packet
515  * @return status
516  * @note: btstack_type 1
517  */
518 static inline uint8_t sdp_event_query_complete_get_status(const uint8_t * event){
519     return event[2];
520 }
521 
522 /**
523  * @brief Get field rfcomm_channel from event sdp_event_query_rfcomm_service
524  * @param Event packet
525  * @return rfcomm_channel
526  * @note: btstack_type 1
527  */
528 static inline uint8_t sdp_event_query_rfcomm_service_get_rfcomm_channel(const uint8_t * event){
529     return event[2];
530 }
531 /**
532  * @brief Get field name from event sdp_event_query_rfcomm_service
533  * @param Event packet
534  * @return name
535  * @note: btstack_type T
536  */
537 static inline const char * sdp_event_query_rfcomm_service_get_name(const uint8_t * event){
538     return (const char *) &event[3];
539 }
540 
541 /**
542  * @brief Get field record_id from event sdp_event_query_attribute_byte
543  * @param Event packet
544  * @return record_id
545  * @note: btstack_type 2
546  */
547 static inline uint16_t sdp_event_query_attribute_byte_get_record_id(const uint8_t * event){
548     return little_endian_read_16(event, 2);
549 }
550 /**
551  * @brief Get field attribute_id from event sdp_event_query_attribute_byte
552  * @param Event packet
553  * @return attribute_id
554  * @note: btstack_type 2
555  */
556 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_id(const uint8_t * event){
557     return little_endian_read_16(event, 4);
558 }
559 /**
560  * @brief Get field attribute_length from event sdp_event_query_attribute_byte
561  * @param Event packet
562  * @return attribute_length
563  * @note: btstack_type 2
564  */
565 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_length(const uint8_t * event){
566     return little_endian_read_16(event, 6);
567 }
568 /**
569  * @brief Get field data_offset from event sdp_event_query_attribute_byte
570  * @param Event packet
571  * @return data_offset
572  * @note: btstack_type 2
573  */
574 static inline uint16_t sdp_event_query_attribute_byte_get_data_offset(const uint8_t * event){
575     return little_endian_read_16(event, 8);
576 }
577 /**
578  * @brief Get field data from event sdp_event_query_attribute_byte
579  * @param Event packet
580  * @return data
581  * @note: btstack_type 1
582  */
583 static inline uint8_t sdp_event_query_attribute_byte_get_data(const uint8_t * event){
584     return event[10];
585 }
586 
587 /**
588  * @brief Get field record_id from event sdp_event_query_attribute_value
589  * @param Event packet
590  * @return record_id
591  * @note: btstack_type 2
592  */
593 static inline uint16_t sdp_event_query_attribute_value_get_record_id(const uint8_t * event){
594     return little_endian_read_16(event, 2);
595 }
596 /**
597  * @brief Get field attribute_id from event sdp_event_query_attribute_value
598  * @param Event packet
599  * @return attribute_id
600  * @note: btstack_type 2
601  */
602 static inline uint16_t sdp_event_query_attribute_value_get_attribute_id(const uint8_t * event){
603     return little_endian_read_16(event, 4);
604 }
605 /**
606  * @brief Get field attribute_length from event sdp_event_query_attribute_value
607  * @param Event packet
608  * @return attribute_length
609  * @note: btstack_type L
610  */
611 static inline int sdp_event_query_attribute_value_get_attribute_length(const uint8_t * event){
612     return little_endian_read_16(event, 6);
613 }
614 /**
615  * @brief Get field attribute_value from event sdp_event_query_attribute_value
616  * @param Event packet
617  * @return attribute_value
618  * @note: btstack_type V
619  */
620 static inline const uint8_t * sdp_event_query_attribute_value_get_attribute_value(const uint8_t * event){
621     return &event[8];
622 }
623 
624 /**
625  * @brief Get field total_count from event sdp_event_query_service_record_handle
626  * @param Event packet
627  * @return total_count
628  * @note: btstack_type 2
629  */
630 static inline uint16_t sdp_event_query_service_record_handle_get_total_count(const uint8_t * event){
631     return little_endian_read_16(event, 2);
632 }
633 /**
634  * @brief Get field record_index from event sdp_event_query_service_record_handle
635  * @param Event packet
636  * @return record_index
637  * @note: btstack_type 2
638  */
639 static inline uint16_t sdp_event_query_service_record_handle_get_record_index(const uint8_t * event){
640     return little_endian_read_16(event, 4);
641 }
642 /**
643  * @brief Get field record_handle from event sdp_event_query_service_record_handle
644  * @param Event packet
645  * @return record_handle
646  * @note: btstack_type 4
647  */
648 static inline uint32_t sdp_event_query_service_record_handle_get_record_handle(const uint8_t * event){
649     return little_endian_read_32(event, 6);
650 }
651 
652 #ifdef ENABLE_BLE
653 /**
654  * @brief Get field handle from event gatt_event_query_complete
655  * @param Event packet
656  * @return handle
657  * @note: btstack_type H
658  */
659 static inline hci_con_handle_t gatt_event_query_complete_get_handle(const uint8_t * event){
660     return little_endian_read_16(event, 2);
661 }
662 /**
663  * @brief Get field status from event gatt_event_query_complete
664  * @param Event packet
665  * @return status
666  * @note: btstack_type 1
667  */
668 static inline uint8_t gatt_event_query_complete_get_status(const uint8_t * event){
669     return event[4];
670 }
671 #endif
672 
673 #ifdef ENABLE_BLE
674 /**
675  * @brief Get field handle from event gatt_event_service_query_result
676  * @param Event packet
677  * @return handle
678  * @note: btstack_type H
679  */
680 static inline hci_con_handle_t gatt_event_service_query_result_get_handle(const uint8_t * event){
681     return little_endian_read_16(event, 2);
682 }
683 /**
684  * @brief Get field service from event gatt_event_service_query_result
685  * @param Event packet
686  * @param Pointer to storage for service
687  * @note: btstack_type X
688  */
689 static inline void gatt_event_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){
690     gatt_client_deserialize_service(event, 4, service);
691 }
692 #endif
693 
694 #ifdef ENABLE_BLE
695 /**
696  * @brief Get field handle from event gatt_event_characteristic_query_result
697  * @param Event packet
698  * @return handle
699  * @note: btstack_type H
700  */
701 static inline hci_con_handle_t gatt_event_characteristic_query_result_get_handle(const uint8_t * event){
702     return little_endian_read_16(event, 2);
703 }
704 /**
705  * @brief Get field characteristic from event gatt_event_characteristic_query_result
706  * @param Event packet
707  * @param Pointer to storage for characteristic
708  * @note: btstack_type Y
709  */
710 static inline void gatt_event_characteristic_query_result_get_characteristic(const uint8_t * event, gatt_client_characteristic_t * characteristic){
711     gatt_client_deserialize_characteristic(event, 4, characteristic);
712 }
713 #endif
714 
715 #ifdef ENABLE_BLE
716 /**
717  * @brief Get field handle from event gatt_event_included_service_query_result
718  * @param Event packet
719  * @return handle
720  * @note: btstack_type H
721  */
722 static inline hci_con_handle_t gatt_event_included_service_query_result_get_handle(const uint8_t * event){
723     return little_endian_read_16(event, 2);
724 }
725 /**
726  * @brief Get field include_handle from event gatt_event_included_service_query_result
727  * @param Event packet
728  * @return include_handle
729  * @note: btstack_type 2
730  */
731 static inline uint16_t gatt_event_included_service_query_result_get_include_handle(const uint8_t * event){
732     return little_endian_read_16(event, 4);
733 }
734 /**
735  * @brief Get field service from event gatt_event_included_service_query_result
736  * @param Event packet
737  * @param Pointer to storage for service
738  * @note: btstack_type X
739  */
740 static inline void gatt_event_included_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){
741     gatt_client_deserialize_service(event, 6, service);
742 }
743 #endif
744 
745 #ifdef ENABLE_BLE
746 /**
747  * @brief Get field handle from event gatt_event_all_characteristic_descriptors_query_result
748  * @param Event packet
749  * @return handle
750  * @note: btstack_type H
751  */
752 static inline hci_con_handle_t gatt_event_all_characteristic_descriptors_query_result_get_handle(const uint8_t * event){
753     return little_endian_read_16(event, 2);
754 }
755 /**
756  * @brief Get field characteristic_descriptor from event gatt_event_all_characteristic_descriptors_query_result
757  * @param Event packet
758  * @param Pointer to storage for characteristic_descriptor
759  * @note: btstack_type Z
760  */
761 static inline void gatt_event_all_characteristic_descriptors_query_result_get_characteristic_descriptor(const uint8_t * event, gatt_client_characteristic_descriptor_t * characteristic_descriptor){
762     gatt_client_deserialize_characteristic_descriptor(event, 4, characteristic_descriptor);
763 }
764 #endif
765 
766 #ifdef ENABLE_BLE
767 /**
768  * @brief Get field handle from event gatt_event_characteristic_value_query_result
769  * @param Event packet
770  * @return handle
771  * @note: btstack_type H
772  */
773 static inline hci_con_handle_t gatt_event_characteristic_value_query_result_get_handle(const uint8_t * event){
774     return little_endian_read_16(event, 2);
775 }
776 /**
777  * @brief Get field value_handle from event gatt_event_characteristic_value_query_result
778  * @param Event packet
779  * @return value_handle
780  * @note: btstack_type 2
781  */
782 static inline uint16_t gatt_event_characteristic_value_query_result_get_value_handle(const uint8_t * event){
783     return little_endian_read_16(event, 4);
784 }
785 /**
786  * @brief Get field value_length from event gatt_event_characteristic_value_query_result
787  * @param Event packet
788  * @return value_length
789  * @note: btstack_type L
790  */
791 static inline int gatt_event_characteristic_value_query_result_get_value_length(const uint8_t * event){
792     return little_endian_read_16(event, 6);
793 }
794 /**
795  * @brief Get field value from event gatt_event_characteristic_value_query_result
796  * @param Event packet
797  * @return value
798  * @note: btstack_type V
799  */
800 static inline const uint8_t * gatt_event_characteristic_value_query_result_get_value(const uint8_t * event){
801     return &event[8];
802 }
803 #endif
804 
805 #ifdef ENABLE_BLE
806 /**
807  * @brief Get field handle from event gatt_event_long_characteristic_value_query_result
808  * @param Event packet
809  * @return handle
810  * @note: btstack_type H
811  */
812 static inline hci_con_handle_t gatt_event_long_characteristic_value_query_result_get_handle(const uint8_t * event){
813     return little_endian_read_16(event, 2);
814 }
815 /**
816  * @brief Get field value_handle from event gatt_event_long_characteristic_value_query_result
817  * @param Event packet
818  * @return value_handle
819  * @note: btstack_type 2
820  */
821 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_handle(const uint8_t * event){
822     return little_endian_read_16(event, 4);
823 }
824 /**
825  * @brief Get field value_offset from event gatt_event_long_characteristic_value_query_result
826  * @param Event packet
827  * @return value_offset
828  * @note: btstack_type 2
829  */
830 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_offset(const uint8_t * event){
831     return little_endian_read_16(event, 6);
832 }
833 /**
834  * @brief Get field value_length from event gatt_event_long_characteristic_value_query_result
835  * @param Event packet
836  * @return value_length
837  * @note: btstack_type L
838  */
839 static inline int gatt_event_long_characteristic_value_query_result_get_value_length(const uint8_t * event){
840     return little_endian_read_16(event, 8);
841 }
842 /**
843  * @brief Get field value from event gatt_event_long_characteristic_value_query_result
844  * @param Event packet
845  * @return value
846  * @note: btstack_type V
847  */
848 static inline const uint8_t * gatt_event_long_characteristic_value_query_result_get_value(const uint8_t * event){
849     return &event[10];
850 }
851 #endif
852 
853 #ifdef ENABLE_BLE
854 /**
855  * @brief Get field handle from event gatt_event_notification
856  * @param Event packet
857  * @return handle
858  * @note: btstack_type H
859  */
860 static inline hci_con_handle_t gatt_event_notification_get_handle(const uint8_t * event){
861     return little_endian_read_16(event, 2);
862 }
863 /**
864  * @brief Get field value_handle from event gatt_event_notification
865  * @param Event packet
866  * @return value_handle
867  * @note: btstack_type 2
868  */
869 static inline uint16_t gatt_event_notification_get_value_handle(const uint8_t * event){
870     return little_endian_read_16(event, 4);
871 }
872 /**
873  * @brief Get field value_length from event gatt_event_notification
874  * @param Event packet
875  * @return value_length
876  * @note: btstack_type L
877  */
878 static inline int gatt_event_notification_get_value_length(const uint8_t * event){
879     return little_endian_read_16(event, 6);
880 }
881 /**
882  * @brief Get field value from event gatt_event_notification
883  * @param Event packet
884  * @return value
885  * @note: btstack_type V
886  */
887 static inline const uint8_t * gatt_event_notification_get_value(const uint8_t * event){
888     return &event[8];
889 }
890 #endif
891 
892 #ifdef ENABLE_BLE
893 /**
894  * @brief Get field handle from event gatt_event_indication
895  * @param Event packet
896  * @return handle
897  * @note: btstack_type H
898  */
899 static inline hci_con_handle_t gatt_event_indication_get_handle(const uint8_t * event){
900     return little_endian_read_16(event, 2);
901 }
902 /**
903  * @brief Get field value_handle from event gatt_event_indication
904  * @param Event packet
905  * @return value_handle
906  * @note: btstack_type 2
907  */
908 static inline uint16_t gatt_event_indication_get_value_handle(const uint8_t * event){
909     return little_endian_read_16(event, 4);
910 }
911 /**
912  * @brief Get field value_length from event gatt_event_indication
913  * @param Event packet
914  * @return value_length
915  * @note: btstack_type L
916  */
917 static inline int gatt_event_indication_get_value_length(const uint8_t * event){
918     return little_endian_read_16(event, 6);
919 }
920 /**
921  * @brief Get field value from event gatt_event_indication
922  * @param Event packet
923  * @return value
924  * @note: btstack_type V
925  */
926 static inline const uint8_t * gatt_event_indication_get_value(const uint8_t * event){
927     return &event[8];
928 }
929 #endif
930 
931 #ifdef ENABLE_BLE
932 /**
933  * @brief Get field descriptor_handle from event gatt_event_characteristic_descriptor_query_result
934  * @param Event packet
935  * @return descriptor_handle
936  * @note: btstack_type H
937  */
938 static inline hci_con_handle_t gatt_event_characteristic_descriptor_query_result_get_descriptor_handle(const uint8_t * event){
939     return little_endian_read_16(event, 2);
940 }
941 /**
942  * @brief Get field descriptor_length from event gatt_event_characteristic_descriptor_query_result
943  * @param Event packet
944  * @return descriptor_length
945  * @note: btstack_type 2
946  */
947 static inline uint16_t gatt_event_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){
948     return little_endian_read_16(event, 4);
949 }
950 /**
951  * @brief Get field descriptor from event gatt_event_characteristic_descriptor_query_result
952  * @param Event packet
953  * @return descriptor
954  * @note: btstack_type L
955  */
956 static inline int gatt_event_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){
957     return little_endian_read_16(event, 6);
958 }
959 #endif
960 
961 #ifdef ENABLE_BLE
962 /**
963  * @brief Get field handle from event gatt_event_long_characteristic_descriptor_query_result
964  * @param Event packet
965  * @return handle
966  * @note: btstack_type H
967  */
968 static inline hci_con_handle_t gatt_event_long_characteristic_descriptor_query_result_get_handle(const uint8_t * event){
969     return little_endian_read_16(event, 2);
970 }
971 /**
972  * @brief Get field descriptor_offset from event gatt_event_long_characteristic_descriptor_query_result
973  * @param Event packet
974  * @return descriptor_offset
975  * @note: btstack_type 2
976  */
977 static inline uint16_t gatt_event_long_characteristic_descriptor_query_result_get_descriptor_offset(const uint8_t * event){
978     return little_endian_read_16(event, 4);
979 }
980 /**
981  * @brief Get field descriptor_length from event gatt_event_long_characteristic_descriptor_query_result
982  * @param Event packet
983  * @return descriptor_length
984  * @note: btstack_type L
985  */
986 static inline int gatt_event_long_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){
987     return little_endian_read_16(event, 6);
988 }
989 /**
990  * @brief Get field descriptor from event gatt_event_long_characteristic_descriptor_query_result
991  * @param Event packet
992  * @return descriptor
993  * @note: btstack_type V
994  */
995 static inline const uint8_t * gatt_event_long_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){
996     return &event[8];
997 }
998 #endif
999 
1000 #ifdef ENABLE_BLE
1001 /**
1002  * @brief Get field handle from event gatt_event_mtu
1003  * @param Event packet
1004  * @return handle
1005  * @note: btstack_type H
1006  */
1007 static inline hci_con_handle_t gatt_event_mtu_get_handle(const uint8_t * event){
1008     return little_endian_read_16(event, 2);
1009 }
1010 /**
1011  * @brief Get field MTU from event gatt_event_mtu
1012  * @param Event packet
1013  * @return MTU
1014  * @note: btstack_type 2
1015  */
1016 static inline uint16_t gatt_event_mtu_get_MTU(const uint8_t * event){
1017     return little_endian_read_16(event, 4);
1018 }
1019 #endif
1020 
1021 #ifdef ENABLE_BLE
1022 /**
1023  * @brief Get field handle from event sm_event_just_works_request
1024  * @param Event packet
1025  * @return handle
1026  * @note: btstack_type H
1027  */
1028 static inline hci_con_handle_t sm_event_just_works_request_get_handle(const uint8_t * event){
1029     return little_endian_read_16(event, 2);
1030 }
1031 /**
1032  * @brief Get field addr_type from event sm_event_just_works_request
1033  * @param Event packet
1034  * @return addr_type
1035  * @note: btstack_type 1
1036  */
1037 static inline uint8_t sm_event_just_works_request_get_addr_type(const uint8_t * event){
1038     return event[4];
1039 }
1040 /**
1041  * @brief Get field address from event sm_event_just_works_request
1042  * @param Event packet
1043  * @param Pointer to storage for address
1044  * @note: btstack_type B
1045  */
1046 static inline void sm_event_just_works_request_get_address(const uint8_t * event, bd_addr_t address){
1047     reverse_bd_addr(&event[5], address);
1048 }
1049 #endif
1050 
1051 #ifdef ENABLE_BLE
1052 /**
1053  * @brief Get field handle from event sm_event_just_works_cancel
1054  * @param Event packet
1055  * @return handle
1056  * @note: btstack_type H
1057  */
1058 static inline hci_con_handle_t sm_event_just_works_cancel_get_handle(const uint8_t * event){
1059     return little_endian_read_16(event, 2);
1060 }
1061 /**
1062  * @brief Get field addr_type from event sm_event_just_works_cancel
1063  * @param Event packet
1064  * @return addr_type
1065  * @note: btstack_type 1
1066  */
1067 static inline uint8_t sm_event_just_works_cancel_get_addr_type(const uint8_t * event){
1068     return event[4];
1069 }
1070 /**
1071  * @brief Get field address from event sm_event_just_works_cancel
1072  * @param Event packet
1073  * @param Pointer to storage for address
1074  * @note: btstack_type B
1075  */
1076 static inline void sm_event_just_works_cancel_get_address(const uint8_t * event, bd_addr_t address){
1077     reverse_bd_addr(&event[5], address);
1078 }
1079 #endif
1080 
1081 #ifdef ENABLE_BLE
1082 /**
1083  * @brief Get field handle from event sm_event_passkey_display_number
1084  * @param Event packet
1085  * @return handle
1086  * @note: btstack_type H
1087  */
1088 static inline hci_con_handle_t sm_event_passkey_display_number_get_handle(const uint8_t * event){
1089     return little_endian_read_16(event, 2);
1090 }
1091 /**
1092  * @brief Get field addr_type from event sm_event_passkey_display_number
1093  * @param Event packet
1094  * @return addr_type
1095  * @note: btstack_type 1
1096  */
1097 static inline uint8_t sm_event_passkey_display_number_get_addr_type(const uint8_t * event){
1098     return event[4];
1099 }
1100 /**
1101  * @brief Get field address from event sm_event_passkey_display_number
1102  * @param Event packet
1103  * @param Pointer to storage for address
1104  * @note: btstack_type B
1105  */
1106 static inline void sm_event_passkey_display_number_get_address(const uint8_t * event, bd_addr_t address){
1107     reverse_bd_addr(&event[5], address);
1108 }
1109 /**
1110  * @brief Get field passkey from event sm_event_passkey_display_number
1111  * @param Event packet
1112  * @return passkey
1113  * @note: btstack_type 4
1114  */
1115 static inline uint32_t sm_event_passkey_display_number_get_passkey(const uint8_t * event){
1116     return little_endian_read_32(event, 11);
1117 }
1118 #endif
1119 
1120 #ifdef ENABLE_BLE
1121 /**
1122  * @brief Get field handle from event sm_event_passkey_display_cancel
1123  * @param Event packet
1124  * @return handle
1125  * @note: btstack_type H
1126  */
1127 static inline hci_con_handle_t sm_event_passkey_display_cancel_get_handle(const uint8_t * event){
1128     return little_endian_read_16(event, 2);
1129 }
1130 /**
1131  * @brief Get field addr_type from event sm_event_passkey_display_cancel
1132  * @param Event packet
1133  * @return addr_type
1134  * @note: btstack_type 1
1135  */
1136 static inline uint8_t sm_event_passkey_display_cancel_get_addr_type(const uint8_t * event){
1137     return event[4];
1138 }
1139 /**
1140  * @brief Get field address from event sm_event_passkey_display_cancel
1141  * @param Event packet
1142  * @param Pointer to storage for address
1143  * @note: btstack_type B
1144  */
1145 static inline void sm_event_passkey_display_cancel_get_address(const uint8_t * event, bd_addr_t address){
1146     reverse_bd_addr(&event[5], address);
1147 }
1148 #endif
1149 
1150 #ifdef ENABLE_BLE
1151 /**
1152  * @brief Get field handle from event sm_event_passkey_input_number
1153  * @param Event packet
1154  * @return handle
1155  * @note: btstack_type H
1156  */
1157 static inline hci_con_handle_t sm_event_passkey_input_number_get_handle(const uint8_t * event){
1158     return little_endian_read_16(event, 2);
1159 }
1160 /**
1161  * @brief Get field addr_type from event sm_event_passkey_input_number
1162  * @param Event packet
1163  * @return addr_type
1164  * @note: btstack_type 1
1165  */
1166 static inline uint8_t sm_event_passkey_input_number_get_addr_type(const uint8_t * event){
1167     return event[4];
1168 }
1169 /**
1170  * @brief Get field address from event sm_event_passkey_input_number
1171  * @param Event packet
1172  * @param Pointer to storage for address
1173  * @note: btstack_type B
1174  */
1175 static inline void sm_event_passkey_input_number_get_address(const uint8_t * event, bd_addr_t address){
1176     reverse_bd_addr(&event[5], address);
1177 }
1178 #endif
1179 
1180 #ifdef ENABLE_BLE
1181 /**
1182  * @brief Get field handle from event sm_event_passkey_input_cancel
1183  * @param Event packet
1184  * @return handle
1185  * @note: btstack_type H
1186  */
1187 static inline hci_con_handle_t sm_event_passkey_input_cancel_get_handle(const uint8_t * event){
1188     return little_endian_read_16(event, 2);
1189 }
1190 /**
1191  * @brief Get field addr_type from event sm_event_passkey_input_cancel
1192  * @param Event packet
1193  * @return addr_type
1194  * @note: btstack_type 1
1195  */
1196 static inline uint8_t sm_event_passkey_input_cancel_get_addr_type(const uint8_t * event){
1197     return event[4];
1198 }
1199 /**
1200  * @brief Get field address from event sm_event_passkey_input_cancel
1201  * @param Event packet
1202  * @param Pointer to storage for address
1203  * @note: btstack_type B
1204  */
1205 static inline void sm_event_passkey_input_cancel_get_address(const uint8_t * event, bd_addr_t address){
1206     reverse_bd_addr(&event[5], address);
1207 }
1208 #endif
1209 
1210 #ifdef ENABLE_BLE
1211 /**
1212  * @brief Get field handle from event sm_event_identity_resolving_started
1213  * @param Event packet
1214  * @return handle
1215  * @note: btstack_type H
1216  */
1217 static inline hci_con_handle_t sm_event_identity_resolving_started_get_handle(const uint8_t * event){
1218     return little_endian_read_16(event, 2);
1219 }
1220 /**
1221  * @brief Get field addr_type from event sm_event_identity_resolving_started
1222  * @param Event packet
1223  * @return addr_type
1224  * @note: btstack_type 1
1225  */
1226 static inline uint8_t sm_event_identity_resolving_started_get_addr_type(const uint8_t * event){
1227     return event[4];
1228 }
1229 /**
1230  * @brief Get field address from event sm_event_identity_resolving_started
1231  * @param Event packet
1232  * @param Pointer to storage for address
1233  * @note: btstack_type B
1234  */
1235 static inline void sm_event_identity_resolving_started_get_address(const uint8_t * event, bd_addr_t address){
1236     reverse_bd_addr(&event[5], address);
1237 }
1238 #endif
1239 
1240 #ifdef ENABLE_BLE
1241 /**
1242  * @brief Get field handle from event sm_event_identity_resolving_failed
1243  * @param Event packet
1244  * @return handle
1245  * @note: btstack_type H
1246  */
1247 static inline hci_con_handle_t sm_event_identity_resolving_failed_get_handle(const uint8_t * event){
1248     return little_endian_read_16(event, 2);
1249 }
1250 /**
1251  * @brief Get field addr_type from event sm_event_identity_resolving_failed
1252  * @param Event packet
1253  * @return addr_type
1254  * @note: btstack_type 1
1255  */
1256 static inline uint8_t sm_event_identity_resolving_failed_get_addr_type(const uint8_t * event){
1257     return event[4];
1258 }
1259 /**
1260  * @brief Get field address from event sm_event_identity_resolving_failed
1261  * @param Event packet
1262  * @param Pointer to storage for address
1263  * @note: btstack_type B
1264  */
1265 static inline void sm_event_identity_resolving_failed_get_address(const uint8_t * event, bd_addr_t address){
1266     reverse_bd_addr(&event[5], address);
1267 }
1268 #endif
1269 
1270 #ifdef ENABLE_BLE
1271 /**
1272  * @brief Get field handle from event sm_event_identity_resolving_succeeded
1273  * @param Event packet
1274  * @return handle
1275  * @note: btstack_type H
1276  */
1277 static inline hci_con_handle_t sm_event_identity_resolving_succeeded_get_handle(const uint8_t * event){
1278     return little_endian_read_16(event, 2);
1279 }
1280 /**
1281  * @brief Get field addr_type from event sm_event_identity_resolving_succeeded
1282  * @param Event packet
1283  * @return addr_type
1284  * @note: btstack_type 1
1285  */
1286 static inline uint8_t sm_event_identity_resolving_succeeded_get_addr_type(const uint8_t * event){
1287     return event[4];
1288 }
1289 /**
1290  * @brief Get field address from event sm_event_identity_resolving_succeeded
1291  * @param Event packet
1292  * @param Pointer to storage for address
1293  * @note: btstack_type B
1294  */
1295 static inline void sm_event_identity_resolving_succeeded_get_address(const uint8_t * event, bd_addr_t address){
1296     reverse_bd_addr(&event[5], address);
1297 }
1298 /**
1299  * @brief Get field le_device_db_index from event sm_event_identity_resolving_succeeded
1300  * @param Event packet
1301  * @return le_device_db_index
1302  * @note: btstack_type 2
1303  */
1304 static inline uint16_t sm_event_identity_resolving_succeeded_get_le_device_db_index(const uint8_t * event){
1305     return little_endian_read_16(event, 11);
1306 }
1307 #endif
1308 
1309 #ifdef ENABLE_BLE
1310 /**
1311  * @brief Get field handle from event sm_event_authorization_request
1312  * @param Event packet
1313  * @return handle
1314  * @note: btstack_type H
1315  */
1316 static inline hci_con_handle_t sm_event_authorization_request_get_handle(const uint8_t * event){
1317     return little_endian_read_16(event, 2);
1318 }
1319 /**
1320  * @brief Get field addr_type from event sm_event_authorization_request
1321  * @param Event packet
1322  * @return addr_type
1323  * @note: btstack_type 1
1324  */
1325 static inline uint8_t sm_event_authorization_request_get_addr_type(const uint8_t * event){
1326     return event[4];
1327 }
1328 /**
1329  * @brief Get field address from event sm_event_authorization_request
1330  * @param Event packet
1331  * @param Pointer to storage for address
1332  * @note: btstack_type B
1333  */
1334 static inline void sm_event_authorization_request_get_address(const uint8_t * event, bd_addr_t address){
1335     reverse_bd_addr(&event[5], address);
1336 }
1337 #endif
1338 
1339 #ifdef ENABLE_BLE
1340 /**
1341  * @brief Get field handle from event sm_event_authorization_result
1342  * @param Event packet
1343  * @return handle
1344  * @note: btstack_type H
1345  */
1346 static inline hci_con_handle_t sm_event_authorization_result_get_handle(const uint8_t * event){
1347     return little_endian_read_16(event, 2);
1348 }
1349 /**
1350  * @brief Get field addr_type from event sm_event_authorization_result
1351  * @param Event packet
1352  * @return addr_type
1353  * @note: btstack_type 1
1354  */
1355 static inline uint8_t sm_event_authorization_result_get_addr_type(const uint8_t * event){
1356     return event[4];
1357 }
1358 /**
1359  * @brief Get field address from event sm_event_authorization_result
1360  * @param Event packet
1361  * @param Pointer to storage for address
1362  * @note: btstack_type B
1363  */
1364 static inline void sm_event_authorization_result_get_address(const uint8_t * event, bd_addr_t address){
1365     reverse_bd_addr(&event[5], address);
1366 }
1367 /**
1368  * @brief Get field authorization_result from event sm_event_authorization_result
1369  * @param Event packet
1370  * @return authorization_result
1371  * @note: btstack_type 1
1372  */
1373 static inline uint8_t sm_event_authorization_result_get_authorization_result(const uint8_t * event){
1374     return event[11];
1375 }
1376 #endif
1377 
1378 #ifdef ENABLE_BLE
1379 /**
1380  * @brief Get field subevent_code from event ancs_subevent_client_connected
1381  * @param Event packet
1382  * @return subevent_code
1383  * @note: btstack_type 1
1384  */
1385 static inline uint8_t ancs_subevent_client_connected_get_subevent_code(const uint8_t * event){
1386     return event[2];
1387 }
1388 /**
1389  * @brief Get field handle from event ancs_subevent_client_connected
1390  * @param Event packet
1391  * @return handle
1392  * @note: btstack_type H
1393  */
1394 static inline hci_con_handle_t ancs_subevent_client_connected_get_handle(const uint8_t * event){
1395     return little_endian_read_16(event, 3);
1396 }
1397 #endif
1398 
1399 #ifdef ENABLE_BLE
1400 /**
1401  * @brief Get field subevent_code from event ancs_subevent_client_notification
1402  * @param Event packet
1403  * @return subevent_code
1404  * @note: btstack_type 1
1405  */
1406 static inline uint8_t ancs_subevent_client_notification_get_subevent_code(const uint8_t * event){
1407     return event[2];
1408 }
1409 /**
1410  * @brief Get field handle from event ancs_subevent_client_notification
1411  * @param Event packet
1412  * @return handle
1413  * @note: btstack_type H
1414  */
1415 static inline hci_con_handle_t ancs_subevent_client_notification_get_handle(const uint8_t * event){
1416     return little_endian_read_16(event, 3);
1417 }
1418 /**
1419  * @brief Get field attribute_id from event ancs_subevent_client_notification
1420  * @param Event packet
1421  * @return attribute_id
1422  * @note: btstack_type 2
1423  */
1424 static inline uint16_t ancs_subevent_client_notification_get_attribute_id(const uint8_t * event){
1425     return little_endian_read_16(event, 5);
1426 }
1427 /**
1428  * @brief Get field text from event ancs_subevent_client_notification
1429  * @param Event packet
1430  * @return text
1431  * @note: btstack_type T
1432  */
1433 static inline const char * ancs_subevent_client_notification_get_text(const uint8_t * event){
1434     return (const char *) &event[7];
1435 }
1436 #endif
1437 
1438 #ifdef ENABLE_BLE
1439 /**
1440  * @brief Get field subevent_code from event ancs_subevent_client_disconnected
1441  * @param Event packet
1442  * @return subevent_code
1443  * @note: btstack_type 1
1444  */
1445 static inline uint8_t ancs_subevent_client_disconnected_get_subevent_code(const uint8_t * event){
1446     return event[2];
1447 }
1448 /**
1449  * @brief Get field handle from event ancs_subevent_client_disconnected
1450  * @param Event packet
1451  * @return handle
1452  * @note: btstack_type H
1453  */
1454 static inline hci_con_handle_t ancs_subevent_client_disconnected_get_handle(const uint8_t * event){
1455     return little_endian_read_16(event, 3);
1456 }
1457 #endif
1458 
1459 
1460 
1461 /* API_END */
1462 
1463 #if defined __cplusplus
1464 }
1465 #endif
1466 
1467 #endif // __BTSTACK_EVENT_H
1468