xref: /btstack/src/btstack_defines.h (revision 5308d607716dbfcb99a3b9b238a8d3d356aa1ae3)
1 /*
2  * Copyright (C) 2015 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 BLUEKITCHEN
24  * GMBH 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 definitions, events, and error codes
41  *
42  */
43 
44 #ifndef BTSTACK_DEFINES_H
45 #define BTSTACK_DEFINES_H
46 #include <stdint.h>
47 #include "btstack_version.h"
48 
49 #include "btstack_linked_list.h"
50 
51 // UNUSED macro
52 #ifndef UNUSED
53 #define UNUSED(x) (void)(x)
54 #endif
55 
56 
57 // Get the number of entries in an array ('x' must NOT be a pointer!)
58 #ifndef ARRAYSIZE
59 #define ARRAYSIZE(x) (sizeof(x)/sizeof((x)[0]))
60 #endif
61 
62 // TYPES
63 
64 // packet handler
65 typedef void (*btstack_packet_handler_t) (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size);
66 
67 // packet callback supporting multiple registrations
68 typedef struct {
69     btstack_linked_item_t    item;
70     btstack_packet_handler_t callback;
71 } btstack_packet_callback_registration_t;
72 
73 // context callback supporting multiple registrations
74 typedef struct {
75   btstack_linked_item_t * item;
76   void (*callback)(void * context);
77   void * context;
78 } btstack_context_callback_registration_t;
79 
80 /**
81  * @brief 128 bit key used with AES128 in Security Manager
82  */
83 typedef uint8_t sm_key_t[16];
84 
85 // DEFINES
86 
87 // hci con handles (12 bit): 0x0000..0x0fff
88 #define HCI_CON_HANDLE_INVALID  0xffffu
89 
90 
91 #define DAEMON_EVENT_PACKET     0x05u
92 
93 // L2CAP data
94 #define L2CAP_DATA_PACKET       0x06u
95 
96 // RFCOMM data
97 #define RFCOMM_DATA_PACKET      0x07u
98 
99 // Attribute protocol data
100 #define ATT_DATA_PACKET         0x08u
101 
102 // Security Manager protocol data
103 #define SM_DATA_PACKET          0x09u
104 
105 // SDP query result - only used by daemon
106 // format: type (8), record_id (16), attribute_id (16), attribute_length (16), attribute_value (max 1k)
107 #define SDP_CLIENT_PACKET       0x0au
108 
109 // BNEP data
110 #define BNEP_DATA_PACKET        0x0bu
111 
112 // Unicast Connectionless Data
113 #define UCD_DATA_PACKET         0x0cu
114 
115 // GOEP data
116 #define GOEP_DATA_PACKET        0x0du
117 
118 // PBAP data
119 #define PBAP_DATA_PACKET        0x0eu
120 
121 // AVRCP browsing data
122 #define AVRCP_BROWSING_DATA_PACKET     0x0fu
123 
124 // MAP data
125 #define MAP_DATA_PACKET        0x10u
126 
127 // BIP data
128 #define BIP_DATA_PACKET         0x11
129 
130 // Mesh Provisioning PDU
131 #define PROVISIONING_DATA_PACKET 0x12u
132 
133 // Mesh Proxy PDU
134 #define MESH_PROXY_DATA_PACKET   0x12u
135 
136 // Mesh Network PDU
137 #define MESH_NETWORK_PACKET      0x13u
138 
139 // Mesh Network PDU
140 #define MESH_BEACON_PACKET       0x14u
141 
142 // debug log messages
143 #define LOG_MESSAGE_PACKET      0xfcu
144 
145 
146 // DAEMON COMMANDS
147 
148 #define OGF_BTSTACK 0x3du
149 
150 // cmds for BTstack
151 // get state: @return HCI_STATE
152 #define BTSTACK_GET_STATE                                  0x01u
153 
154 // set power mode: param HCI_POWER_MODE
155 #define BTSTACK_SET_POWER_MODE                             0x02u
156 
157 // set capture mode: param on
158 #define BTSTACK_SET_ACL_CAPTURE_MODE                       0x03u
159 
160 // get BTstack version
161 #define BTSTACK_GET_VERSION                                0x04u
162 
163 // get system Bluetooth state
164 #define BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED               0x05u
165 
166 // set system Bluetooth state
167 #define BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED               0x06u
168 
169 // enable inquiry scan for this client
170 #define BTSTACK_SET_DISCOVERABLE                           0x07u
171 
172 // set global Bluetooth state
173 #define BTSTACK_SET_BLUETOOTH_ENABLED                      0x08u
174 
175 // create l2cap channel: param bd_addr(48), psm (16)
176 #define L2CAP_CREATE_CHANNEL                               0x20u
177 
178 // disconnect l2cap disconnect, param channel(16), reason(8)
179 #define L2CAP_DISCONNECT                                   0x21u
180 
181 // register l2cap service: param psm(16), mtu (16)
182 #define L2CAP_REGISTER_SERVICE                             0x22u
183 
184 // unregister l2cap disconnect, param psm(16)
185 #define L2CAP_UNREGISTER_SERVICE                           0x23u
186 
187 // accept connection param bd_addr(48), dest cid (16)
188 #define L2CAP_ACCEPT_CONNECTION                            0x24u
189 
190 // decline l2cap disconnect,param bd_addr(48), dest cid (16), reason(8)
191 #define L2CAP_DECLINE_CONNECTION                           0x25u
192 
193 // create l2cap channel: param bd_addr(48), psm (16), mtu (16)
194 #define L2CAP_CREATE_CHANNEL_MTU                           0x26u
195 
196 // request can send now event: l2cap_cid
197 #define L2CAP_REQUEST_CAN_SEND_NOW                         0x27u
198 
199 // register SDP Service Record: service record (size)
200 #define SDP_REGISTER_SERVICE_RECORD                        0x30u
201 
202 // unregister SDP Service Record
203 #define SDP_UNREGISTER_SERVICE_RECORD                      0x31u
204 
205 // Get remote RFCOMM services
206 #define SDP_CLIENT_QUERY_RFCOMM_SERVICES                   0x32u
207 
208 // Get remote SDP services
209 #define SDP_CLIENT_QUERY_SERVICES                          0x33u
210 
211 // RFCOMM "HCI" Commands
212 #define RFCOMM_CREATE_CHANNEL                              0x40u
213 #define RFCOMM_DISCONNECT                                  0x41u
214 #define RFCOMM_REGISTER_SERVICE                            0x42u
215 #define RFCOMM_UNREGISTER_SERVICE                          0x43u
216 #define RFCOMM_ACCEPT_CONNECTION                           0x44u
217 #define RFCOMM_DECLINE_CONNECTION                          0x45u
218 #define RFCOMM_CREATE_CHANNEL_WITH_CREDITS                 0x47u
219 #define RFCOMM_PERSISTENT_CHANNEL                          0x46u
220 #define RFCOMM_REGISTER_SERVICE_WITH_CREDITS               0x48u
221 #define RFCOMM_GRANT_CREDITS                               0x49u
222 // request can send now event: rfcomm_cid
223 #define RFCOMM_REQUEST_CAN_SEND_NOW                        0x4Au
224 
225 // GAP Classic 0x50u
226 #define GAP_DISCONNECT                0x50u
227 #define GAP_INQUIRY_START             0x51u
228 #define GAP_INQUIRY_STOP              0x52u
229 #define GAP_REMOTE_NAME_REQUEST       0x53u
230 #define GAP_DROP_LINK_KEY_FOR_BD_ADDR 0x54u
231 #define GAP_DELETE_ALL_LINK_KEYS      0x55u
232 #define GAP_PIN_CODE_RESPONSE         0x56u
233 #define GAP_PIN_CODE_NEGATIVE         0x57u
234 
235 // GAP LE      0x60u
236 #define GAP_LE_SCAN_START           0x60u
237 #define GAP_LE_SCAN_STOP            0x61u
238 #define GAP_LE_CONNECT              0x62u
239 #define GAP_LE_CONNECT_CANCEL       0x63u
240 #define GAP_LE_SET_SCAN_PARAMETERS  0x64u
241 
242 // GATT (Client) 0x70u
243 #define GATT_DISCOVER_ALL_PRIMARY_SERVICES                       0x70u
244 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID16                 0x71u
245 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID128                0x72u
246 #define GATT_FIND_INCLUDED_SERVICES_FOR_SERVICE                  0x73u
247 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE                0x74u
248 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID128     0x75u
249 #define GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS                 0x76u
250 #define GATT_READ_VALUE_OF_CHARACTERISTIC                        0x77u
251 #define GATT_READ_LONG_VALUE_OF_CHARACTERISTIC                   0x78u
252 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC_WITHOUT_RESPONSE      0x79u
253 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC                       0x7Au
254 #define GATT_WRITE_LONG_VALUE_OF_CHARACTERISTIC                  0x7Bu
255 #define GATT_RELIABLE_WRITE_LONG_VALUE_OF_CHARACTERISTIC         0x7Cu
256 #define GATT_READ_CHARACTERISTIC_DESCRIPTOR                      0X7Du
257 #define GATT_READ_LONG_CHARACTERISTIC_DESCRIPTOR                 0X7Eu
258 #define GATT_WRITE_CHARACTERISTIC_DESCRIPTOR                     0X7Fu
259 #define GATT_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR                0X80u
260 #define GATT_WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION           0X81u
261 #define GATT_GET_MTU                                             0x82u
262 
263 // SM 0x90u
264 #define SM_SET_AUTHENTICATION_REQUIREMENTS 0x90u
265 #define SM_SET_IO_CAPABILITIES             0x92u
266 #define SM_BONDING_DECLINE                 0x93u
267 #define SM_JUST_WORKS_CONFIRM              0x94u
268 #define SM_NUMERIC_COMPARISON_CONFIRM      0x95u
269 #define SM_PASSKEY_INPUT                   0x96u
270 
271 // ATT
272 
273 // ..
274 // Internal properties reuse some GATT Characteristic Properties fields
275 #define ATT_DB_VERSION                                     0x01u
276 
277 // EVENTS
278 
279 // Events from host controller to host
280 
281 /**
282  * @brief Custom NOP Event - used for internal testing
283  */
284 #define HCI_EVENT_NOP                                      0x00u
285 
286 /**
287  * @format 1
288  * @param status
289  */
290 #define HCI_EVENT_INQUIRY_COMPLETE                         0x01u
291 
292 /**
293  * @format 1B11132
294  * @param num_responses
295  * @param bd_addr
296  * @param page_scan_repetition_mode
297  * @param reserved1
298  * @param reserved2
299  * @param class_of_device
300  * @param clock_offset
301  */
302 #define HCI_EVENT_INQUIRY_RESULT                           0x02u
303 
304 /**
305  * @format 12B11
306  * @param status
307  * @param connection_handle
308  * @param bd_addr
309  * @param link_type
310  * @param encryption_enabled
311  */
312 #define HCI_EVENT_CONNECTION_COMPLETE                      0x03u
313 /**
314  * @format B31
315  * @param bd_addr
316  * @param class_of_device
317  * @param link_type
318  */
319 #define HCI_EVENT_CONNECTION_REQUEST                       0x04u
320 /**
321  * @format 121
322  * @param status
323  * @param connection_handle
324  * @param reason
325  */
326 #define HCI_EVENT_DISCONNECTION_COMPLETE                   0x05u
327 /**
328  * @format 12
329  * @param status
330  * @param connection_handle
331  */
332 #define HCI_EVENT_AUTHENTICATION_COMPLETE                 0x06u
333 
334 // HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT is deprecated, use HCI_EVENT_AUTHENTICATION_COMPLETE instead
335 #define HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT HCI_EVENT_AUTHENTICATION_COMPLETE
336 
337 /**
338  * @format 1BN
339  * @param status
340  * @param bd_addr
341  * @param remote_name
342  */
343 #define HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE             0x07u
344 
345 /**
346  * @format 121
347  * @param status
348  * @param connection_handle
349  * @param encryption_enabled
350  */
351 #define HCI_EVENT_ENCRYPTION_CHANGE                        0x08u
352 
353 /**
354  * @format 12
355  * @param status
356  * @param connection_handle
357  */
358 #define HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE      0x09u
359 
360 /**
361  * @format 121
362  * @param status
363  * @param connection_handle
364  * @param key_flag
365  */
366 #define HCI_EVENT_MASTER_LINK_KEY_COMPLETE                 0x0Au
367 
368 #define HCI_EVENT_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE  0x0Bu
369 
370 /**
371  * @format 12122
372  * @param status
373  * @param connection_handle
374  * @param version
375  * @param manufacturer_name
376  * @param subversion
377  */
378 #define HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0Cu
379 
380 #define HCI_EVENT_QOS_SETUP_COMPLETE                       0x0Du
381 
382 /**
383  * @format 12R
384  * @param num_hci_command_packets
385  * @param command_opcode
386  * @param return_parameters
387  */
388 #define HCI_EVENT_COMMAND_COMPLETE                         0x0Eu
389 /**
390  * @format 112
391  * @param status
392  * @param num_hci_command_packets
393  * @param command_opcode
394  */
395 #define HCI_EVENT_COMMAND_STATUS                           0x0Fu
396 
397 /**
398  * @format 1
399  * @param hardware_code
400  */
401 #define HCI_EVENT_HARDWARE_ERROR                           0x10u
402 
403 /**
404  * @format H
405  * @param handle
406  */
407 #define HCI_EVENT_FLUSH_OCCURRED                           0x11u
408 
409 /**
410  * @format 1B1
411  * @param status
412  * @param bd_addr
413  * @param role
414  */
415 #define HCI_EVENT_ROLE_CHANGE                              0x12u
416 
417 // TODO: number_of_handles 1, connection_handle[H*i], hc_num_of_completed_packets[2*i]
418 #define HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS              0x13u
419 
420 /**
421  * @format 1H12
422  * @param status
423  * @param handle
424  * @param mode
425  * @param interval
426  */
427 #define HCI_EVENT_MODE_CHANGE                              0x14u
428 
429 // TODO: num_keys, bd_addr[B*i], link_key[16 octets * i]
430 #define HCI_EVENT_RETURN_LINK_KEYS                         0x15u
431 
432 /**
433  * @format B
434  * @param bd_addr
435  */
436 #define HCI_EVENT_PIN_CODE_REQUEST                         0x16u
437 
438 /**
439  * @format B
440  * @param bd_addr
441  */
442 #define HCI_EVENT_LINK_KEY_REQUEST                         0x17u
443 
444 // TODO: bd_addr B, link_key 16octets, key_type 1
445 #define HCI_EVENT_LINK_KEY_NOTIFICATION                    0x18u
446 
447 // event params contains HCI ccommand
448 #define HCI_EVENT_LOOPBACK_COMMAND                         0x19u
449 
450 /**
451  * @format 1
452  * @param link_type
453  */
454 #define HCI_EVENT_DATA_BUFFER_OVERFLOW                     0x1Au
455 
456 /**
457  * @format H1
458  * @param handle
459  * @param lmp_max_slots
460  */
461 #define HCI_EVENT_MAX_SLOTS_CHANGED                        0x1Bu
462 
463 /**
464  * @format 1H2
465  * @param status
466  * @param handle
467  * @param clock_offset
468  */
469 #define HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE               0x1Cu
470 
471 /**
472  * @format 1H2
473  * @param status
474  * @param handle
475  * @param packet_types
476  * @pnote packet_type is in plural to avoid clash with Java binding Packet.getPacketType()
477  */
478 #define HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED           0x1Du
479 
480 /**
481  * @format H
482  * @param handle
483  */
484 #define HCI_EVENT_QOS_VIOLATION                            0x1Eu
485 
486 // 0x1f not defined
487 
488 /**
489  * @format H1
490  * @param handle
491  * @param page_scan_repetition_mode
492  */
493 #define HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE         0x20u
494 
495 /**
496  * @format 1H1114444
497  * @param status
498  * @param handle
499  * @param unused
500  * @param flow_direction
501  * @param service_type
502  * @param token_rate
503  * @param token_bucket_size
504  * @param peak_bandwidth
505  * @param access_latency
506  *
507  */
508 #define HCI_EVENT_FLOW_SPECIFICATION_COMPLETE              0x21u
509 
510 /**
511  * @format 1B11321
512  * @param num_responses
513  * @param bd_addr
514  * @param page_scan_repetition_mode
515  * @param reserved
516  * @param class_of_device
517  * @param clock_offset
518  * @param rssi
519  */
520 #define HCI_EVENT_INQUIRY_RESULT_WITH_RSSI                 0x22u
521 
522 #define HCI_EVENT_READ_REMOTE_EXTENDED_FEATURES_COMPLETE   0x23u
523 
524 // 0x24..0x2b not defined
525 
526 /**
527  * @format 1HB111221
528  * @param status
529  * @param handle
530  * @param bd_addr
531  * @param link_type
532  * @param transmission_interval
533  * @param retransmission_interval
534  * @param rx_packet_length
535  * @param tx_packet_length
536  * @param air_mode
537  */
538 #define HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE          0x2Cu
539 
540 /**
541  * @format 1H1122
542  * @param status
543  * @param handle
544  * @param transmission_interval
545  * @param retransmission_interval
546  * @param rx_packet_length
547  * @param tx_packet_length
548  */
549 #define HCI_EVENT_SYNCHRONOUS_CONNECTION_CHANGED          0x2Du
550 
551 /**
552  * @format 1H2222
553  * @param status
554  * @param handle
555  * @param max_tx_latency
556  * @param max_rx_latency
557  * @param min_remote_timeout
558  * @param min_local_timeout
559  */
560 #define HCI_EVENT_SNIFF_SUBRATING                         0x2Eu
561 
562 // TODO: serialize extended_inquiry_response and provide parser
563 
564 /**
565  * @format 1B11321
566  * @param num_responses
567  * @param bd_addr
568  * @param page_scan_repetition_mode
569  * @param reserved
570  * @param class_of_device
571  * @param clock_offset
572  * @param rssi
573  */
574 #define HCI_EVENT_EXTENDED_INQUIRY_RESPONSE                0x2Fu
575 
576  /**
577   * @format 1H
578   * @param status
579   * @param handle
580   */
581 #define HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE          0x30u
582 
583  /**
584   * @format B
585   * @param bd_addr
586   */
587 #define HCI_EVENT_IO_CAPABILITY_REQUEST                    0x31u
588 
589 /**
590  * @format B111
591  * @param bd_addr
592  * @param io_capability
593  * @param oob_data_present
594  * @param authentication_requirements
595  */
596 #define HCI_EVENT_IO_CAPABILITY_RESPONSE                   0x32u
597 
598 /**
599  * @format B4
600  * @param bd_addr
601  * @param numeric_value
602  */
603 #define HCI_EVENT_USER_CONFIRMATION_REQUEST                0x33u
604 
605 /**
606  * @format B
607  * @param bd_addr
608  */
609 #define HCI_EVENT_USER_PASSKEY_REQUEST                     0x34u
610 
611 /**
612  * @format B
613  * @param bd_addr
614  */
615 #define HCI_EVENT_REMOTE_OOB_DATA_REQUEST                  0x35u
616 
617 /**
618  * @format 1B
619  * @param status
620  * @param bd_addr
621  */
622 #define HCI_EVENT_SIMPLE_PAIRING_COMPLETE                  0x36u
623 
624 /**
625  * @format H2
626  * @param handle
627  * @param link_supervision_timeout
628  */
629 #define HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED         0x38u
630 
631 /**
632  * @format H
633  * @param handle
634  */
635 #define HCI_EVENT_ENHANCED_FLUSH_COMPLETE                  0x39u
636 
637 // 0x03a not defined
638 
639 /**
640  * @format B4
641  * @param bd_addr
642  * @param numeric_value
643  */
644 #define HCI_EVENT_USER_PASSKEY_NOTIFICATION                0x3Bu
645 
646 /**
647  * @format B1
648  * @param bd_addr
649  * @param notification_type
650  */
651 #define HCI_EVENT_KEYPRESS_NOTIFICATION                    0x3Cu
652 
653 #define HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES           0x3Du
654 
655 #define HCI_EVENT_LE_META                                  0x3Eu
656 
657 // 0x3f..0x47 not defined
658 
659 #define HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS          0x48u
660 
661 // 0x49..0x58 not defined
662 
663 /**
664  * @format 1211
665  * @param status
666  * @param connection_handle
667  * @param encryption_enabled
668  * @param encryption_key_size
669  */
670 #define HCI_EVENT_ENCRYPTION_CHANGE_V2                     0x59u
671 
672 // last used HCI_EVENT in 5.3 is 0x59u
673 
674 #define HCI_EVENT_VENDOR_SPECIFIC                          0xFFu
675 
676 /**
677  * @format 11H11B2221
678  * @param subevent_code
679  * @param status
680  * @param connection_handle
681  * @param role
682  * @param peer_address_type
683  * @param peer_address
684  * @param conn_interval
685  * @param conn_latency
686  * @param supervision_timeout
687  * @param master_clock_accuracy
688  */
689 #define HCI_SUBEVENT_LE_CONNECTION_COMPLETE                0x01u
690 
691 // array of advertisements, not handled by event accessor generator
692 #define HCI_SUBEVENT_LE_ADVERTISING_REPORT                 0x02u
693 
694 /**
695  * @format 11H222
696  * @param subevent_code
697  * @param status
698  * @param connection_handle
699  * @param conn_interval
700  * @param conn_latency
701  * @param supervision_timeout
702  */
703  #define HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE         0x03u
704 
705 /**
706  * @format 1HD
707  * @param subevent_code
708  * @param connection_handle
709  * @param le_features
710  */
711 #define HCI_SUBEVENT_LE_READ_REMOTE_FEATURES_COMPLETE 0x04u
712 
713 /**
714  * @format 1HD2
715  * @param subevent_code
716  * @param connection_handle
717  * @param random_number
718  * @param encryption_diversifier
719  */
720 #define HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST              0x05u
721 
722 /**
723  * @format 1H2222
724  * @param subevent_code
725  * @param connection_handle
726  * @param interval_min
727  * @param interval_max
728  * @param latency
729  * @param timeout
730  */
731 #define HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 0x06u
732 
733 /**
734  * @format 1H2222
735  * @param subevent_code
736  * @param connection_handle
737  * @param max_tx_octets
738  * @param max_tx_time
739  * @param max_rx_octets
740  * @param max_rx_time
741  */
742 #define HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 0x07u
743 
744 /**
745  * @format 11QQ
746  * @param subevent_code
747  * @param status
748  * @param dhkey_x x coordinate of P256 public key
749  * @param dhkey_y y coordinate of P256 public key
750  */
751 #define HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 0x08u
752 
753  /**
754  * @format 11Q
755  * @param subevent_code
756  * @param status
757  * @param dhkey Diffie-Hellman key
758  */
759 #define HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE            0x09u
760 
761 /**
762  * @format 11H11BBB2221
763  * @param subevent_code
764  * @param status
765  * @param connection_handle
766  * @param role
767  * @param peer_address_type
768  * @param peer_addresss
769  * @param local_resolvable_private_address
770  * @param peer_resolvable_private_address
771  * @param conn_interval
772  * @param conn_latency
773  * @param supervision_timeout
774  * @param master_clock_accuracy
775  */
776 #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V1       0x0Au
777 
778 // array of advertisements, not handled by event accessor generator
779 #define HCI_SUBEVENT_LE_DIRECT_ADVERTISING_REPORT          0x0Bu
780 
781 /**
782  * @format 11H1
783  * @param subevent_code
784  * @param status
785  * @param connection_handle
786  * @param tx_phy
787  */
788 #define HCI_SUBEVENT_LE_PHY_UPDATE_COMPLETE                0x0Cu
789 
790 // array of advertisements, not handled by event accessor generator
791 #define HCI_SUBEVENT_LE_EXTENDED_ADVERTISING_REPORT        0x0Du
792 
793 /**
794  * @format 11H11B121
795  * @param subevent_code
796  * @param status
797  * @param sync_handle
798  * @param advertising_sid
799  * @param advertiser_address_type
800  * @param advertiser_address
801  * @param advertiser_phy
802  * @param periodic_advertising_interval
803  * @param advertiser_clock_accuracy
804  */
805 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHMENT 0x0Eu
806 
807 /**
808  * @format 1H1111JV
809  * @param subevent_code
810  * @param sync_handle
811  * @param tx_power
812  * @param rssi
813  * @param cte_type
814  * @param data_status
815  * @param data_length
816  * @param data
817 */
818 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_REPORT             0x0Fu
819 
820 /**
821  * @format 1H
822  * @param subevent_code
823  * @param sync_handle
824  */
825 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_LOST          0x10u
826 
827 /**
828  * @format 1
829  * @param subevent_code
830  */
831 #define HCI_SUBEVENT_LE_SCAN_TIMEOUT                            0x11u
832 
833 /**
834  * @format 111H1
835  * @param subevent_code
836  * @param status
837  * @param advertising_handle
838  * @param connection_handle
839  * @param num_completed_exteneded_advertising_events
840  */
841 #define HCI_SUBEVENT_LE_ADVERTISING_SET_TERMINATED              0x12u
842 
843 /**
844  * @format 111B
845  * @param subevent_code
846  * @param advertising_handle
847  * @param scanner_address_type
848  * @param scanner_address
849  */
850 #define HCI_SUBEVENT_LE_SCAN_REQUEST_RECEIVED                   0x13u
851 
852 /**
853  * @format 1H1
854  * @param subevent_code
855  * @param connection_handle
856  * @param channel_selection_algorithm
857  */
858 #define HCI_SUBEVENT_LE_CHANNEL_SELECTION_ALGORITHM             0x14u
859 
860 // array of advertisements, not handled by event accessor generator
861 #define HCI_SUBEVENT_LE_CONNECTIONLESS_IQ_REPORT                0x15u
862 
863 // array of advertisements, not handled by event accessor generator
864 #define HCI_SUBEVENT_LE_CONNECTION_IQ_REPORT                    0x16u
865 
866 /**
867  * @format 11H
868  * @param subevent_code
869  * @param status
870  * @param connection_handle
871  */
872 #define HCI_SUBEVENT_LE_LE_CTE_REQUEST_FAILED                   0x17u
873 
874 /**
875  * @format 11H2H11B121
876  * @param subevent_code
877  * @param status
878  * @param connection_handle
879  * @param service_data
880  * @param sync_handle
881  * @param advertising_sid
882  * @param advertiser_address_type
883  * @param advertiser_address
884  * @param advertiser_phy
885  * @param periodic_advertising_interval
886  * @param advertiser_clock_accuracy
887  */
888 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_RECEIVED 0x18u
889 
890 /**
891  * @format 11H33331111111222
892  * @param subevent_code
893  * @param status
894  * @param connection_handle
895  * @param cig_sync_delay
896  * @param cis_sync_delay
897  * @param transport_latency_c_to_p
898  * @param transport_latency_p_to_c
899  * @param phy_c_to_p
900  * @param phy_p_to_c
901  * @param nse
902  * @param bn_c_to_p
903  * @param bn_p_to_c
904  * @param ft_c_to_p
905  * @param ft_p_to_c
906  * @param max_pdu_c_to_p
907  * @param max_pdu_p_to_c
908  * @param iso_interval
909  */
910 #define HCI_SUBEVENT_LE_CIS_ESTABLISHED                          0x19u
911 
912 /**
913  * @format 1HH11
914  * @param subevent_code
915  * @param acl_connection_handle
916  * @param cis_connection_handle
917  * @param cig_id
918  * @param cis_id
919  */
920 #define HCI_SUBEVENT_LE_CIS_REQUEST                            0x1au
921 
922 // array of advertisements, not handled by event accessor generator
923 #define HCI_SUBEVENT_LE_CREATE_BIG_COMPLETE                     0x1Bu
924 
925 /**
926  * @format 111
927  * @param subevent_code
928  * @param big_handle
929  * @param reason
930  */
931 #define HCI_SUBEVENT_LE_TERMINATE_BIG_COMPLETE                   0x1Cu
932 
933 // array of advertisements, not handled by event accessor generator
934 #define HCI_SUBEVENT_LE_BIG_SYNC_ESTABLISHED                     0x1Du
935 
936 /**
937  * @format 111
938  * @param subevent_code
939  * @param big_handle
940  * @param reason
941  */
942 #define HCI_SUBEVENT_LE_BIG_SYNC_LOST                            0x1Eu
943 
944 /**
945  * @format 11H1
946  * @param subevent_code
947  * @param status
948  * @param connection_handle
949  * @param peer_clock_accuracy
950  */
951 #define HCI_SUBEVENT_LE_REQUEST_PEER_SCA_COMPLETE                0x1Fu
952 
953 /**
954  * @format 11H11111
955  * @param subevent_code
956  * @param status
957  * @param connection_handle
958  * @param reason
959  * @param phy
960  * @param tx_power_level
961  * @param tx_power_level_flag
962  * @param delta
963  */
964 #define HCI_SUBEVENT_LE_TRANSMIT_POWER_REPORTING                 0x21u
965 
966 /**
967  * @format 1H112111232111
968  * @param subevent_code
969  * @param sync_handle
970  * @param num_bis
971  * @param nse
972  * @param iso_interval
973  * @param bn
974  * @param pto
975  * @param irc
976  * @param max_pdu
977  * @param sdu_interval
978  * @param max_sdu
979  * @param phy
980  * @param framing
981  * @param encryption
982  */
983 #define HCI_SUBEVENT_LE_BIGINFO_ADVERTISING_REPORT                0x22u
984 
985 /**
986  * @format 11H2222
987  * @param subevent_code
988  * @param status
989  * @param connection_handle
990  * @param subrate_factor
991  * @param peripheral_latency
992  * @param continuation_number
993  * @param supervision_timeout
994  */
995 #define HCI_SUBEVENT_LE_SUBRATE_CHANGE                            0x23u
996 
997 /**
998  * @format 1111
999  * @param subevent_code
1000  * @param advertising_handle
1001  * @param subevent_start
1002  * @param subevent_data_count
1003  */
1004 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_DATA_REQUEST         0x27u
1005 
1006 /**
1007  * @format 11H11BBB22211H
1008  * @param subevent_code
1009  * @param status
1010  * @param connection_handle
1011  * @param role
1012  * @param peer_address_type
1013  * @param peer_addresss
1014  * @param local_resolvable_private_address
1015  * @param peer_resolvable_private_address
1016  * @param conn_interval
1017  * @param conn_latency
1018  * @param supervision_timeout
1019  * @param master_clock_accuracy
1020  * @param advertising_handle
1021  * @param sync_handle
1022  */
1023 #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2           0x29u
1024 
1025 /** Internal BTstack events */
1026 #define BTSTACK_EVENT_FIRST                               BTSTACK_EVENT_STATE
1027 
1028 /**
1029  * @format 1
1030  * @param state
1031  */
1032 #define BTSTACK_EVENT_STATE                                0x60u
1033 
1034 /**
1035  * @format 1
1036  * @param number_connections
1037  */
1038 #define BTSTACK_EVENT_NR_CONNECTIONS_CHANGED               0x61u
1039 
1040 /**
1041  * @format
1042  */
1043 #define BTSTACK_EVENT_POWERON_FAILED                       0x62u
1044 
1045 /**
1046  * @format 11
1047  * @param discoverable
1048  * @param connectable
1049  */
1050 #define BTSTACK_EVENT_SCAN_MODE_CHANGED                    0x66u
1051 
1052 // Daemon Events
1053 
1054 /**
1055  * @format 112
1056  * @param major
1057  * @param minor
1058  @ @param revision
1059  */
1060 #define DAEMON_EVENT_VERSION                               0x63u
1061 
1062 // data: system bluetooth on/off (bool)
1063 /**
1064  * @format 1
1065  * @param system_bluetooth_enabled
1066  */
1067 #define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED              0x64u
1068 
1069 // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes)
1070 
1071 /*
1072  * @format 1BT
1073  * @param status == 0 to match read_remote_name_request
1074  * @param address
1075  * @param name
1076  */
1077 #define DAEMON_EVENT_REMOTE_NAME_CACHED                    0x65u
1078 
1079 // internal - data: event(8)
1080 #define DAEMON_EVENT_CONNECTION_OPENED                     0x67u
1081 
1082 // internal - data: event(8)
1083 #define DAEMON_EVENT_CONNECTION_CLOSED                     0x68u
1084 
1085 // data: event(8), len(8), local_cid(16), credits(8)
1086 #define DAEMON_EVENT_L2CAP_CREDITS                         0x74u
1087 
1088 /**
1089  * @format 12
1090  * @param status
1091  * @param psm
1092  */
1093 #define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED              0x75u
1094 
1095 /**
1096  * @format 11
1097  * @param status
1098  * @param channel_id
1099  */
1100 #define DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED             0x85u
1101 
1102 /**
1103  * @format 11
1104  * @param status
1105  * @param server_channel_id
1106  */
1107 #define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL             0x86u
1108 
1109 /**
1110   * @format 14
1111   * @param status
1112   * @param service_record_handle
1113   */
1114 #define DAEMON_EVENT_SDP_SERVICE_REGISTERED                0x90u
1115 
1116 
1117 
1118 // additional HCI events
1119 
1120 /**
1121  * @brief Indicates HCI transport enters/exits Sleep mode
1122  * @format 1
1123  * @param active
1124  */
1125 #define HCI_EVENT_TRANSPORT_SLEEP_MODE                     0x69u
1126 
1127 /**
1128  * @brief Transport USB Bluetooth Controller info
1129  * @format 22JV
1130  * @param vendor_id
1131  * @param product_id
1132  * @param path_len
1133  * @param path
1134  */
1135 #define HCI_EVENT_TRANSPORT_USB_INFO                       0x6Au
1136 
1137 /**
1138  * @brief Transport ready
1139  */
1140 #define HCI_EVENT_TRANSPORT_READY                          0x6Du
1141 
1142 /**
1143  * @brief Outgoing packet
1144  */
1145 #define HCI_EVENT_TRANSPORT_PACKET_SENT                    0x6Eu
1146 
1147 /**
1148  * @format 11H
1149  * @param big_handle
1150  * @param bis_index
1151  * @param con_handle
1152  */
1153 #define HCI_EVENT_BIS_CAN_SEND_NOW                         0x6Bu
1154 
1155 /**
1156  * @format H
1157  * @param cis_con_handle
1158  */
1159 #define HCI_EVENT_CIS_CAN_SEND_NOW                         0x6Cu
1160 
1161 /**
1162  * @format
1163  */
1164 #define HCI_EVENT_SCO_CAN_SEND_NOW                         0x6Fu
1165 
1166 
1167 // L2CAP EVENTS
1168 
1169 /**
1170  * @format 1BH222222111
1171  * @param status
1172  * @param address
1173  * @param handle
1174  * @param psm
1175  * @param local_cid
1176  * @param remote_cid
1177  * @param local_mtu
1178  * @param remote_mtu
1179  * @param flush_timeout
1180  * @param incoming
1181  * @param mode
1182  * @param fcs
1183  */
1184 #define L2CAP_EVENT_CHANNEL_OPENED                         0x70u
1185 
1186 /*
1187  * @format 2
1188  * @param local_cid
1189  */
1190 #define L2CAP_EVENT_CHANNEL_CLOSED                         0x71u
1191 
1192 /**
1193  * @format BH222
1194  * @param address
1195  * @param handle
1196  * @param psm
1197  * @param local_cid
1198  * @param remote_cid
1199  */
1200 #define L2CAP_EVENT_INCOMING_CONNECTION                    0x72u
1201 
1202 // ??
1203 // data: event(8), len(8), handle(16)
1204 #define L2CAP_EVENT_TIMEOUT_CHECK                          0x73u
1205 
1206 /**
1207  * @format H2222
1208  * @param handle
1209  * @param interval_min
1210  * @param interval_max
1211  * @param latency
1212  * @param timeout_multiplier
1213  */
1214 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST    0x76u
1215 
1216 // data: event(8), len(8), handle(16), result (16) (0 == ok, 1 == fail)
1217  /**
1218   * @format H2
1219   * @param handle
1220   * @param result
1221   */
1222 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE   0x77u
1223 
1224  /*
1225  * @format H22
1226  * @param con_handle
1227  * @param extended_feature_mask
1228  * @param fixed_channels_supported
1229  */
1230 #define L2CAP_EVENT_INFORMATION_RESPONSE                   0x78u
1231 
1232 /**
1233  * @format 2
1234  * @param local_cid
1235  */
1236 #define L2CAP_EVENT_CAN_SEND_NOW                           0x79u
1237 
1238 /*
1239  * @format 2
1240  * @param local_cid
1241  */
1242 #define L2CAP_EVENT_PACKET_SENT                            0x7au
1243 
1244 /*
1245  * @format 2
1246  * @param local_cid
1247  */
1248 #define L2CAP_EVENT_ERTM_BUFFER_RELEASED                   0x7bu
1249 
1250 // L2CAP Channel in LE Credit-based Flow-Control Mode (CBM)
1251 
1252 /**
1253  * @format 1BH2222
1254  * @param address_type
1255  * @param address
1256  * @param handle
1257  * @param psm
1258  * @param local_cid
1259  * @param remote_cid
1260  * @param remote_mtu
1261  */
1262 #define L2CAP_EVENT_CBM_INCOMING_CONNECTION                 0x7cu
1263 
1264 /**
1265  * @format 11BH122222
1266  * @param status
1267  * @param address_type
1268  * @param address
1269  * @param handle
1270  * @param incoming
1271  * @param psm
1272  * @param local_cid
1273  * @param remote_cid
1274  * @param local_mtu
1275  * @param remote_mtu
1276  */
1277 #define L2CAP_EVENT_CBM_CHANNEL_OPENED                      0x7du
1278 
1279 /*
1280  * @format
1281  */
1282 #define L2CAP_EVENT_TRIGGER_RUN                             0x7eu
1283 
1284 /**
1285  * @format 1BH212
1286  * @param address_type
1287  * @param address
1288  * @param handle
1289  * @param psm
1290  * @param num_channels
1291  * @param local_cid first new cid
1292  */
1293 #define L2CAP_EVENT_ECBM_INCOMING_CONNECTION               0x7fu
1294 
1295 /**
1296  * @format 11BH122222
1297  * @param status
1298  * @param address_type
1299  * @param address
1300  * @param handle
1301  * @param incoming
1302  * @param psm
1303  * @param local_cid
1304  * @param remote_cid
1305  * @param local_mtu
1306  * @param remote_mtu
1307  */
1308 #define L2CAP_EVENT_ECBM_CHANNEL_OPENED              0x8au
1309 
1310 /*
1311  * @format 222
1312  * @param remote_cid
1313  * @param mtu
1314  * @param mps
1315  */
1316 #define L2CAP_EVENT_ECBM_RECONFIGURED                0x8bu
1317 
1318 /*
1319  * @format 22
1320  * @param local_cid
1321  * @param reconfigure_result
1322  */
1323 #define L2CAP_EVENT_ECBM_RECONFIGURATION_COMPLETE    0x8cu
1324 
1325 
1326 // RFCOMM EVENTS
1327 
1328 /**
1329  * @format 1B21221
1330  * @param status
1331  * @param bd_addr
1332  * @param con_handle
1333  * @param server_channel
1334  * @param rfcomm_cid
1335  * @param max_frame_size
1336  * @param incoming
1337  */
1338 #define RFCOMM_EVENT_CHANNEL_OPENED                        0x80u
1339 
1340 /**
1341  * @format 2
1342  * @param rfcomm_cid
1343  */
1344 #define RFCOMM_EVENT_CHANNEL_CLOSED                        0x81u
1345 
1346 /**
1347  * @format B12H
1348  * @param bd_addr
1349  * @param server_channel
1350  * @param rfcomm_cid
1351  * @param con_handle
1352 
1353  */
1354 #define RFCOMM_EVENT_INCOMING_CONNECTION                   0x82u
1355 
1356 /**
1357  * @format 21
1358  * @param rfcomm_cid
1359  * @param line_status
1360  */
1361 #define RFCOMM_EVENT_REMOTE_LINE_STATUS                    0x83u
1362 
1363 /**
1364  * @format 21
1365  * @param rfcomm_cid
1366  * @param modem_status
1367  */
1368 #define RFCOMM_EVENT_REMOTE_MODEM_STATUS                   0x87u
1369 
1370 /**
1371  * note: port configuration not parsed by stack, getters provided by rfcomm.h
1372  * param rfcomm_cid
1373  * param remote - 0 for local port, 1 for remote port
1374  * param baud_rate
1375  * param data_bits
1376  * param stop_bits
1377  * param parity
1378  * param flow_control
1379  * param xon
1380  * param xoff
1381  */
1382 #define RFCOMM_EVENT_PORT_CONFIGURATION                    0x88u
1383 
1384 /**
1385  * @format 2
1386  * @param rfcomm_cid
1387  */
1388 #define RFCOMM_EVENT_CAN_SEND_NOW                          0x89u
1389 
1390 
1391 /**
1392  * @format 1
1393  * @param status
1394  */
1395 #define SDP_EVENT_QUERY_COMPLETE                                 0x91u
1396 
1397 /**
1398  * @format 1T
1399  * @param rfcomm_channel
1400  * @param name
1401  */
1402 #define SDP_EVENT_QUERY_RFCOMM_SERVICE                           0x92u
1403 
1404 /**
1405  * @format 22221
1406  * @param record_id
1407  * @param attribute_id
1408  * @param attribute_length
1409  * @param data_offset
1410  * @param data
1411  */
1412 #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE                           0x93u
1413 
1414 /**
1415  * @format 22LV
1416  * @param record_id
1417  * @param attribute_id
1418  * @param attribute_length
1419  * @param attribute_value
1420  */
1421 #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE                          0x94u
1422 
1423 /**
1424  * @format 224
1425  * @param total_count
1426  * @param record_index
1427  * @param record_handle
1428  * @note Not provided by daemon, only used for internal testing
1429  */
1430 #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE                    0x95u
1431 
1432 /**
1433  * @format H221
1434  * @param handle
1435  * @param service_id
1436  * @param connection_id
1437  * @param att_status  see ATT errors in bluetooth.h
1438  */
1439 #define GATT_EVENT_QUERY_COMPLETE                                0xA0u
1440 
1441 /**
1442  * @format H22X
1443  * @param handle
1444  * @param service_id
1445  * @param connection_id
1446  * @param service
1447  */
1448 #define GATT_EVENT_SERVICE_QUERY_RESULT                          0xA1u
1449 
1450 /**
1451  * @format H22Y
1452  * @param handle
1453  * @param service_id
1454  * @param connection_id
1455  * @param characteristic
1456  */
1457 #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT                   0xA2u
1458 
1459 /**
1460  * @format H222X
1461  * @param handle
1462  * @param service_id
1463  * @param connection_id
1464  * @param include_handle
1465  * @param service
1466  */
1467 #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT                 0xA3u
1468 
1469 /**
1470  * @format H22Z
1471  * @param handle
1472  * @param service_id
1473  * @param connection_id
1474  * @param characteristic_descriptor
1475  */
1476 #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT   0xA4u
1477 
1478 /**
1479  * @format H222LV
1480  * @param handle
1481  * @param service_id
1482  * @param connection_id
1483  * @param value_handle
1484  * @param value_length
1485  * @param value
1486  */
1487 #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT             0xA5u
1488 
1489 /**
1490  * @format H2222LV
1491  * @param handle
1492  * @param service_id
1493  * @param connection_id
1494  * @param value_handle
1495  * @param value_offset
1496  * @param value_length
1497  * @param value
1498  */
1499 #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT        0xA6u
1500 
1501 /**
1502  * @format H222LV
1503  * @param handle
1504  * @param service_id
1505  * @param connection_id
1506  * @param value_handle
1507  * @param value_length
1508  * @param value
1509  */
1510 #define GATT_EVENT_NOTIFICATION                                  0xA7u
1511 
1512 /**
1513  * @format H222LV
1514  * @param handle
1515  * @param service_id
1516  * @param connection_id
1517  * @param value_handle
1518  * @param value_length
1519  * @param value
1520  */
1521 #define GATT_EVENT_INDICATION                                    0xA8u
1522 
1523 /**
1524  * @format H222LV
1525  * @param handle
1526  * @param service_id
1527  * @param connection_id
1528  * @param descriptor_handle
1529  * @param descriptor_length
1530  * @param descriptor
1531  */
1532 #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT        0xA9u
1533 
1534 /**
1535  * @format H2222LV
1536  * @param handle
1537  * @param service_id
1538  * @param connection_id
1539  * @param descriptor_handle
1540  * @param descriptor_offset
1541  * @param descriptor_length
1542  * @param descriptor
1543  */
1544 #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT   0xAAu
1545 
1546 /**
1547  * @format H2
1548  * @param handle
1549  * @param MTU
1550  */
1551 #define GATT_EVENT_MTU                                           0xABu
1552 
1553 /**
1554  * @format H
1555  * @param handle
1556  */
1557 #define GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE                    0xACu
1558 
1559 /**
1560  * @format 11BH
1561  * @param status
1562  * @param address_type
1563  * @param address
1564  * @param handle
1565  */
1566 #define GATT_EVENT_CONNECTED                                     0xADu
1567 
1568 /**
1569  * @format H
1570  * @param handle
1571  */
1572 #define GATT_EVENT_DISCONNECTED                                  0xAEu
1573 
1574 /**
1575  * @format H22
1576  * @param handle
1577  * @param attribute_handle_start
1578  * @param attribute_handle_end
1579  */
1580 #define GATT_EVENT_SERVICE_CHANGED                               0xAFu
1581 
1582 
1583 /**
1584  * @format 1BH
1585  * @param address_type
1586  * @param address
1587  * @param handle
1588  */
1589 #define ATT_EVENT_CONNECTED                                      0xB3u
1590 
1591 /**
1592  * @format H
1593  * @param handle
1594  */
1595 #define ATT_EVENT_DISCONNECTED                                   0xB4u
1596 
1597 /**
1598  * @format H2
1599  * @param handle
1600  * @param MTU
1601  */
1602 #define ATT_EVENT_MTU_EXCHANGE_COMPLETE                          0xB5u
1603 
1604  /**
1605   * @format 1H2
1606   * @param status
1607   * @param conn_handle
1608   * @param attribute_handle
1609   */
1610 #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE               0xB6u
1611 
1612 /**
1613  * @format
1614  */
1615 #define ATT_EVENT_CAN_SEND_NOW                                   0xB7u
1616 
1617 // TODO: daemon only event
1618 
1619 /**
1620  * @format 12
1621  * @param status
1622  * @param service_uuid
1623  */
1624  #define BNEP_EVENT_SERVICE_REGISTERED                           0xC0u
1625 
1626 /**
1627  * @format 12222BH1
1628  * @param status
1629  * @param bnep_cid
1630  * @param source_uuid
1631  * @param destination_uuid
1632  * @param mtu
1633  * @param remote_address
1634  * @param con_handle
1635  * @param setup_connection_response for outgoing connections
1636  */
1637  #define BNEP_EVENT_CHANNEL_OPENED                               0xC1u
1638 
1639 /**
1640  * @format 222B
1641  * @param bnep_cid
1642  * @param source_uuid
1643  * @param destination_uuid
1644  * @param remote_address
1645  */
1646  #define BNEP_EVENT_CHANNEL_CLOSED                               0xC2u
1647 
1648 /**
1649  * @format 222B1
1650  * @param bnep_cid
1651  * @param source_uuid
1652  * @param destination_uuid
1653  * @param remote_address
1654  * @param channel_state
1655  */
1656 #define BNEP_EVENT_CHANNEL_TIMEOUT                               0xC3u
1657 
1658 /**
1659  * @format 222B
1660  * @param bnep_cid
1661  * @param source_uuid
1662  * @param destination_uuid
1663  * @param remote_address
1664  */
1665  #define BNEP_EVENT_CAN_SEND_NOW                                 0xC4u
1666 
1667  /**
1668   * @format H1B1
1669   * @param handle
1670   * @param addr_type
1671   * @param address
1672   * @param secure_connection - set to 1 if LE Secure Connection pairing will be used
1673   */
1674 #define SM_EVENT_JUST_WORKS_REQUEST                              0xC8u
1675 
1676  /**
1677   * @format H1B14
1678   * @param handle
1679   * @param addr_type
1680   * @param address
1681   * @param secure_connection - set to 1 if LE Secure Connection pairing will be used
1682   * @param passkey
1683   */
1684 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER                          0xC9u
1685 
1686  /**
1687   * @format H1B
1688   * @param handle
1689   * @param addr_type
1690   * @param address
1691   */
1692 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL                          0xCAu
1693 
1694  /**
1695   * @format H1B1
1696   * @param handle
1697   * @param addr_type
1698   * @param address
1699   * @param secure_connection - set to 1 if LE Secure Connection pairing will be used
1700   */
1701 #define SM_EVENT_PASSKEY_INPUT_NUMBER                            0xCBu
1702 
1703  /**
1704   * @format H1B14
1705   * @param handle
1706   * @param addr_type
1707   * @param address
1708   * @param secure_connection - set to 1 if LE Secure Connection pairing will be used
1709   * @param passkey
1710   */
1711 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST                      0xCCu
1712 
1713  /**
1714   * @format H1B
1715   * @param handle
1716   * @param addr_type
1717   * @param address
1718   */
1719 #define SM_EVENT_IDENTITY_RESOLVING_STARTED                      0xCDu
1720 
1721  /**
1722   * @format H1B
1723   * @param handle
1724   * @param addr_type
1725   * @param address
1726   */
1727 #define SM_EVENT_IDENTITY_RESOLVING_FAILED                       0xCEu
1728 
1729  /**
1730   * @brief Identify resolving succeeded
1731   *
1732   * @format H1B1B2
1733   * @param handle
1734   * @param addr_type
1735   * @param address
1736   * @param identity_addr_type
1737   * @param identity_address
1738   * @param index
1739   *
1740   */
1741 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED                    0xCFu
1742 
1743  /**
1744   * @format H1B
1745   * @param handle
1746   * @param addr_type
1747   * @param address
1748   */
1749 #define SM_EVENT_AUTHORIZATION_REQUEST                           0xD0u
1750 
1751  /**
1752   * @format H1B1
1753   * @param handle
1754   * @param addr_type
1755   * @param address
1756   * @param authorization_result
1757   */
1758 #define SM_EVENT_AUTHORIZATION_RESULT                            0xD1u
1759 
1760  /**
1761   * @format H1
1762   * @param handle
1763   * @param action see SM_KEYPRESS_*
1764   */
1765 #define SM_EVENT_KEYPRESS_NOTIFICATION                           0xD2u
1766 
1767  /**
1768   * @brief Emitted during pairing to inform app about address used as identity
1769   *
1770   * @format H1B1B2
1771   * @param handle
1772   * @param addr_type
1773   * @param address
1774   * @param identity_addr_type
1775   * @param identity_address
1776   * @param index
1777   */
1778 #define SM_EVENT_IDENTITY_CREATED                                0xD3u
1779 
1780 /**
1781  * @brief Emitted to inform app that pairing has started.
1782  * @format H1B
1783  * @param handle
1784  * @param addr_type
1785  * @param address
1786  */
1787 #define SM_EVENT_PAIRING_STARTED                                 0xD4u
1788 
1789 /**
1790   * @brief Emitted to inform app that pairing is complete. Possible status values:
1791   *        ERROR_CODE_SUCCESS                            -> pairing success
1792   *        ERROR_CODE_CONNECTION_TIMEOUT                 -> timeout
1793   *        ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION  -> disconnect
1794   *        ERROR_CODE_AUTHENTICATION_FAILURE             -> SM protocol error, see reason field with SM_REASON_* from bluetooth.h
1795   *
1796   * @format H1B11
1797   * @param handle
1798   * @param addr_type
1799   * @param address
1800   * @param status
1801   * @param reason if status == ERROR_CODE_AUTHENTICATION_FAILURE
1802   */
1803 #define SM_EVENT_PAIRING_COMPLETE                                0xD5u
1804 
1805 
1806 /**
1807  * @brief Proactive Authentication for bonded devices started.
1808  * @format H1B
1809  * @param handle
1810  * @param addr_type
1811  * @param address
1812  */
1813 #define SM_EVENT_REENCRYPTION_STARTED                            0xD6u
1814 
1815 /**
1816  * @brief Proactive Authentication for bonded devices complete. Possible status values:
1817  *         ERROR_CODE_SUCCESS                           -> connection secure
1818  *         ERROR_CODE_CONNECTION_TIMEOUT                -> timeout
1819  *         ERROR_CODE_PIN_OR_KEY_MISSING                -> remote did not provide (as Peripheral) or use LTK (as Central)
1820  * @format H1B1
1821  * @param handle
1822  * @param addr_type
1823  * @param address
1824  * @param status
1825  */
1826 #define SM_EVENT_REENCRYPTION_COMPLETE                           0xD7u
1827 
1828 // GAP
1829 
1830 /**
1831  * @format H1
1832  * @param handle
1833  * @param security_level
1834  */
1835 #define GAP_EVENT_SECURITY_LEVEL                                 0xD8u
1836 
1837 /**
1838  * @format 1B
1839  * @param status
1840  * @param address
1841  */
1842 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED                    0xD9u
1843 
1844 /**
1845  * @format 11B1JV
1846  * @param advertising_event_type
1847  * @param address_type
1848  * @param address
1849  * @param rssi
1850  * @param data_length
1851  * @param data
1852  */
1853 #define GAP_EVENT_ADVERTISING_REPORT                             0xDAu
1854 
1855 /**
1856  * @format 21B1111121BJV
1857  * @param advertising_event_type
1858  * @param address_type
1859  * @param address
1860  * @param primary_phy
1861  * @param secondary_phy
1862  * @param advertising_sid
1863  * @param tx_power
1864  * @param rssi
1865  * @param periodic_advertising_interval
1866  * @param direct_address_type
1867  * @param direct_address
1868  * @param data_length
1869  * @param data
1870  */
1871 #define GAP_EVENT_EXTENDED_ADVERTISING_REPORT                    0xDBu
1872 
1873  /**
1874  * @format B13211122221JV
1875  * @param bd_addr
1876  * @param page_scan_repetition_mode
1877  * @param class_of_device
1878  * @param clock_offset
1879  * @param rssi_available
1880  * @param rssi
1881  * @param device_id_available
1882  * @param device_id_vendor_id_source
1883  * @param device_id_vendor_id
1884  * @param device_id_product_id
1885  * @param device_id_version
1886  * @param name_available
1887  * @param name_len
1888  * @param name
1889  */
1890 #define GAP_EVENT_INQUIRY_RESULT                                 0xDCu
1891 
1892 /**
1893  * @format 1
1894  * @param status
1895  */
1896 #define GAP_EVENT_INQUIRY_COMPLETE                               0xDDu
1897 
1898 /**
1899  * @format H1
1900  * @param con_handle
1901  * @param rssi (signed integer -127..127)
1902  * @note Classic: rssi is in dB relative to Golden Receive Power Range
1903  * @note LE: rssi is absolute dBm
1904  */
1905 #define GAP_EVENT_RSSI_MEASUREMENT                               0xDEu
1906 
1907 /**
1908  * @format 1KKKK
1909  * @param oob_data_present 0 = none, 1 = p_192, 2 = p_256, 3 = both
1910  * @param c_192 Simple Pairing Hash C derived from P-192 public key
1911  * @param r_192 Simple Pairing Randomizer derived from P-192 public key
1912  * @param c_256 Simple Pairing Hash C derived from P-256 public key
1913  * @param r_256 Simple Pairing Randomizer derived from P-256 public key
1914  */
1915 #define GAP_EVENT_LOCAL_OOB_DATA                                 0xDFu
1916 
1917 
1918 /**
1919  * @format HB11
1920  * @param con_handle
1921  * @param bd_addr
1922  * @param ssp
1923  * @param initiator
1924  */
1925 #define GAP_EVENT_PAIRING_STARTED                                0xE0u
1926 
1927 /**
1928  * @format HB1
1929  * @param con_handle
1930  * @param bd_addr
1931  * @param status
1932  */
1933 #define GAP_EVENT_PAIRING_COMPLETE                               0xE1u
1934 
1935 // Meta Events, see below for sub events
1936 #define HCI_EVENT_META_GAP                                       0xE7u
1937 #define HCI_EVENT_HSP_META                                       0xE8u
1938 #define HCI_EVENT_HFP_META                                       0xE9u
1939 #define HCI_EVENT_ANCS_META                                      0xEAu
1940 #define HCI_EVENT_AVDTP_META                                     0xEBu
1941 #define HCI_EVENT_AVRCP_META                                     0xECu
1942 #define HCI_EVENT_GOEP_META                                      0xEDu
1943 #define HCI_EVENT_PBAP_META                                      0xEEu
1944 #define HCI_EVENT_HID_META                                       0xEFu
1945 #define HCI_EVENT_A2DP_META                                      0xF0u
1946 #define HCI_EVENT_HIDS_META                                      0xF1u
1947 #define HCI_EVENT_GATTSERVICE_META                               0xF2u
1948 #define HCI_EVENT_BIP_META                                       0xF3u
1949 #define HCI_EVENT_MAP_META                                       0xF4u
1950 #define HCI_EVENT_MESH_META                                      0xF5u
1951 #define HCI_EVENT_LEAUDIO_META                                   0xF6u
1952 
1953 // Potential other meta groups
1954 // #define HCI_EVENT_BNEP_META                                0xxx
1955 // #define HCI_EVENT_GAP_META                                 0xxx
1956 // #define HCI_EVENT_GATT_META                                0xxx
1957 // #define HCI_EVENT_PAN_META                                 0xxx
1958 // #define HCI_EVENT_SDP_META                                 0xxx
1959 // #define HCI_EVENT_SM_META                                  0xxx
1960 
1961 /** GAP Subevent */
1962 
1963 
1964 /**
1965  * @format 1111
1966  * @param subevent_code
1967  * @param advertisement_handle
1968  * @param status
1969  * @param selected_tx_power
1970  */
1971 #define GAP_SUBEVENT_ADVERTISING_SET_INSTALLED                   0x00u
1972 
1973 /**
1974  * @format 11
1975  * @param subevent_code
1976  * @param advertisement_handle
1977  */
1978 #define GAP_SUBEVENT_ADVERTISING_SET_REMOVED                     0x01u
1979 
1980 /**
1981  * @format 1111C
1982  * @param subevent_code
1983  * @param status
1984  * @param big_handle
1985  * @param num_bis
1986  * @param bis_con_handles
1987  */
1988 #define GAP_SUBEVENT_BIG_CREATED                                 0x02u
1989 
1990 /**
1991  * @format 11
1992  * @param subevent_code
1993  * @param big_handle
1994  */
1995 #define GAP_SUBEVENT_BIG_TERMINATED                              0x03u
1996 
1997 /**
1998  * @format 1111C
1999  * @param subevent_code
2000  * @param status
2001  * @param big_handle
2002  * @param num_bis
2003  * @param bis_con_handles
2004  */
2005 #define GAP_SUBEVENT_BIG_SYNC_CREATED                            0x04u
2006 
2007 /**
2008  * @format 11
2009  * @param subevent_code
2010  * @param big_handle
2011  */
2012 #define GAP_SUBEVENT_BIG_SYNC_STOPPED                            0x05u
2013 
2014 /**
2015  * @format 1111C
2016  * @param subevent_code
2017  * @param status
2018  * @param cig_id
2019  * @param num_cis
2020  * @param cis_con_handles
2021  */
2022 #define GAP_SUBEVENT_CIG_CREATED                                 0x06u
2023 
2024 /**
2025  * @format 1111HH211111
2026  * @param subevent_code
2027  * @param status
2028  * @param cig_id
2029  * @param cis_id
2030  * @param cis_con_handle
2031  * @param acl_con_handle
2032  * @param iso_interval_1250us
2033  * @param number_of_subevents
2034  * @param burst_number_c_to_p
2035  * @param burst_number_p_to_c
2036  * @param flush_timeout_c_to_p
2037  * @param flush_timeout_p_to_c
2038  */
2039 
2040 #define GAP_SUBEVENT_CIS_CREATED                                 0x07u
2041 
2042 /**
2043  * Generic version of
2044  * - HCI_SUBEVENT_LE_CONNECTION_COMPLETE
2045  * - HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V1
2046  * - HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2
2047  * @format 11H11BBB22211H
2048  * @param subevent_code
2049  * @param status
2050  * @param connection_handle
2051  * @param role
2052  * @param peer_address_type
2053  * @param peer_address
2054  * @param local_resolvable_private_address - 00..00 if not valid
2055  * @param peer_resolvable_private_address  - 00..00 if not valid
2056  * @param conn_interval
2057  * @param conn_latency
2058  * @param supervision_timeout
2059  * @param master_clock_accuracy
2060  * @param advertising_handle - 0xff   if not set
2061  * @param sync_handle        - 0xffff if not set
2062  */
2063 #define GAP_SUBEVENT_LE_CONNECTION_COMPLETE                     0x08u
2064 
2065 /** HSP Subevent */
2066 
2067 /**
2068  * @format 1H1B
2069  * @param subevent_code
2070  * @param acl_handle
2071  * @param status 0 == OK
2072  * @param bd_addr
2073  */
2074 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE             0x01u
2075 
2076 /**
2077  * @format 1H
2078  * @param subevent_code
2079  * @param acl_handle
2080  */
2081 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE           0x02u
2082 
2083 /**
2084  * @format 1H1H
2085  * @param subevent_code
2086  * @param acl_handle
2087  * @param status 0 == OK
2088  * @param sco_handle
2089  */
2090 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE             0x03u
2091 
2092 /**
2093  * @format 1HH
2094  * @param subevent_code
2095  * @param acl_handle
2096  * @param sco_handle
2097  */
2098 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE          0x04u
2099 
2100 /**
2101  * @format 1H
2102  * @param subevent_code
2103  * @param acl_handle
2104  */
2105 #define HSP_SUBEVENT_RING                                  0x05u
2106 
2107 /**
2108  * @format 1H1
2109  * @param subevent_code
2110  * @param acl_handle
2111  * @param gain Valid range: [0,15]
2112  */
2113 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED               0x06u
2114 
2115 /**
2116  * @format 1H1
2117  * @param subevent_code
2118  * @param acl_handle
2119  * @param gain Valid range: [0,15]
2120  */
2121 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED                  0x07u
2122 
2123 /**
2124  * @format 1HJV
2125  * @param subevent_code
2126  * @param acl_handle
2127  * @param value_length
2128  * @param value
2129  */
2130 #define HSP_SUBEVENT_HS_COMMAND                            0x08u
2131 
2132 /**
2133  * @format 1HJV
2134  * @param subevent_code
2135  * @param acl_handle
2136  * @param value_length
2137  * @param value
2138  */
2139 #define HSP_SUBEVENT_AG_INDICATION                         0x09u
2140 
2141 /**
2142  * @format 1H
2143  * @param subevent_code
2144  * @param acl_handle
2145  */
2146 #define HSP_SUBEVENT_BUTTON_PRESSED                        0x0au
2147 
2148 /** HFP Subevent */
2149 
2150 /**
2151  * @format 1H1B
2152  * @param subevent_code
2153  * @param acl_handle
2154  * @param status 0 == OK
2155  * @param bd_addr
2156  */
2157 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED    0x01u
2158 
2159 /**
2160  * @format 1H
2161  * @param subevent_code
2162  * @param acl_handle
2163  */
2164 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED       0x02u
2165 
2166 /**
2167  * @format 1H1HB1222
2168  * @param subevent_code
2169  * @param acl_handle
2170  * @param status 0 == OK
2171  * @param sco_handle
2172  * @param bd_addr
2173  * @param negotiated_codec
2174  * @param sco_packet_types see SCO_PACKET_TYPES_* in btstack_defines.h
2175  * @param rx_packet_length
2176  * @param tx_packet_length
2177  */
2178 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED            0x03u
2179 
2180 /**
2181  * @format 1HH
2182  * @param subevent_code
2183  * @param acl_handle
2184  * @param sco_handle
2185  */
2186 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED               0x04u
2187 
2188 /**
2189  * @format 1H1
2190  * @param subevent_code
2191  * @param acl_handle
2192  * @param status 0 == OK
2193  */
2194 #define HFP_SUBEVENT_COMPLETE                                0x05u
2195 
2196 /**
2197  * @format 1H111T
2198  * @param subevent_code
2199  * @param acl_handle
2200  * @param indicator_index
2201  * @param indicator_min_range
2202  * @param indicator_max_range
2203  * @param indicator_name
2204  */
2205 #define HFP_SUBEVENT_AG_INDICATOR_MAPPING                    0x06u
2206 
2207 /**
2208  * @format 1H1111111T
2209  * @param subevent_code
2210  * @param acl_handle
2211  * @param indicator_index
2212  * @param indicator_status
2213  * @param indicator_min_range
2214  * @param indicator_max_range
2215  * @param indicator_mandatory
2216  * @param indicator_enabled
2217  * @param indicator_status_changed
2218  * @param indicator_name
2219  */
2220 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED              0x07u
2221 
2222 /**
2223  * @format 1H11T
2224  * @param subevent_code
2225  * @param acl_handle
2226  * @param network_operator_mode
2227  * @param network_operator_format
2228  * @param network_operator_name
2229  */
2230 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED                 0x08u
2231 
2232 /**
2233  * @format 1H1
2234  * @param subevent_code
2235  * @param acl_handle
2236  * @param error
2237  */
2238 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR             0x09u
2239 
2240 /**
2241  * @format 1H
2242  * @param subevent_code
2243  * @param acl_handle
2244  */
2245 #define HFP_SUBEVENT_START_RINGING                            0x0Au
2246 
2247 /**
2248  * @format 1H
2249  * @param subevent_code
2250  * @param acl_handle
2251  */
2252 #define HFP_SUBEVENT_RING                                     0x0Bu
2253 
2254 /**
2255  * @format 1H
2256  * @param subevent_code
2257  * @param acl_handle
2258  */
2259 #define HFP_SUBEVENT_STOP_RINGING                             0x0Cu
2260 
2261 /**
2262  * @format 1HT
2263  * @param subevent_code
2264  * @param acl_handle
2265  * @param number
2266  */
2267 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER                   0x0Du
2268 
2269 /**
2270  * @format 1H
2271  * @param subevent_code
2272  * @param acl_handle
2273  */
2274 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG               0x0Eu
2275 
2276 /**
2277  * @format 1HT
2278  * @param subevent_code
2279  * @param acl_handle
2280  * @param number
2281  */
2282 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG                     0x0Fu
2283 
2284 /**
2285  * @format 1HT
2286  * @param subevent_code
2287  * @param acl_handle
2288  * @param dtmf code
2289  */
2290 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES                      0x10u
2291 
2292 /**
2293  * @format 1H
2294  * @param subevent_code
2295  * @param acl_handle
2296  */
2297 #define HFP_SUBEVENT_CALL_ANSWERED                            0x11u
2298 
2299 /**
2300  * @format 1H
2301  * @param subevent_code
2302  * @param acl_handle
2303  */
2304 #define HFP_SUBEVENT_CALL_TERMINATED                          0x12u
2305 
2306 /**
2307  * @format 1H
2308  * @param subevent_code
2309  * @param acl_handle
2310  */
2311 #define HFP_SUBEVENT_CONFERENCE_CALL                          0x13u
2312 
2313 
2314 /**
2315  * @format 1H1
2316  * @param subevent_code
2317  * @param acl_handle
2318  * @param gain
2319  */
2320 #define HFP_SUBEVENT_SPEAKER_VOLUME                           0x14u
2321 
2322 /**
2323  * @format 1H1
2324  * @param subevent_code
2325  * @param acl_handle
2326  * @param gain
2327  */
2328 #define HFP_SUBEVENT_MICROPHONE_VOLUME                        0x15u
2329 
2330 /**
2331  * @format 1H1JVJV
2332  * @param subevent_code
2333  * @param acl_handle
2334  * @param type
2335  * @param number_length
2336  * @param number
2337  * @param alpha_length
2338  * @param alpha
2339  */
2340 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION                0x16u
2341 
2342 /**
2343  * @format 1H1JVJV
2344  * @param subevent_code
2345  * @param acl_handle
2346  * @param type
2347  * @param number_length
2348  * @param number
2349  * @param alpha_length
2350  * @param alpha
2351  */
2352 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17u
2353 
2354 /**
2355  * @format 1H111111T
2356  * @param subevent_code
2357  * @param acl_handle
2358  * @param clcc_idx
2359  * @param clcc_dir
2360  * @param clcc_status
2361  * @param clcc_mode
2362  * @param clcc_mpty
2363  * @param bnip_type
2364  * @param bnip_number
2365  */
2366 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS                     0x18u
2367 
2368 /**
2369  * @format 1H11T
2370  * @param subevent_code
2371  * @param acl_handle
2372  * @param status
2373  * @param bnip_type
2374  * @param bnip_number
2375  */
2376 #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION            0x19u
2377 
2378 /**
2379  * @format 1HT
2380  * @param subevent_code
2381  * @param acl_handle
2382  * @param value
2383  */
2384 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS                 0x1Au
2385 
2386 /**
2387  * @format 1HT
2388  * @param subevent_code
2389  * @param acl_handle
2390  * @param command
2391  */
2392 #define HFP_SUBEVENT_AT_MESSAGE_SENT                          0x1Bu
2393 
2394 /**
2395  * @format 1HT
2396  * @param subevent_code
2397  * @param acl_handle
2398  * @param command
2399  */
2400 #define HFP_SUBEVENT_AT_MESSAGE_RECEIVED                      0x1Cu
2401 
2402 /**
2403  * @format 1H1
2404  * @param subevent_code
2405  * @param acl_handle
2406  * @param status
2407  */
2408 #define HFP_SUBEVENT_IN_BAND_RING_TONE                        0x1Du
2409 
2410 /**
2411  * @format 1H11
2412  * @param subevent_code
2413  * @param acl_handle
2414  * @param status      0-success
2415  * @param enhanced    0-legacy, 1-enhanced
2416  */
2417 #define HFP_SUBEVENT_VOICE_RECOGNITION_ACTIVATED                0x1Eu
2418 
2419 /**
2420  * @format 1H1
2421  * @param subevent_code
2422  * @param acl_handle
2423  * @param status      0-success
2424  */
2425 #define HFP_SUBEVENT_VOICE_RECOGNITION_DEACTIVATED               0x1Fu
2426 
2427 /**
2428  * @format 1H1
2429  * @param subevent_code
2430  * @param acl_handle
2431  * @param status
2432  */
2433 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_HF_READY_FOR_AUDIO  0x20u
2434 
2435 
2436 /**
2437  * @format 1H1
2438  * @param subevent_code
2439  * @param acl_handle
2440  * @param status
2441  */
2442 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_READY_TO_ACCEPT_AUDIO_INPUT 0x21u
2443 
2444 /**
2445  * @format 1H1
2446  * @param subevent_code
2447  * @param acl_handle
2448  * @param status
2449  */
2450 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_STARTING_SOUND 0x22u
2451 
2452 /**
2453  * @format 1H1
2454  * @param subevent_code
2455  * @param acl_handle
2456  * @param status
2457  */
2458 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_PROCESSING_AUDIO_INPUT 0x23u
2459 
2460 /**
2461  * @format 1H1
2462  * @param subevent_code
2463  * @param acl_handle
2464  * @param status
2465  */
2466 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE_SENT     0x24u
2467 
2468 
2469 /**
2470  * @format 1H211LV
2471  * @param subevent_code
2472  * @param acl_handle
2473  * @param text_id
2474  * @param text_type
2475  * @param text_operation
2476  * @param text_length
2477  * @param text
2478  */
2479 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE           0x25u
2480 
2481 /**
2482  * @format 1H1
2483  * @param subevent_code
2484  * @param acl_handle
2485  * @param status
2486  */
2487 #define HFP_SUBEVENT_ECHO_CANCELING_AND_NOISE_REDUCTION_DEACTIVATE   0x26u
2488 
2489 /**
2490  * @format 1H21
2491  * @param subevent_code
2492  * @param acl_handle
2493  * @param uuid
2494  * @param value
2495  */
2496 #define HFP_SUBEVENT_HF_INDICATOR                                    0x27u
2497 
2498 /**
2499  * @format 1H2T
2500  * @param subevent_code
2501  * @param acl_handle
2502  * @param command_id
2503  * @param command_string
2504  */
2505 #define HFP_SUBEVENT_CUSTOM_AT_COMMAND                               0x28u
2506 
2507 /**
2508  * @format 1H1
2509  * @param subevent_code
2510  * @param acl_handle
2511  * @param status 0 == OK
2512  */
2513 #define HFP_SUBEVENT_CUSTOM_AT_MESSAGE_SENT                          0x29u
2514 
2515 /**
2516  * @format 1H1
2517  * @param subevent_code
2518  * @param acl_handle
2519  * @param supported
2520  */
2521 #define HFP_SUBEVENT_APPLE_EXTENSION_SUPPORTED                       0x2Au
2522 
2523 /**
2524  * @format 1H221JV
2525  * @param subevent_code
2526  * @param acl_handle
2527  * @param vendor_id
2528  * @param product_id
2529  * @param features
2530  * @param version_len
2531  * @param version
2532  */
2533 #define HFP_SUBEVENT_APPLE_ACCESSORY_INFORMATION                     0x2Bu
2534 
2535 /**
2536  * @format 1H1
2537  * @param subevent_code
2538  * @param acl_handle
2539  * @param battery_level range:0..9
2540  */
2541 #define HFP_SUBEVENT_APPLE_BATTERY_LEVEL                             0x2Cu
2542 
2543 /**
2544  * @format 1H1
2545  * @param subevent_code
2546  * @param acl_handle
2547  * @param docket 0 = undocked, 1 = docked
2548  */
2549 #define HFP_SUBEVENT_APPLE_DOCKED_STATE                              0x2Du
2550 
2551 
2552 // ANCS Client
2553 
2554 /**
2555  * @format 1H
2556  * @param subevent_code
2557  * @param handle
2558  */
2559 #define ANCS_SUBEVENT_CLIENT_CONNECTED                              0xF0u
2560 
2561 /**
2562  * @format 1H2T
2563  * @param subevent_code
2564  * @param handle
2565  * @param attribute_id
2566  * @param text
2567  */
2568 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION                           0xF1u
2569 
2570 /**
2571  * @format 1H
2572  * @param subevent_code
2573  * @param handle
2574  */
2575 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED                           0xF2u
2576 
2577 
2578 /** AVDTP Subevent */
2579 
2580 /**
2581  * @format 12111
2582  * @param subevent_code
2583  * @param avdtp_cid
2584  * @param local_seid
2585  * @param is_initiator
2586  * @param signal_identifier
2587  */
2588 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT                     0x01u
2589 
2590 /**
2591  * @format 12111
2592  * @param subevent_code
2593  * @param avdtp_cid
2594  * @param local_seid
2595  * @param is_initiator
2596  * @param signal_identifier
2597  */
2598 #define AVDTP_SUBEVENT_SIGNALING_REJECT                     0x02u
2599 
2600 /**
2601  * @format 12111
2602  * @param subevent_code
2603  * @param avdtp_cid
2604  * @param local_seid
2605  * @param is_initiator
2606  * @param signal_identifier
2607  */
2608 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT             0x03u
2609 
2610 /**
2611  * @format 12B21
2612  * @param subevent_code
2613  * @param avdtp_cid
2614  * @param bd_addr
2615  * @param con_handle
2616  * @param status 0 == OK
2617  */
2618 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED     0x04u
2619 
2620 /**
2621  * @format 12
2622  * @param subevent_code
2623  * @param avdtp_cid
2624  */
2625 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED        0x05u
2626 
2627 /**
2628  * @format 121111
2629  * @param subevent_code
2630  * @param avdtp_cid
2631  * @param remote_seid        0x01u – 0x3Eu
2632  * @param in_use      0-not in use, 1-in use
2633  * @param media_type  0-audio, 1-video, 2-multimedia
2634  * @param sep_type    0-source, 1-sink
2635  */
2636 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND                  0x06u
2637 
2638 /**
2639  * @format 12111111111
2640  * @param subevent_code
2641  * @param avdtp_cid
2642  * @param remote_seid
2643  * @param media_type
2644  * @param sampling_frequency_bitmap
2645  * @param channel_mode_bitmap
2646  * @param block_length_bitmap
2647  * @param subbands_bitmap
2648  * @param allocation_method_bitmap
2649  * @param min_bitpool_value
2650  * @param max_bitpool_value
2651  */
2652 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY          0x07u
2653 
2654 /**
2655  * @format 12111111112
2656  * @param subevent_code
2657  * @param avdtp_cid
2658  * @param remote_seid
2659  * @param media_type
2660  * @param layer_bitmap
2661  * @param crc
2662  * @param channel_mode_bitmap
2663  * @param media_payload_format
2664  * @param sampling_frequency_bitmap
2665  * @param vbr
2666  * @param bit_rate_index_bitmap
2667  */
2668 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY   0x08u
2669 
2670 /**
2671  * @format 1211121311
2672  * @param subevent_code
2673  * @param avdtp_cid
2674  * @param remote_seid
2675  * @param media_type
2676  * @param object_type_bitmap
2677  * @param sampling_frequency_bitmap
2678  * @param channels_bitmap
2679  * @param bit_rate
2680  * @param vbr
2681  * @param drc
2682  */
2683 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY     0x09u
2684 
2685 /**
2686  * @format 1211111132
2687  * @param subevent_code
2688  * @param avdtp_cid
2689  * @param remote_seid
2690  * @param media_type
2691  * @param version
2692  * @param channel_mode_bitmap
2693  * @param sampling_frequency_bitmap
2694  * @param vbr
2695  * @param bit_rate_index_bitmap
2696  * @param maximum_sul
2697  */
2698 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY        0x0Au
2699 
2700 /**
2701  * @format 12112LV
2702  * @param subevent_code
2703  * @param avdtp_cid
2704  * @param remote_seid
2705  * @param media_type
2706  * @param media_codec_type
2707  * @param media_codec_information_len
2708  * @param media_codec_information
2709  */
2710 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY        0x0Bu
2711 
2712 
2713 /**
2714  * @format 121
2715  * @param subevent_code
2716  * @param avdtp_cid
2717  * @param remote_seid
2718  */
2719 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY         0x0Cu
2720 
2721 
2722 /**
2723  * @format 121
2724  * @param subevent_code
2725  * @param avdtp_cid
2726  * @param remote_seid
2727  */
2728 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY        0x0Du
2729 
2730 
2731 /**
2732  * @format 121111
2733  * @param subevent_code
2734  * @param avdtp_cid
2735  * @param remote_seid
2736  * @param recovery_type
2737  * @param maximum_recovery_window_size
2738  * @param maximum_number_media_packets
2739  */
2740 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY        0x0Eu
2741 
2742 
2743 /**
2744  * @format 1212LV
2745  * @param subevent_code
2746  * @param avdtp_cid
2747  * @param remote_seid
2748  * @param cp_type
2749  * @param cp_type_value_len
2750  * @param cp_type_value
2751  */
2752 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY        0x0Fu
2753 
2754 
2755 /**
2756  * @format 12111111111
2757  * @param subevent_code
2758  * @param avdtp_cid
2759  * @param remote_seid
2760  * @param fragmentation
2761  * @param transport_identifiers_num
2762  * @param transport_session_identifier_1
2763  * @param transport_session_identifier_2
2764  * @param transport_session_identifier_3
2765  * @param tcid_1
2766  * @param tcid_2
2767  * @param tcid_3
2768  */
2769 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY        0x10u
2770 
2771 
2772 /**
2773  * @format 121
2774  * @param subevent_code
2775  * @param avdtp_cid
2776  * @param remote_seid
2777  */
2778 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY        0x11u
2779 
2780 
2781 /**
2782  * @format 121111
2783  * @param subevent_code
2784  * @param avdtp_cid
2785  * @param remote_seid
2786  * @param back_ch
2787  * @param media
2788  * @param recovery
2789  */
2790 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY        0x12u
2791 
2792 /**
2793  * @format 121
2794  * @param subevent_code
2795  * @param avdtp_cid
2796  * @param remote_seid
2797  */
2798 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE                    0x13u
2799 
2800 
2801 /**
2802  * @format 12111121111111
2803  * @param subevent_code
2804  * @param avdtp_cid
2805  * @param local_seid
2806  * @param remote_seid
2807  * @param reconfigure
2808  * @param media_type
2809  * @param sampling_frequency
2810  * @param channel_mode
2811  * @param num_channels
2812  * @param block_length
2813  * @param subbands
2814  * @param allocation_method
2815  * @param min_bitpool_value
2816  * @param max_bitpool_value
2817  */
2818 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION        0x14u
2819 
2820 /**
2821  * @format 12111111111211
2822  * @param subevent_code
2823  * @param avdtp_cid
2824  * @param local_seid
2825  * @param remote_seid
2826  * @param reconfigure
2827  * @param media_type
2828  * @param layer
2829  * @param crc
2830  * @param channel_mode
2831  * @param num_channels
2832  * @param media_payload_format
2833  * @param sampling_frequency
2834  * @param vbr
2835  * @param bit_rate_index
2836  */
2837 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION   0x15u
2838 
2839 /**
2840  * @format 121111131311
2841  * @param subevent_code
2842  * @param avdtp_cid
2843  * @param local_seid
2844  * @param remote_seid
2845  * @param reconfigure
2846  * @param media_type
2847  * @param object_type
2848  * @param sampling_frequency
2849  * @param num_channels
2850  * @param bit_rate
2851  * @param vbr
2852  * @param drc
2853  */
2854 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION     0x16u
2855 
2856 /**
2857  * @format 1211111112112
2858  * @param subevent_code
2859  * @param avdtp_cid
2860  * @param local_seid
2861  * @param remote_seid
2862  * @param reconfigure
2863  * @param media_type
2864  * @param version
2865  * @param channel_mode
2866  * @param num_channels
2867  * @param sampling_frequency
2868  * @param vbr
2869  * @param bit_rate_index
2870  * @param maximum_sul
2871  */
2872 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION        0x17u
2873 
2874 /**
2875  * @format 1211112LV
2876  * @param subevent_code
2877  * @param avdtp_cid
2878  * @param local_seid
2879  * @param remote_seid
2880  * @param reconfigure
2881  * @param media_type
2882  * @param media_codec_type
2883  * @param media_codec_information_len
2884  * @param media_codec_information
2885  */
2886 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION        0x18u
2887 
2888 /**
2889  * @format 12B111
2890  * @param subevent_code
2891  * @param avdtp_cid
2892  * @param bd_addr
2893  * @param local_seid
2894  * @param remote_seid
2895  * @param status 0 == OK
2896  */
2897 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED     0x19u
2898 
2899 /**
2900  * @format 121
2901  * @param subevent_code
2902  * @param avdtp_cid
2903  * @param local_seid
2904  */
2905 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED        0x1Au
2906 
2907 /**
2908  * @format 1212
2909  * @param subevent_code
2910  * @param avdtp_cid
2911  * @param local_seid
2912  * @param sequence_number
2913  */
2914 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW   0x1Bu
2915 
2916 
2917 /**
2918  * @format 12
2919  * @param subevent_code
2920  * @param avdtp_cid
2921  */
2922 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE           0x1Cu
2923 
2924 /**
2925  * @format 1212
2926  * @param subevent_code
2927  * @param avdtp_cid
2928  * @param local_seid
2929  * @param delay_100us
2930  */
2931 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT               0x1Du
2932 
2933 /**
2934  * @format 121114113
2935  * @param subevent_code
2936  * @param avdtp_cid
2937  * @param remote_seid
2938  * @param media_type
2939  * @param object_type
2940  * @param sampling_frequency_bitmap
2941  * @param channels_bitmap
2942  * @param vbr
2943  * @param bit_rate_index_bitmap
2944  */
2945 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_D_USAC_CAPABILITY     0x1Eu
2946 
2947 /**
2948  * @format 12111113113
2949  * @param subevent_code
2950  * @param avdtp_cid
2951  * @param local_seid
2952  * @param remote_seid
2953  * @param reconfigure
2954  * @param media_type
2955  * @param object_type
2956  * @param sampling_frequency
2957  * @param num_channels
2958  * @param vbr
2959  * @param bit_rate
2960  */
2961 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_D_USAC_CONFIGURATION     0x1Fu
2962 
2963 /** A2DP Subevent */
2964 /* Stream goes through following states:
2965  * - OPEN         - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event
2966  * - START        - indicated with A2DP_SUBEVENT_STREAM_STARTED event
2967  * - SUSPEND      - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event
2968  * - ABORT/STOP   - indicated with A2DP_SUBEVENT_STREAM_RELEASED event
2969 
2970  OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started.
2971  START can come only after the stream is OPENED, and indicates that media transfer is started.
2972  SUSPEND is optional, it pauses the stream.
2973  */
2974 
2975 /**
2976  * @format 121            Sent only by A2DP source.
2977  * @param subevent_code
2978  * @param a2dp_cid
2979  * @param local_seid
2980  */
2981 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW         0x01u
2982 
2983 /**
2984  * @format 12111121111111
2985  * @param subevent_code
2986  * @param a2dp_cid
2987  * @param local_seid
2988  * @param remote_seid
2989  * @param reconfigure
2990  * @param media_type
2991  * @param sampling_frequency
2992  * @param channel_mode
2993  * @param num_channels
2994  * @param block_length
2995  * @param subbands
2996  * @param allocation_method
2997  * @param min_bitpool_value
2998  * @param max_bitpool_value
2999  */
3000 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION      0x02u
3001 
3002 /**
3003  * @format 12111111111211
3004  * @param subevent_code
3005  * @param a2dp_cid
3006  * @param local_seid
3007  * @param remote_seid
3008  * @param reconfigure
3009  * @param media_type
3010  * @param layer
3011  * @param crc
3012  * @param channel_mode
3013  * @param num_channels
3014  * @param media_payload_format
3015  * @param sampling_frequency
3016  * @param vbr
3017  * @param bit_rate_index
3018  */
3019 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION   0x03u
3020 
3021 /**
3022  * @format 121111131311
3023  * @param subevent_code
3024  * @param a2dp_cid
3025  * @param local_seid
3026  * @param remote_seid
3027  * @param reconfigure
3028  * @param media_type
3029  * @param object_type
3030  * @param sampling_frequency
3031  * @param num_channels
3032  * @param bit_rate
3033  * @param vbr
3034  * @param drc
3035  */
3036 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION     0x04u
3037 
3038 /**
3039  * @format 1211111112112
3040  * @param subevent_code
3041  * @param a2dp_cid
3042  * @param local_seid
3043  * @param remote_seid
3044  * @param reconfigure
3045  * @param media_type
3046  * @param version
3047  * @param channel_mode
3048  * @param num_channels
3049  * @param sampling_frequency
3050  * @param vbr
3051  * @param bit_rate_index
3052  * @param maximum_sul
3053  */
3054 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION        0x05u
3055 
3056 /**
3057  * @format 1211112LV
3058  * @param subevent_code
3059  * @param a2dp_cid
3060  * @param local_seid
3061  * @param remote_seid
3062  * @param reconfigure
3063  * @param media_type
3064  * @param media_codec_type
3065  * @param media_codec_information_len
3066  * @param media_codec_information
3067  */
3068 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION    0x06u
3069 
3070 /**
3071  * @format 12B111          Stream is opened but not started.
3072  * @param subevent_code
3073  * @param a2dp_cid
3074  * @param bd_addr
3075  * @param local_seid
3076  * @param remote_seid
3077  * @param status
3078  */
3079 #define A2DP_SUBEVENT_STREAM_ESTABLISHED                           0x07u
3080 
3081 /**
3082  * @format 121            If ENABLE_AVDTP_ACCEPTOR_EXPLICIT_START_STREAM_CONFIRMATION, user must explicitly accept stream start.
3083  * @param subevent_code
3084  * @param a2dp_cid
3085  * @param local_seid
3086  */
3087 #define A2DP_SUBEVENT_START_STREAM_REQUESTED                       0x08u
3088 
3089 /**
3090  * @format 121            Indicates that media transfer is started.
3091  * @param subevent_code
3092  * @param a2dp_cid
3093  * @param local_seid
3094  */
3095 #define A2DP_SUBEVENT_STREAM_STARTED                               0x09u
3096 
3097 /**
3098  * @format 121           Stream is paused.
3099  * @param subevent_code
3100  * @param a2dp_cid
3101  * @param local_seid
3102  */
3103 #define A2DP_SUBEVENT_STREAM_SUSPENDED                              0x0Au
3104 
3105 /**
3106  * @format 121           Stream is stopped or aborted.
3107  * @param subevent_code
3108  * @param a2dp_cid
3109  * @param local_seid
3110  */
3111 #define A2DP_SUBEVENT_STREAM_STOPPED                                0x0Bu
3112 
3113 /**
3114  * @format 121            Stream is released.
3115  * @param subevent_code
3116  * @param a2dp_cid
3117  * @param local_seid
3118  */
3119 #define A2DP_SUBEVENT_STREAM_RELEASED                               0x0Cu
3120 
3121 /**
3122  * @format 1211
3123  * @param subevent_code
3124  * @param a2dp_cid
3125  * @param local_seid
3126  * @param signal_identifier
3127  */
3128 #define A2DP_SUBEVENT_COMMAND_ACCEPTED                              0x0Du
3129 
3130 /**
3131  * @format 12111
3132  * @param subevent_code
3133  * @param a2dp_cid
3134  * @param local_seid
3135  * @param is_initiator
3136  * @param signal_identifier
3137  */
3138 #define A2DP_SUBEVENT_COMMAND_REJECTED                              0x0Eu
3139 
3140 /**
3141  * @format 12B21
3142  * @param subevent_code
3143  * @param a2dp_cid
3144  * @param bd_addr
3145  * @param con_handle
3146  * @param status 0 == OK
3147  */
3148 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED              0x0Fu
3149 
3150 /**
3151  * @format 12            Signaling channel is released.
3152  * @param subevent_code
3153  * @param a2dp_cid
3154  */
3155 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED                  0x10u
3156 
3157 /**
3158  * @format 1211          Stream was reconfigured
3159  * @param subevent_code
3160  * @param a2dp_cid
3161  * @param local_seid
3162  * @param status
3163  */
3164 #define A2DP_SUBEVENT_STREAM_RECONFIGURED                            0x12u
3165 
3166 /**
3167  * @format 12111111111
3168  * @param subevent_code
3169  * @param a2dp_cid
3170  * @param remote_seid
3171  * @param media_type
3172  * @param sampling_frequency_bitmap
3173  * @param channel_mode_bitmap
3174  * @param block_length_bitmap
3175  * @param subbands_bitmap
3176  * @param allocation_method_bitmap
3177  * @param min_bitpool_value
3178  * @param max_bitpool_value
3179  */
3180 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY          0x13u
3181 
3182 /**
3183  * @format 12111111112
3184  * @param subevent_code
3185  * @param a2dp_cid
3186  * @param remote_seid
3187  * @param media_type
3188  * @param layer_bitmap
3189  * @param crc
3190  * @param channel_mode_bitmap
3191  * @param media_payload_format
3192  * @param sampling_frequency_bitmap
3193  * @param vbr
3194  * @param bit_rate_index_bitmap
3195  */
3196 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY   0x14u
3197 
3198 /**
3199  * @format 1211121311
3200  * @param subevent_code
3201  * @param a2dp_cid
3202  * @param remote_seid
3203  * @param media_type
3204  * @param object_type_bitmap
3205  * @param sampling_frequency_bitmap
3206  * @param channels_bitmap
3207  * @param bit_rate
3208  * @param vbr
3209  * @param drc
3210  */
3211 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY     0x15u
3212 
3213 /**
3214  * @format 1211111132
3215  * @param subevent_code
3216  * @param a2dp_cid
3217  * @param remote_seid
3218  * @param media_type
3219  * @param version
3220  * @param channel_mode_bitmap
3221  * @param sampling_frequency_bitmap
3222  * @param vbr
3223  * @param bit_rate_index_bitmap
3224  * @param maximum_sul
3225  */
3226 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY        0x16u
3227 
3228 /**
3229  * @format 12112LV
3230  * @param subevent_code
3231  * @param a2dp_cid
3232  * @param remote_seid
3233  * @param media_type
3234  * @param media_codec_type
3235  * @param media_codec_information_len
3236  * @param media_codec_information
3237  */
3238 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY        0x17u
3239 
3240 /**
3241  * @format 121
3242  * @param subevent_code
3243  * @param a2dp_cid
3244  * @param remote_seid
3245  */
3246 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY           0x18u
3247 
3248 
3249 /**
3250  * @format 1212
3251  * @param subevent_code
3252  * @param a2dp_cid
3253  * @param local_seid
3254  * @param delay_100us
3255  */
3256 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT                         0x19u
3257 
3258 /**
3259  * @format 121
3260  * @param subevent_code
3261  * @param a2dp_cid
3262  * @param remote_seid
3263  */
3264 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE                    0x1Au
3265 
3266 /**
3267  * @format 12
3268  * @param subevent_code
3269  * @param a2dp_cid
3270  */
3271 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_COMPLETE                0x1Bu
3272 
3273 
3274 /** AVRCP Subevent */
3275 
3276 /**
3277  * @format 1211
3278  * @param subevent_code
3279  * @param avrcp_cid
3280  * @param command_type
3281  * @param play_status
3282  */
3283 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED                         0x01u
3284 
3285 /**
3286  * @format 121
3287  * @param subevent_code
3288  * @param avrcp_cid
3289  * @param command_type
3290  */
3291 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED                                   0x02u
3292 
3293 /**
3294  * @format 121
3295  * @param subevent_code
3296  * @param avrcp_cid
3297  * @param command_type
3298  */
3299 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_END                         0x03u
3300 
3301 /**
3302  * @format 121
3303  * @param subevent_code
3304  * @param avrcp_cid
3305  * @param command_type
3306  */
3307 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_START                       0x04u
3308 
3309 /**
3310  * @format 1214
3311  * @param subevent_code
3312  * @param avrcp_cid
3313  * @param command_type
3314  * @param playback_position  If no track currently selected, then return 0xFFuFFFFFF in the INTERIM response.
3315  */
3316 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYBACK_POS_CHANGED                      0x05u
3317 
3318 /**
3319  * @format 1211
3320  * @param subevent_code
3321  * @param avrcp_cid
3322  * @param command_type
3323  * @param battery_status  see avrcp_battery_status_t
3324  */
3325 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_BATT_STATUS_CHANGED                       0x06u
3326 
3327 /**
3328  * @format 1211
3329  * @param subevent_code
3330  * @param avrcp_cid
3331  * @param command_type
3332  * @param system_status  see avrcp_system_status_t
3333  */
3334 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_SYSTEM_STATUS_CHANGED                     0x07u
3335 
3336 
3337 // Recquires 1 byte for num_attributes, followed by num_attributes tuples [attribute_id(1), value_id(1)], see avrcp_player_application_setting_attribute_id_t
3338 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYER_APPLICATION_SETTING_CHANGED        0x08u
3339 
3340 /**
3341  * @format 121
3342  * @param subevent_code
3343  * @param avrcp_cid
3344  * @param command_type
3345  */
3346 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED                     0x09u
3347 
3348 /**
3349  * @format 121
3350  * @param subevent_code
3351  * @param avrcp_cid
3352  * @param command_type
3353  */
3354 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED                       0x0Au
3355 
3356 // AVRCP_SUBEVENT_NOTIFICATION_EVENT_ADDRESSED_PLAYER_CHANGED = 0x0bu,           -- The Addressed Player has been changed, see 6.9.2.
3357 
3358 /**
3359  * @format 1212
3360  * @param subevent_code
3361  * @param avrcp_cid
3362  * @param command_type
3363  * @param uid_counter of the currently browsed player
3364  */
3365 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_UIDS_CHANGED                              0x0Cu
3366 
3367 /**
3368  * @format 1211
3369  * @param subevent_code
3370  * @param avrcp_cid
3371  * @param command_type
3372  * @param absolute_volume
3373  */
3374 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED                                  0x0Du
3375 
3376 
3377 /**
3378  * @format 1211
3379  * @param subevent_code
3380  * @param avrcp_cid
3381  * @param command_type
3382  * @param absolute_volume
3383  */
3384 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE                      0x10u
3385 
3386 /**
3387  * @format 12111
3388  * @param subevent_code
3389  * @param avrcp_cid
3390  * @param status
3391  * @param enabled      1 enabled, 0 disabled
3392  * @param event_id
3393  */
3394 #define AVRCP_SUBEVENT_NOTIFICATION_STATE                               0x11u
3395 
3396 /**
3397  * @format 112B2
3398  * @param subevent_code
3399  * @param status 0 == OK
3400  * @param avrcp_cid
3401  * @param bd_addr
3402  * @param con_handle
3403  */
3404 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED                           0x12u
3405 
3406 /**
3407  * @format 12
3408  * @param subevent_code
3409  * @param avrcp_cid
3410  */
3411 #define AVRCP_SUBEVENT_CONNECTION_RELEASED                              0x13u
3412 
3413 /**
3414  * @format 12111
3415  * @param subevent_code
3416  * @param avrcp_cid
3417  * @param command_type
3418  * @param repeat_mode
3419  * @param shuffle_mode
3420  */
3421 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE                          0x14u
3422 
3423 /**
3424  * @format 121441
3425  * @param subevent_code
3426  * @param avrcp_cid
3427  * @param command_type
3428  * @param song_length
3429  * @param song_position
3430  * @param play_status
3431  */
3432  #define AVRCP_SUBEVENT_PLAY_STATUS                                     0x15u
3433 
3434 /**
3435  * @format 1211
3436  * @param subevent_code
3437  * @param avrcp_cid
3438  * @param command_type
3439  * @param operation_id
3440  */
3441 #define AVRCP_SUBEVENT_OPERATION_START                                    0x16u
3442 
3443 /**
3444  * @format 1211
3445  * @param subevent_code
3446  * @param avrcp_cid
3447  * @param command_type
3448  * @param operation_id
3449  */
3450 #define AVRCP_SUBEVENT_OPERATION_COMPLETE                                 0x17u
3451 
3452 /**
3453  * @format 121
3454  * @param subevent_code
3455  * @param avrcp_cid
3456  * @param command_type
3457  */
3458 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE                   0x18u
3459 
3460 /**
3461  * @format 12
3462  * @param subevent_code
3463  * @param avrcp_cid
3464  */
3465 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY                                    0x19u
3466 
3467 /**
3468  * @format 121111
3469  * @param subevent_code
3470  * @param avrcp_cid
3471  * @param operation_id
3472  * @param button_pressed
3473  * @param operands_length
3474  * @param operand
3475  */
3476 #define AVRCP_SUBEVENT_OPERATION                                            0x1Au
3477 
3478 /**
3479  * @format 1211
3480  * @param subevent_code
3481  * @param avrcp_cid
3482  * @param command_type
3483  * @param track
3484  */
3485 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO                               0x1Bu
3486 
3487 /**
3488  * @format 1211
3489  * @param subevent_code
3490  * @param avrcp_cid
3491  * @param command_type
3492  * @param total_tracks
3493  */
3494 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO                        0x1Cu
3495 
3496 /**
3497  * @format 1214
3498  * @param subevent_code
3499  * @param avrcp_cid
3500  * @param command_type
3501  * @param song_length in ms
3502  */
3503 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO                      0x1Du
3504 
3505 /**
3506  * @format 121JV
3507  * @param subevent_code
3508  * @param avrcp_cid
3509  * @param command_type
3510  * @param value_len
3511  * @param value
3512  */
3513 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO                                 0x1Eu
3514 
3515  /*
3516  * @format 121JV
3517  * @param subevent_code
3518  * @param avrcp_cid
3519  * @param command_type
3520  * @param value_len
3521  * @param value
3522  */
3523 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO                                0x1Fu
3524 
3525  /*
3526  * @format 121JV
3527  * @param subevent_code
3528  * @param avrcp_cid
3529  * @param command_type
3530  * @param value_len
3531  * @param value
3532  */
3533 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO                                 0x20u
3534 
3535  /*
3536  * @format 121JV
3537  * @param subevent_code
3538  * @param avrcp_cid
3539  * @param command_type
3540  * @param value_len
3541  * @param value
3542  */
3543 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO                                 0x21u
3544 
3545 /*
3546 * @format 121JV
3547 * @param subevent_code
3548 * @param avrcp_cid
3549 * @param command_type
3550 * @param value_len
3551 * @param value
3552 */
3553 #define AVRCP_SUBEVENT_NOW_PLAYING_COVER_ART_INFO                             0x22u
3554 
3555 /*
3556  * @format 1211
3557  * @param subevent_code
3558  * @param avrcp_cid
3559  * @param command_type
3560  * @param status
3561  */
3562 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE                                  0x23u
3563 
3564 /**
3565  * @format 1214
3566  * @param subevent_code
3567  * @param avrcp_cid
3568  * @param command_type
3569  * @param playback_position_ms
3570  */
3571 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED                      0x24u
3572 
3573 /*
3574  * @format 12111
3575  * @param subevent_code
3576  * @param avrcp_cid
3577  * @param command_type
3578  * @param status
3579  * @param event_id
3580  */
3581 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID                                0x25u
3582 /*
3583  * @format 1211
3584  * @param subevent_code
3585  * @param avrcp_cid
3586  * @param command_type
3587  * @param status
3588  */
3589 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID_DONE                           0x26u
3590 
3591 /*
3592  * @format 12113
3593  * @param subevent_code
3594  * @param avrcp_cid
3595  * @param command_type
3596  * @param status
3597  * @param company_id
3598  */
3599 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID                              0x27u
3600 /*
3601  * @format 1211
3602  * @param subevent_code
3603  * @param avrcp_cid
3604  * @param command_type
3605  * @param status
3606  */
3607 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID_DONE                         0x28u
3608 
3609 /**
3610  * @format 1211LV
3611  * @param subevent_code
3612  * @param avrcp_cid
3613  * @param command_type
3614  * @param pdu_id
3615  * @param params_len
3616  * @param params
3617 */
3618 #define AVRCP_SUBEVENT_CUSTOM_COMMAND_RESPONSE                               0x29u
3619 
3620 
3621 /**
3622  * @format 1B2
3623  * @param subevent_code
3624  * @param bd_addr
3625  * @param browsing_cid
3626  */
3627 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION                          0x30u
3628 
3629 /**
3630  * @format 11B2
3631  * @param subevent_code
3632  * @param status 0 == OK
3633  * @param bd_addr
3634  * @param browsing_cid
3635  */
3636 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED                        0x31u
3637 
3638 /**
3639  * @format 12
3640  * @param subevent_code
3641  * @param browsing_cid
3642  */
3643 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED                           0x32u
3644 
3645 /**
3646  * @format 12211
3647  * @param subevent_code
3648  * @param browsing_cid
3649  * @param uid_counter
3650  * @param browsing_status
3651  * @param bluetooth_status
3652  */
3653 #define AVRCP_SUBEVENT_BROWSING_DONE                                          0x33u
3654 
3655 /**
3656  * @format 121444
3657  * @param subevent_code
3658  * @param browsing_cid
3659  * @param scope
3660  * @param start_item
3661  * @param end_item
3662  * @param attr_bitmap
3663  */
3664 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS                              0x34u
3665 
3666 /**
3667  * @format 121
3668  * @param subevent_code
3669  * @param browsing_cid
3670  * @param scope
3671  */
3672 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS                           0x35u
3673 
3674 /**
3675  * @format 122
3676  * @param subevent_code
3677  * @param browsing_cid
3678  * @param player_id
3679  */
3680 #define AVRCP_SUBEVENT_BROWSING_SET_BROWSED_PLAYER                            0x36u
3681 
3682 /**
3683  * @format 11B22
3684  * @param subevent_code
3685  * @param status 0 == OK
3686  * @param bd_addr
3687  * @param avrcp_cid
3688  * @param cover_art_cid
3689  */
3690 #define AVRCP_SUBEVENT_COVER_ART_CONNECTION_ESTABLISHED                       0x37u
3691 
3692 /**
3693  * @format 121
3694  * @param subevent_code
3695  * @param cover_art_cid
3696  * @param status
3697  */
3698 #define AVRCP_SUBEVENT_COVER_ART_OPERATION_COMPLETE                           0x38u
3699 
3700 /**
3701  * @format 12
3702  * @param subevent_code
3703  * @param cover_art_cid
3704  */
3705 #define AVRCP_SUBEVENT_COVER_ART_CONNECTION_RELEASED                          0x39u
3706 
3707 /**
3708  * @format 1221D
3709  * @param subevent_code
3710  * @param browsing_cid
3711  * @param uid_counter
3712  * @param direction
3713  * @param folder_id
3714  */
3715 #define AVRCP_SUBEVENT_BROWSING_CHANGE_PATH                                   0x40u
3716 
3717 /**
3718  * @format 1221DJV
3719  * @param subevent_code
3720  * @param browsing_cid
3721  * @param uid_counter
3722  * @param scope
3723  * @param item_id
3724  * @param attributes_len
3725  * @param attributes
3726  */
3727 #define AVRCP_SUBEVENT_BROWSING_GET_ITEM_ATTRIBUTES                                   0x41u
3728 
3729 /**
3730  * @format 122JV
3731  * @param subevent_code
3732  * @param browsing_cid
3733  * @param characterset
3734  * @param value_length
3735  * @param value
3736  */
3737 
3738 #define AVRCP_SUBEVENT_BROWSING_SEARCH                                                 0x42u
3739 
3740 /**
3741  * @format 1221D
3742  * @param subevent_code
3743  * @param avrcp_cid
3744  * @param uid_counter
3745  * @param scope
3746  * @param item_id
3747  */
3748 #define AVRCP_SUBEVENT_PLAY_ITEM                                                       0x42u
3749 
3750 /**
3751  * @format 1221D
3752  * @param subevent_code
3753  * @param avrcp_cid
3754  * @param uid_counter
3755  * @param scope
3756  * @param item_id
3757  */
3758 #define AVRCP_SUBEVENT_ADD_TO_NOW_PLAYING                                              0x43u
3759 
3760 /**
3761  * @format 12BH
3762  * @param subevent_code
3763  * @param goep_cid
3764  * @param address
3765  * @param handle
3766  */
3767 #define GOEP_SUBEVENT_INCOMING_CONNECTION                                  0x01u
3768 
3769 /**
3770  * @format 121BH1
3771  * @param subevent_code
3772  * @param goep_cid
3773  * @param status
3774  * @param bd_addr
3775  * @param con_handle
3776  * @param incoming
3777  */
3778 #define GOEP_SUBEVENT_CONNECTION_OPENED                                    0x02u
3779 
3780 /**
3781  * @format 12
3782  * @param subevent_code
3783  * @param goep_cid
3784 */
3785 #define GOEP_SUBEVENT_CONNECTION_CLOSED                                    0x03u
3786 
3787 /**
3788  * @format 12
3789  * @param subevent_code
3790  * @param goep_cid
3791 */
3792 #define GOEP_SUBEVENT_CAN_SEND_NOW                                         0x04u
3793 
3794 /**
3795  * @format 121BH1
3796  * @param subevent_code
3797  * @param pbap_cid
3798  * @param status
3799  * @param bd_addr
3800  * @param con_handle
3801  * @param incoming
3802  */
3803 #define PBAP_SUBEVENT_CONNECTION_OPENED                                    0x01u
3804 
3805 /**
3806  * @format 12
3807  * @param subevent_code
3808  * @param goep_cid
3809 */
3810 #define PBAP_SUBEVENT_CONNECTION_CLOSED                                    0x02u
3811 
3812 /**
3813  * @format 121
3814  * @param subevent_code
3815  * @param goep_cid
3816  * @param status
3817  */
3818 #define PBAP_SUBEVENT_OPERATION_COMPLETED                                  0x03u
3819 
3820 /**
3821  * @format 1212
3822  * @param subevent_code
3823  * @param goep_cid
3824  * @param status
3825  * @param phonebook_size
3826  */
3827 #define PBAP_SUBEVENT_PHONEBOOK_SIZE                                       0x04u
3828 
3829 /**
3830  * @format 1211
3831  * @param subevent_code
3832  * @param goep_cid
3833  * @param user_id_required
3834  * @param full_access
3835  */
3836 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST                               0x05u
3837 
3838 /**
3839  * @format 12JVJV
3840  * @param subevent_code
3841  * @param goep_cid
3842  * @param name_len
3843  * @param name
3844  * @param handle_len
3845  * @param handle
3846  */
3847 #define PBAP_SUBEVENT_CARD_RESULT                                          0x06u
3848 
3849 /**
3850  * @format 121
3851  * @param subevent_code
3852  * @param goep_cid
3853  * @param phonebook
3854  */
3855 #define PBAP_SUBEVENT_RESET_MISSED_CALLS                                   0x0Au
3856 
3857 /**
3858  * @format 12411
3859  * @param subevent_code
3860  * @param goep_cid
3861  * @param vcard_selector
3862  * @param vcard_selector_operator
3863  * @param phonebook
3864  */
3865 #define PBAP_SUBEVENT_QUERY_PHONEBOOK_SIZE                                 0x0Bu
3866 
3867 /**
3868  * @format 1244122411
3869  * @param subevent_code
3870  * @param goep_cid
3871  * @param continuation - value provided by caller of pbap_server_send_pull_response
3872  * @param property_selector
3873  * @param format
3874  * @param max_list_count 0xffff for unlimited
3875  * @param list_start_offset
3876  * @param vcard_selector
3877  * @param vcard_selector_operator
3878  * @param phonebook
3879  */
3880 #define PBAP_SUBEVENT_PULL_PHONEBOOK                                      0x0Cu
3881 
3882 /**
3883  * @format 124122411JV1
3884  * @param subevent_code
3885  * @param goep_cid
3886  * @param continuation - value provided by caller of pbap_server_send_pull_response
3887  * @param order
3888  * @param max_list_count 0xffff for unlimited
3889  * @param list_start_offset
3890  * @param vcard_selector
3891  * @param vcard_selector_operator
3892  * @param search_property
3893  * @param search_value_len
3894  * @param search_value
3895  * @param phonebook
3896  */
3897 #define PBAP_SUBEVENT_PULL_VCARD_LISTING                                   0x0Du
3898 
3899 /**
3900  * @format 124411T
3901  * @param subevent_code
3902  * @param goep_cid
3903  * @param continuation - value provided by caller of pbap_server_send_pull_response
3904  * @param property_selector
3905  * @param format
3906  * @param phonebook
3907  * @param name
3908  */
3909 #define PBAP_SUBEVENT_PULL_VCARD_ENTRY                                     0x0Eu
3910 
3911 
3912 // HID Meta Event Group
3913 
3914 /**
3915  * @format 12BH
3916  * @param subevent_code
3917  * @param hid_cid
3918  * @param address
3919  * @param handle
3920  */
3921 #define HID_SUBEVENT_INCOMING_CONNECTION                                   0x01u
3922 
3923 /**
3924  * @format 121BH1
3925  * @param subevent_code
3926  * @param hid_cid
3927  * @param status
3928  * @param bd_addr
3929  * @param con_handle
3930  * @param incoming
3931  */
3932 #define HID_SUBEVENT_CONNECTION_OPENED                                     0x02u
3933 
3934 /**
3935  * @format 12
3936  * @param subevent_code
3937  * @param hid_cid
3938 */
3939 #define HID_SUBEVENT_CONNECTION_CLOSED                                     0x03u
3940 
3941 /**
3942  * @format 12
3943  * @param subevent_code
3944  * @param hid_cid
3945 */
3946 #define HID_SUBEVENT_CAN_SEND_NOW                                          0x04u
3947 
3948 /**
3949  * @format 12
3950  * @param subevent_code
3951  * @param hid_cid
3952 */
3953 #define HID_SUBEVENT_SUSPEND                                               0x05u
3954 
3955 /**
3956  * @format 12
3957  * @param subevent_code
3958  * @param hid_cid
3959 */
3960 #define HID_SUBEVENT_EXIT_SUSPEND                                          0x06u
3961 
3962 /**
3963  * @format 12
3964  * @param subevent_code
3965  * @param hid_cid
3966 */
3967 #define HID_SUBEVENT_VIRTUAL_CABLE_UNPLUG                                  0x07u
3968 
3969 /**
3970  * @format 121LV
3971  * @param subevent_code
3972  * @param hid_cid
3973  * @param handshake_status
3974  * @param report_len
3975  * @param report
3976 */
3977 #define HID_SUBEVENT_GET_REPORT_RESPONSE                                   0x08u
3978 
3979 /**
3980  * @format 121
3981  * @param subevent_code
3982  * @param hid_cid
3983  * @param handshake_status
3984 */
3985 #define HID_SUBEVENT_SET_REPORT_RESPONSE                                   0x09u
3986 
3987 /**
3988  * @format 1211
3989  * @param subevent_code
3990  * @param hid_cid
3991  * @param handshake_status
3992  * @param protocol_mode
3993 */
3994 #define HID_SUBEVENT_GET_PROTOCOL_RESPONSE                                 0x0Au
3995 
3996 /**
3997  * @format 1211
3998  * @param subevent_code
3999  * @param hid_cid
4000  * @param handshake_status
4001  * @param protocol_mode
4002 */
4003 #define HID_SUBEVENT_SET_PROTOCOL_RESPONSE                                 0x0Bu
4004 
4005 /**
4006  * @format 12LV
4007  * @param subevent_code
4008  * @param hid_cid
4009  * @param report_len
4010  * @param report
4011 */
4012 #define HID_SUBEVENT_REPORT                                                0x0Cu
4013 
4014 /**
4015  * @format 121
4016  * @param subevent_code
4017  * @param hid_cid
4018  * @param status
4019  */
4020 #define HID_SUBEVENT_DESCRIPTOR_AVAILABLE                                  0x0Du
4021 
4022 /**
4023  * @format 1222
4024  * @param subevent_code
4025  * @param hid_cid
4026  * @param host_max_latency
4027  * @param host_min_timeout
4028  */
4029 #define HID_SUBEVENT_SNIFF_SUBRATING_PARAMS                                0x0Eu
4030 
4031 // HIDS Meta Event Group
4032 
4033 /**
4034  * @format 12
4035  * @param subevent_code
4036  * @param con_handle
4037 */
4038 #define HIDS_SUBEVENT_CAN_SEND_NOW                                          0x01u
4039 
4040 /**
4041  * @format 121
4042  * @param subevent_code
4043  * @param con_handle
4044  * @param protocol_mode
4045 */
4046 #define HIDS_SUBEVENT_PROTOCOL_MODE                                         0x02u
4047 
4048 /**
4049  * @format 121
4050  * @param subevent_code
4051  * @param con_handle
4052  * @param enable
4053 */
4054 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE                        0x03u
4055 
4056 /**
4057  * @format 121
4058  * @param subevent_code
4059  * @param con_handle
4060  * @param enable
4061 */
4062 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE                     0x04u
4063 
4064 /**
4065  * @format 1211
4066  * @param subevent_code
4067  * @param con_handle
4068  * @param report_id
4069  * @param enable
4070 */
4071 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE                                   0x05u
4072 
4073 /**
4074  * @format 1211
4075  * @param subevent_code
4076  * @param con_handle
4077  * @param report_id
4078  * @param enable
4079 */
4080 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE                                  0x06u
4081 
4082 /**
4083  * @format 1211
4084  * @param subevent_code
4085  * @param con_handle
4086  * @param report_id
4087  * @param enable
4088 */
4089 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE                                 0x07u
4090 
4091 /**
4092  * @format 12
4093  * @param subevent_code
4094  * @param con_handle
4095 */
4096 #define HIDS_SUBEVENT_SUSPEND                                               0x08u
4097 
4098 /**
4099  * @format 12
4100  * @param subevent_code
4101  * @param con_handle
4102 */
4103 #define HIDS_SUBEVENT_EXIT_SUSPEND                                          0x09u
4104 
4105 /**
4106  * @format 1211JV
4107  * @param subevent_code
4108  * @param con_handle
4109  * @param report_id
4110  * @param report_type
4111  * @param report_length
4112  * @param report_data
4113 */
4114 #define HIDS_SUBEVENT_SET_REPORT                                            0x0au
4115 
4116 /**
4117  * @format 1211
4118  * @param subevent_code
4119  * @param con_handle
4120  * @param measurement_type 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t
4121  * @param is_enhanced
4122 */
4123 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION               0x01u
4124 
4125 /**
4126  * @format 12
4127  * @param subevent_code
4128  * @param con_handle
4129 */
4130 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START                 0x02u
4131 
4132 /**
4133  * @format 12
4134  * @param subevent_code
4135  * @param con_handle
4136 */
4137 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP                  0x03u
4138 
4139 /**
4140  * @format 12111
4141  * @param subevent_code
4142  * @param bas_cid
4143  * @param status
4144  * @param num_instances
4145  * @param poll_bitmap
4146 */
4147 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_CONNECTED                     0x04u
4148 
4149 /**
4150  * @format 12111
4151  * @param subevent_code
4152  * @param bas_cid
4153  * @param service_index
4154  * @param att_status  see ATT errors in bluetooth.h
4155  * @param level
4156 */
4157 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL                         0x05u
4158 
4159 /**
4160  * @format 12
4161  * @param subevent_code
4162  * @param service_id
4163 */
4164 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL_BROADCAST_START           0x06u
4165 
4166 /**
4167  * @format 12
4168  * @param subevent_code
4169  * @param service_id
4170 */
4171 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL_BROADCAST_STOP            0x07u
4172 
4173 /**
4174  * @format 1H1
4175  * @param subevent_code
4176  * @param con_handle
4177  * @param att_status
4178  */
4179 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_DONE                       0x08u
4180 
4181 /**
4182  * @format 1H1T
4183  * @param subevent_code
4184  * @param con_handle
4185  * @param att_status
4186  * @param value
4187  */
4188 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MANUFACTURER_NAME          0x09u
4189 
4190 /**
4191  * @format 1H1T
4192  * @param subevent_code
4193  * @param con_handle
4194  * @param att_status
4195  * @param value
4196  */
4197 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MODEL_NUMBER               0x0Au
4198 
4199 /**
4200  * @format 1H1T
4201  * @param subevent_code
4202  * @param con_handle
4203  * @param att_status
4204  * @param value
4205  */
4206 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SERIAL_NUMBER              0x0Bu
4207 
4208 /**
4209  * @format 1H1T
4210  * @param subevent_code
4211  * @param con_handle
4212  * @param att_status
4213  * @param value
4214  */
4215 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_HARDWARE_REVISION          0x0Cu
4216 
4217 /**
4218  * @format 1H1T
4219  * @param subevent_code
4220  * @param con_handle
4221  * @param att_status
4222  * @param value
4223  */
4224 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_FIRMWARE_REVISION          0x0Du
4225 
4226 /**
4227  * @format 1H1T
4228  * @param subevent_code
4229  * @param con_handle
4230  * @param att_status
4231  * @param value
4232  */
4233 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SOFTWARE_REVISION          0x0Eu
4234 
4235 /**
4236  * @format 1H1413
4237  * @param subevent_code
4238  * @param con_handle
4239  * @param att_status
4240  * @param manufacturer_id_low
4241  * @param manufacturer_id_high
4242  * @param organizationally_unique_id
4243  */
4244 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SYSTEM_ID                  0x0Fu
4245 
4246 /**
4247  * @format 1H122
4248  * @param subevent_code
4249  * @param con_handle
4250  * @param att_status
4251  * @param value_a
4252  * @param value_b
4253  */
4254 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_IEEE_REGULATORY_CERTIFICATION     0x10u
4255 
4256 /**
4257  * @format 1H11222
4258  * @param subevent_code
4259  * @param con_handle
4260  * @param att_status
4261  * @param vendor_source_id
4262  * @param vendor_id
4263  * @param product_id
4264  * @param product_version
4265  */
4266 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_PNP_ID                    0x11u
4267 
4268 /**
4269  * @format 1H1TTTT
4270  * @param subevent_code
4271  * @param con_handle
4272  * @param att_status
4273  * @param label
4274  * @param device_id
4275  * @param issuer
4276  * @param authority
4277  */
4278 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_UDI_FOR_MEDICAL_DEVICES   0x12u
4279 
4280 /**
4281  * @format 1H1
4282  * @param subevent_code
4283  * @param con_handle
4284  * @param status
4285  */
4286 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_CONNECTED            0x13u
4287 
4288 /**
4289  * @format 1H
4290  * @param subevent_code
4291  * @param con_handle
4292  */
4293 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_DISCONNECTED         0x14u
4294 
4295 /**
4296  * @format 1H
4297  * @param subevent_code
4298  * @param con_handle
4299  */
4300 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED                        0x15u
4301 
4302 /**
4303  * @format 1H
4304  * @param subevent_code
4305  * @param con_handle
4306  */
4307 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_DISCONNECTED                     0x16u
4308 
4309 /**
4310  * @format 12111
4311  * @param subevent_code
4312  * @param hids_cid
4313  * @param status
4314  * @param protocol_mode
4315  * @param num_instances
4316 */
4317 #define GATTSERVICE_SUBEVENT_HID_SERVICE_CONNECTED                        0x17u
4318 
4319 /**
4320  * @format 12
4321  * @param subevent_code
4322  * @param hids_cid
4323 */
4324 #define GATTSERVICE_SUBEVENT_HID_SERVICE_DISCONNECTED                     0x18u
4325 
4326 /**
4327  * @format 1211LV
4328  * @param subevent_code
4329  * @param hids_cid
4330  * @param service_index
4331  * @param report_id
4332  * @param report_len
4333  * @param report
4334 */
4335 #define GATTSERVICE_SUBEVENT_HID_REPORT                                   0x19u
4336 
4337 /**
4338  * @format 1212111
4339  * @param subevent_code
4340  * @param hids_cid
4341  * @param service_index
4342  * @param base_usb_hid_version      Version number of base USB HID Specification implemented by HID Device
4343  * @param country_code              Country HID Device hardware is localized for (not localized: 0x00)
4344  * @param remote_wake               Indicates whether HID Device is capable of sending a wake-signal to a HID Host
4345  * @param normally_connectable      Indicates whether HID Device will be advertising when bonded but not connected.
4346 */
4347 #define GATTSERVICE_SUBEVENT_HID_INFORMATION                              0x1Au
4348 
4349 /**
4350  * @format 1211
4351  * @param subevent_code
4352  * @param hids_cid
4353  * @param service_index
4354  * @param protocol_mode    see hid_protocol_mode_t in btstack_hid.h
4355 */
4356 #define GATTSERVICE_SUBEVENT_HID_PROTOCOL_MODE                            0x1Bu
4357 
4358 /**
4359  * @format 121
4360  * @param subevent_code
4361  * @param hids_cid
4362  * @param configuration
4363 */
4364 #define GATTSERVICE_SUBEVENT_HID_SERVICE_REPORTS_NOTIFICATION             0x1Cu
4365 
4366 /**
4367  * @format 1211
4368  * @param subevent_code
4369  * @param hids_cid
4370  * @param service_index
4371  * @param report_id
4372 */
4373 #define GATTSERVICE_SUBEVENT_HID_REPORT_WRITTEN                           0x1Du
4374 
4375 /**
4376  * @format 1H22
4377  * @param subevent_code
4378  * @param con_handle
4379  * @param max_scan_interval
4380  * @param min_scan_window
4381  */
4382 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_SCAN_INTERVAL_UPDATE 0x1Eu
4383 
4384 /**
4385  * @format 1H22
4386  * @param subevent_code
4387  * @param con_handle
4388  * @param attribute_handle_start
4389  * @param attribute_handle_end
4390  */
4391 #define GATTSERVICE_SUBEVENT_GATT_SERVICE_CHANGED                          0x1Fu
4392 
4393 /**
4394  * @format 1HK
4395  * @param subevent_code
4396  * @param con_handle
4397  * @param database_hash
4398  */
4399 #define GATTSERVICE_SUBEVENT_GATT_DATABASE_HASH                            0x20u
4400 
4401 /**
4402  * @format 1H211
4403  * @param subevent_code
4404  * @param con_handle
4405  * @param cid
4406  * @param num_included_services
4407  * @param status
4408 */
4409 #define GATTSERVICE_SUBEVENT_CLIENT_CONNECTED                              0x21u
4410 
4411 /**
4412  * @format 1H2
4413  * @param subevent_code
4414  * @param con_handle
4415  * @param cid
4416 */
4417 #define GATTSERVICE_SUBEVENT_CLIENT_DISCONNECTED                           0x22u
4418 
4419 /**
4420  * @format 1H21
4421  * @param subevent_code
4422  * @param con_handle
4423  * @param lls_cid
4424  * @param status
4425 */
4426 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_CONNECTED                          0x23u
4427 
4428 /**
4429  * @format 12
4430  * @param subevent_code
4431  * @param lls_cid
4432 */
4433 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_DISCONNECTED                       0x24u
4434 
4435 /**
4436  * @format 1221
4437  * @param subevent_code
4438  * @param lls_cid
4439  * @param characteristic_uuid
4440  * @param att_status
4441  */
4442 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_WRITE_DONE                         0x25u
4443 
4444 /**
4445  * @format 12
4446  * @param subevent_code
4447  * @param lls_cid
4448  */
4449 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_START_ALERTING                     0x26u
4450 
4451 /**
4452  * @format 121
4453  * @param subevent_code
4454  * @param lls_cid
4455  * @param timeout
4456  */
4457 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_STOP_ALERTING                      0x27u
4458 
4459 /**
4460  * @format 121
4461  * @param subevent_code
4462  * @param lls_cid
4463  * @param value
4464  */
4465 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_ALERT_LEVEL                        0x28u
4466 
4467 /**
4468  * @format 1H21
4469  * @param subevent_code
4470  * @param con_handle
4471  * @param ias_cid
4472  * @param status
4473 */
4474 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_CONNECTED                          0x29u
4475 
4476 /**
4477  * @format 12
4478  * @param subevent_code
4479  * @param ias_cid
4480 */
4481 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_DISCONNECTED                       0x2Au
4482 
4483 /**
4484  * @format 12
4485  * @param subevent_code
4486  * @param ias_cid
4487  */
4488 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_START_ALERTING                     0x2Bu
4489 
4490 /**
4491  * @format 121
4492  * @param subevent_code
4493  * @param ias_cid
4494  * @param timeout
4495  */
4496 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_STOP_ALERTING                      0x2Cu
4497 
4498 /**
4499  * @format 1H21
4500  * @param subevent_code
4501  * @param con_handle
4502  * @param tpxs_cid
4503  * @param status
4504 */
4505 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_CONNECTED                         0x2Du
4506 
4507 /**
4508  * @format 12
4509  * @param subevent_code
4510  * @param tpxs_cid
4511 */
4512 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_DISCONNECTED                      0x2Eu
4513 
4514 /**
4515  * @format 121
4516  * @param subevent_code
4517  * @param tpxs_cid
4518  * @param value
4519  */
4520 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_TX_POWER_LEVEL                    0x2Fu
4521 
4522 /**
4523  * @format 11
4524  * @param subevent_code
4525  * @param alert_level
4526  */
4527 #define GATTSERVICE_SUBEVENT_LLS_SERVER_START_ALERTING                     0x30u
4528 
4529 /**
4530  * @format 111
4531  * @param subevent_code
4532  * @param alert_level
4533  * @param timeout
4534  */
4535 #define GATTSERVICE_SUBEVENT_LLS_SERVER_STOP_ALERTING                      0x31u
4536 
4537 /**
4538  * @format 11
4539  * @param subevent_code
4540  * @param alert_level
4541  */
4542 #define GATTSERVICE_SUBEVENT_IAS_SERVER_START_ALERTING                     0x32u
4543 
4544 /**
4545  * @format 111
4546  * @param subevent_code
4547  * @param alert_level
4548  * @param timeout
4549  */
4550 #define GATTSERVICE_SUBEVENT_IAS_SERVER_STOP_ALERTING                      0x33u
4551 
4552 
4553 
4554 // LE Audio
4555 
4556 /**
4557  * @format 1H1
4558  * @param subevent_code
4559  * @param con_handle
4560  * @param status
4561 */
4562 #define LEAUDIO_SUBEVENT_BASS_SERVER_CONNECTED                              0x01u
4563 
4564 /**
4565  * @format 1H
4566  * @param subevent_code
4567  * @param con_handle
4568 */
4569 #define LEAUDIO_SUBEVENT_BASS_SERVER_DISCONNECTED                           0x02u
4570 
4571 /**
4572  * @format 1H
4573  * @param subevent_code
4574  * @param con_handle
4575 */
4576 #define LEAUDIO_SUBEVENT_BASS_SERVER_SCAN_STOPPED                         0x03u
4577 
4578 /**
4579  * @format 1H
4580  * @param subevent_code
4581  * @param con_handle
4582 */
4583 #define LEAUDIO_SUBEVENT_BASS_SERVER_SCAN_STARTED                          0x04u
4584 
4585 /**
4586  * @format 1H1K
4587  * @param subevent_code
4588  * @param con_handle
4589  * @param source_id
4590  * @param broadcast_code
4591 */
4592 #define LEAUDIO_SUBEVENT_BASS_SERVER_BROADCAST_CODE                         0x05u
4593 
4594 /**
4595  * @format 1H11
4596  * @param subevent_code
4597  * @param con_handle
4598  * @param source_id
4599  * @param pa_sync
4600  */
4601 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_ADDED                            0x06u
4602 
4603 /**
4604  * @format 1H11
4605  * @param subevent_code
4606  * @param con_handle
4607  * @param source_id
4608  * @param pa_sync
4609  */
4610 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_MODIFIED                         0x07u
4611 
4612 /**
4613  * @format 1H11
4614  * @param subevent_code
4615  * @param con_handle
4616  * @param source_id
4617  * @param pa_sync
4618  */
4619 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_DELETED                          0x08u
4620 
4621 /**
4622  * @format 1H21
4623  * @param subevent_code
4624  * @param con_handle
4625  * @param bass_cid
4626  * @param status
4627 */
4628 #define LEAUDIO_SUBEVENT_BASS_CLIENT_CONNECTED                                0x09u
4629 
4630 /**
4631  * @format 12
4632  * @param subevent_code
4633  * @param bass_cid
4634 */
4635 #define LEAUDIO_SUBEVENT_BASS_CLIENT_DISCONNECTED                             0x0Au
4636 
4637 /**
4638  * @format 1211
4639  * @param subevent_code
4640  * @param bass_cid
4641  * @param status
4642  * @param opcode
4643 */
4644 #define LEAUDIO_SUBEVENT_BASS_CLIENT_SCAN_OPERATION_COMPLETE                   0x0Bu
4645 
4646 /**
4647  * @format 1211B1311P1
4648  * @param subevent_code
4649  * @param bass_cid
4650  * @param source_id
4651  * @param source_address_type
4652  * @param source_address
4653  * @param source_adv_sid
4654  * @param broadcast_id
4655  * @param pa_sync_state
4656  * @param big_encryption
4657  * @param bad_code
4658  * @param subgroups_num
4659 */
4660 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFY_RECEIVE_STATE_BASE                  0x0Cu
4661 
4662 /**
4663  * @format 1214122JV3JV1JV2JV2JV
4664  * @param subevent_code
4665  * @param bass_cid
4666  * @param source_id
4667  * @param bis_sync_state
4668  * @param metadata_mask
4669  * @param preferred_audio_contexts_mask
4670  * @param streaming_audio_contexts_mask
4671  * @param program_info_length
4672  * @param program_info
4673  * @param language_code
4674  * @param ccids_num
4675  * @param ccids
4676  * @param parental_rating
4677  * @param program_info_uri_length
4678  * @param program_info_uri
4679  * @param extended_metadata_type
4680  * @param extended_metadata_value_length
4681  * @param extended_metadata_value
4682  * @param vendor_specific_metadata_type
4683  * @param vendor_specific_metadata_value_length
4684  * @param vendor_specific_metadata_value
4685 */
4686 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFY_RECEIVE_STATE_SUBGROUP                 0x0Du
4687 
4688 /**
4689  * @format 121
4690  * @param subevent_code
4691  * @param bass_cid
4692  * @param source_id
4693 */
4694 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFICATION_COMPLETE                         0x0Eu
4695 
4696 /**
4697  * @format 12111
4698  * @param subevent_code
4699  * @param bass_cid
4700  * @param status
4701  * @param opcode
4702  * @param source_id
4703 */
4704 #define LEAUDIO_SUBEVENT_BASS_CLIENT_SOURCE_OPERATION_COMPLETE                     0x0Fu
4705 
4706 
4707 // MESH Meta Event Group
4708 
4709 /**
4710  * @format 1
4711  * @param subevent_code
4712  */
4713 #define MESH_SUBEVENT_CAN_SEND_NOW                                          0x01u
4714 
4715 /**
4716  * @format 11
4717  * @param subevent_code
4718  * @param status
4719  */
4720 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT                                          0x02u
4721 
4722 /**
4723  * @format 1121
4724  * @param subevent_code
4725  * @param status
4726  * @param pb_transport_cid
4727  * @param pb_type
4728  */
4729 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN                                         0x03u
4730 
4731 /**
4732  * @format 112
4733  * @param subevent_code
4734  * @param pb_transport_cid
4735  * @param reason
4736  */
4737 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED                                       0x04u
4738 
4739 /**
4740  * @format 121
4741  * @param subevent_code
4742  * @param pb_transport_cid
4743  * @param attention_time in seconds
4744  */
4745 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER                                        0x10u
4746 
4747 /**
4748  * Device Role
4749  * @format 12
4750  * @param subevent_code
4751  * @param pb_transport_cid
4752  */
4753 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB                              0x11u
4754 
4755 /**
4756  * Device Role
4757  * @format 12
4758  * @param subevent_code
4759  * @param pb_transport_cid
4760  */
4761 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB                               0x12u
4762 
4763 /**
4764  * Device Role
4765  * @format 12
4766  * @param subevent_code
4767  * @param pb_transport_cid
4768  */
4769 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST                                      0x13u
4770 
4771 /**
4772  * Device Role
4773  * @format 124
4774  * @param subevent_code
4775  * @param pb_transport_cid
4776  * @param output_oob number
4777  */
4778 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB                                  0x15u
4779 
4780 /**
4781  * Device Role
4782  * @format 12
4783  * @param subevent_code
4784  * @param pb_transport_cid
4785  */
4786 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB                                   0x16u
4787 
4788 /**
4789  * Provisioner Role
4790  * @format 12
4791  * @param subevent_code
4792  * @param pb_transport_cid
4793  */
4794 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB                           0x17u
4795 
4796 /**
4797  * Provisioner Role
4798  * @format 12
4799  * @param subevent_code
4800  * @param pb_transport_cid
4801  */
4802 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB                            0x18u
4803 
4804 /**
4805  * Provisioner Role
4806  * @format 12
4807  * @param subevent_code
4808  * @param pb_transport_cid
4809  */
4810 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST                                     0x19u
4811 
4812 /**
4813  * Provisioner Role
4814  * @format 124
4815  * @param subevent_code
4816  * @param pb_transport_cid
4817  * @param output_oob number
4818  */
4819 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB                                   0x1au
4820 
4821 /**
4822  * Provisioner Role
4823  * @format 12
4824  * @param subevent_code
4825  * @param pb_transport_cid
4826  */
4827 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB                                    0x1bu
4828 
4829 /**
4830  * Provisioner Role
4831  * @format 1212111212
4832  * @param subevent_code
4833  * @param pb_transport_cid
4834  * @param num_elements
4835  * @param algorithms
4836  * @param public_key
4837  * @param static_oob_type
4838  * @param output_oob_size
4839  * @param output_oob_action
4840  * @param input_oob_size
4841  * @param input_oob_action
4842  */
4843 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES                                           0x1cu
4844 
4845 /**
4846  * @format 12
4847  * @param subevent_code
4848  * @param pb_transport_cid
4849  */
4850 #define MESH_SUBEVENT_PB_PROV_COMPLETE                                               0x1du
4851 
4852 /**
4853  * @format 11
4854  * @param subevent_code
4855  * @param attention_time in seconds
4856  */
4857 #define MESH_SUBEVENT_ATTENTION_TIMER                                                0x1eu
4858 
4859 /**
4860  * @format 1H
4861  * @param subevent_code
4862  * @param con_handle
4863  */
4864 #define MESH_SUBEVENT_PROXY_CONNECTED                                                0x20u
4865 
4866 /**
4867  * @format 1H
4868  * @param subevent_code
4869  * @param con_handle
4870  */
4871 #define MESH_SUBEVENT_PROXY_PDU_SENT                                                 0x21u
4872 
4873 /**
4874  * @format 1H
4875  * @param subevent_code
4876  * @param con_handle
4877  */
4878 #define MESH_SUBEVENT_PROXY_DISCONNECTED                                             0x22u
4879 
4880 /**
4881  * @format 1H
4882  * @param subevent_code
4883  * @param con_handle
4884  */
4885 #define MESH_SUBEVENT_MESSAGE_SENT                                                   0x23u
4886 
4887 /**
4888  * @format 114411
4889  * @param subevent_code
4890  * @param element_index
4891  * @param model_identifier
4892  * @param state_identifier
4893  * @param reason
4894  * @param value
4895  */
4896 #define MESH_SUBEVENT_STATE_UPDATE_BOOL                                              0x24u
4897 
4898 /**
4899  * @format 114412
4900  * @param subevent_code
4901  * @param element_index
4902  * @param model_identifier
4903  * @param state_identifier
4904  * @param reason
4905  * @param value
4906  */
4907 #define MESH_SUBEVENT_STATE_UPDATE_INT16                                              0x25u
4908 
4909 // Mesh Client Events
4910 /**
4911  * @format 11442
4912  * @param subevent_code
4913  * @param element_index
4914  * @param model_identifier
4915  * @param opcode
4916  * @param dest
4917  */
4918 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED                                        0x30u
4919 
4920 /**
4921  * @format 121114
4922  * @param subevent_code
4923  * @param dest
4924  * @param status
4925  * @param present_value
4926  * @param target_value       optional, if value > 0, than remaining_time_ms must be read
4927  * @param remaining_time_ms
4928  */
4929 #define MESH_SUBEVENT_GENERIC_ON_OFF                                                  0x31u
4930 
4931 /**
4932  * @format 121224
4933  * @param subevent_code
4934  * @param dest
4935  * @param status
4936  * @param present_value
4937  * @param target_value       optional, if value > 0, than remaining_time_ms must be read
4938  * @param remaining_time_ms
4939  */
4940 #define MESH_SUBEVENT_GENERIC_LEVEL                                                   0x32u
4941 
4942 /**
4943  * @format 1222211
4944  * @param subevent_code
4945  * @param dest
4946  * @param netkey_index
4947  * @param appkey_index
4948  * @param company_id
4949  * @param test_id
4950  * @param acknowledged
4951  */
4952 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST                                            0x33u
4953 
4954 /**
4955  * @format 11
4956  * @param subevent_code
4957  * @param element_index
4958  */
4959 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED                                 0x34u
4960 
4961 /**
4962  * @format 1211
4963  * @param subevent_code
4964  * @param dest
4965  * @param status
4966  * @param transition_time_gdtt
4967  */
4968 #define MESH_SUBEVENT_GENERIC_DEFAULT_TRANSITION_TIME                                0x35u
4969 
4970 /**
4971  * @format 1211
4972  * @param subevent_code
4973  * @param dest
4974  * @param foundation_status
4975  * @param secure_network_beacon_state
4976  */
4977 #define MESH_SUBEVENT_CONFIGURATION_BEACON                                           0x36u
4978 
4979 // Composition Data has variable of element descriptions, with two lists of model lists
4980 // Use .. getters to access data
4981 #define MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA                                 0x37u
4982 
4983 /**
4984  * @format 1211
4985  * @param subevent_code
4986  * @param dest
4987  * @param foundation_status
4988  * @param default_ttl
4989  */
4990 #define MESH_SUBEVENT_CONFIGURATION_DEFAULT_TTL                                      0x38u
4991 
4992 /**
4993  * @format 1211
4994  * @param subevent_code
4995  * @param dest
4996  * @param foundation_status
4997  * @param gatt_proxy_state
4998  */
4999 #define MESH_SUBEVENT_CONFIGURATION_GATT_PROXY                                       0x39u
5000 
5001 /**
5002  * @format 121111
5003  * @param subevent_code
5004  * @param dest
5005  * @param foundation_status
5006  * @param relay
5007  * @param retransmit_count                          the number of times that packet is transmitted for each packet that is relayed.
5008  * @param retransmit_interval_ms                    retransmission interval in ms
5009  */
5010 #define MESH_SUBEVENT_CONFIGURATION_RELAY                                            0x40u
5011 
5012 
5013 /**
5014  * @format 12122111114
5015  * @param subevent_code
5016  * @param dest                                      element_address
5017  * @param foundation_status
5018  * @param publish_address
5019  * @param appkey_index
5020  * @param credential_flag
5021  * @param publish_ttl
5022  * @param publish_period
5023  * @param publish_retransmit_count
5024  * @param publish_retransmit_interval_steps
5025  * @param model_identifier
5026  */
5027 #define MESH_SUBEVENT_CONFIGURATION_MODEL_PUBLICATION                                0x41u
5028 
5029 /**
5030  * @format 12124
5031  * @param subevent_code
5032  * @param dest
5033  * @param foundation_status
5034  * @param address
5035  * @param model_identifier
5036  */
5037 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION                               0x42u
5038 
5039 /**
5040  * @format 1214112
5041  * @param subevent_code
5042  * @param dest
5043  * @param foundation_status
5044  * @param model_identifier
5045  * @param num_subscription_addresses
5046  * @param subscription_address_pos
5047  * @param subscription_address_item
5048  */
5049 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION_LIST_ITEM                     0x43u
5050 
5051 
5052 /**
5053  * @format 121
5054  * @param subevent_code
5055  * @param dest
5056  * @param foundation_status
5057  */
5058 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX                                      0x44u
5059 
5060 /**
5061  * @format 121112
5062  * @param subevent_code
5063  * @param dest
5064  * @param foundation_status
5065  * @param num_netkey_indexes
5066  * @param netkey_index_pos
5067  * @param netkey_index_item
5068  */
5069 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX_LIST_ITEM                             0x45u
5070 
5071 /**
5072  * @format 12122
5073  * @param subevent_code
5074  * @param dest
5075  * @param foundation_status
5076  * @param netkey_index_item
5077  * @param appkey_index_item
5078  */
5079 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX                                       0x46u
5080 
5081 /**
5082  * @format 12121122
5083  * @param subevent_code
5084  * @param dest
5085  * @param foundation_status
5086  * @param netkey_index
5087  * @param num_appkey_indexes
5088  * @param appkey_index_pos
5089  * @param netkey_index_item
5090  * @param appkey_index_item
5091  */
5092  #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX_LIST_ITEM                            0x47u
5093 
5094 /**
5095  * @format 12121
5096  * @param subevent_code
5097  * @param dest
5098  * @param foundation_status
5099  * @param netkey_index_item
5100  * @param identity_status
5101  */
5102 #define MESH_SUBEVENT_CONFIGURATION_NODE_IDENTITY                                      0x48u
5103 
5104 /**
5105  * @format 12124
5106  * @param subevent_code
5107  * @param dest
5108  * @param foundation_status
5109  * @param appkey_index
5110  * @param model_identifier
5111  */
5112 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP                                           0x49u
5113 
5114 /**
5115  * @format 1214112
5116  * @param subevent_code
5117  * @param dest
5118  * @param foundation_status
5119  * @param model_id
5120  * @param num_appkey_indexes
5121  * @param appkey_index_pos
5122  * @param appkey_index_item
5123  */
5124 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP_LIST_ITEM                                 0x50u
5125 
5126 /**
5127  * @format 121
5128  * @param subevent_code
5129  * @param dest
5130  * @param foundation_status
5131  */
5132 #define MESH_SUBEVENT_CONFIGURATION_NODE_RESET                                          0x51u
5133 
5134 /**
5135  * @format 1211
5136  * @param subevent_code
5137  * @param dest
5138  * @param foundation_status
5139  * @param friend_state
5140  */
5141 #define MESH_SUBEVENT_CONFIGURATION_FRIEND                                              0x52u
5142 
5143 /**
5144  * @format 12121
5145  * @param subevent_code
5146  * @param dest
5147  * @param foundation_status
5148  * @param netkey_index
5149  * @param phase
5150  */
5151 #define MESH_SUBEVENT_CONFIGURATION_KEY_REFRESH_PHASE                                   0x53u
5152 
5153 /**
5154  * @format 121222122
5155  * @param subevent_code
5156  * @param dest
5157  * @param foundation_status
5158  * @param heartbeat_destination
5159  * @param count_S
5160  * @param period_S
5161  * @param ttl
5162  * @param features
5163  * @param netkey_index
5164  */
5165 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_PUBLICATION                               0x54u
5166 
5167 /**
5168  * @format 121222211
5169  * @param subevent_code
5170  * @param dest
5171  * @param foundation_status
5172  * @param heartbeat_destination
5173  * @param heartbeat_source
5174  * @param count_S
5175  * @param period_S
5176  * @param min_hops
5177  * @param max_hops
5178  */
5179 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_SUBSCRIPTION                              0x55u
5180 
5181 /**
5182  * @format 12123
5183  * @param subevent_code
5184  * @param dest
5185  * @param foundation_status
5186  * @param lpn_address
5187  * @param poll_timeout
5188  */
5189 #define MESH_SUBEVENT_CONFIGURATION_LOW_POWER_NODE_POLL_TIMEOUT                         0x56u
5190 
5191 /**
5192  * @format 12112
5193  * @param subevent_code
5194  * @param dest
5195  * @param foundation_status
5196  * @param transmit_count
5197  * @param transmit_interval_steps_ms
5198  */
5199 #define MESH_SUBEVENT_CONFIGURATION_NETWORK_TRANSMIT                                    0x57u
5200 
5201 
5202 #endif
5203