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