xref: /btstack/src/btstack_defines.h (revision 25c92c243797abf98ec103015a489f168ed94c64)
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 1211112131
2671  * @param subevent_code
2672  * @param avdtp_cid
2673  * @param remote_seid
2674  * @param media_type
2675  * @param object_type_bitmap
2676  * @param drc
2677  * @param sampling_frequency_bitmap
2678  * @param channels_bitmap
2679  * @param bit_rate
2680  * @param vbr
2681  */
2682 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY     0x09u
2683 
2684 /**
2685  * @format 1211111132
2686  * @param subevent_code
2687  * @param avdtp_cid
2688  * @param remote_seid
2689  * @param media_type
2690  * @param version
2691  * @param channel_mode_bitmap
2692  * @param sampling_frequency_bitmap
2693  * @param vbr
2694  * @param bit_rate_index_bitmap
2695  * @param maximum_sul
2696  */
2697 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY        0x0Au
2698 
2699 /**
2700  * @format 12112LV
2701  * @param subevent_code
2702  * @param avdtp_cid
2703  * @param remote_seid
2704  * @param media_type
2705  * @param media_codec_type
2706  * @param media_codec_information_len
2707  * @param media_codec_information
2708  */
2709 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY        0x0Bu
2710 
2711 
2712 /**
2713  * @format 121
2714  * @param subevent_code
2715  * @param avdtp_cid
2716  * @param remote_seid
2717  */
2718 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY         0x0Cu
2719 
2720 
2721 /**
2722  * @format 121
2723  * @param subevent_code
2724  * @param avdtp_cid
2725  * @param remote_seid
2726  */
2727 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY        0x0Du
2728 
2729 
2730 /**
2731  * @format 121111
2732  * @param subevent_code
2733  * @param avdtp_cid
2734  * @param remote_seid
2735  * @param recovery_type
2736  * @param maximum_recovery_window_size
2737  * @param maximum_number_media_packets
2738  */
2739 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY        0x0Eu
2740 
2741 
2742 /**
2743  * @format 1212LV
2744  * @param subevent_code
2745  * @param avdtp_cid
2746  * @param remote_seid
2747  * @param cp_type
2748  * @param cp_type_value_len
2749  * @param cp_type_value
2750  */
2751 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY        0x0Fu
2752 
2753 
2754 /**
2755  * @format 12111111111
2756  * @param subevent_code
2757  * @param avdtp_cid
2758  * @param remote_seid
2759  * @param fragmentation
2760  * @param transport_identifiers_num
2761  * @param transport_session_identifier_1
2762  * @param transport_session_identifier_2
2763  * @param transport_session_identifier_3
2764  * @param tcid_1
2765  * @param tcid_2
2766  * @param tcid_3
2767  */
2768 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY        0x10u
2769 
2770 
2771 /**
2772  * @format 121
2773  * @param subevent_code
2774  * @param avdtp_cid
2775  * @param remote_seid
2776  */
2777 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY        0x11u
2778 
2779 
2780 /**
2781  * @format 121111
2782  * @param subevent_code
2783  * @param avdtp_cid
2784  * @param remote_seid
2785  * @param back_ch
2786  * @param media
2787  * @param recovery
2788  */
2789 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY        0x12u
2790 
2791 /**
2792  * @format 121
2793  * @param subevent_code
2794  * @param avdtp_cid
2795  * @param remote_seid
2796  */
2797 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE                    0x13u
2798 
2799 
2800 /**
2801  * @format 12111121111111
2802  * @param subevent_code
2803  * @param avdtp_cid
2804  * @param local_seid
2805  * @param remote_seid
2806  * @param reconfigure
2807  * @param media_type
2808  * @param sampling_frequency
2809  * @param channel_mode
2810  * @param num_channels
2811  * @param block_length
2812  * @param subbands
2813  * @param allocation_method
2814  * @param min_bitpool_value
2815  * @param max_bitpool_value
2816  */
2817 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION        0x14u
2818 
2819 /**
2820  * @format 12111111111211
2821  * @param subevent_code
2822  * @param avdtp_cid
2823  * @param local_seid
2824  * @param remote_seid
2825  * @param reconfigure
2826  * @param media_type
2827  * @param layer
2828  * @param crc
2829  * @param channel_mode
2830  * @param num_channels
2831  * @param media_payload_format
2832  * @param sampling_frequency
2833  * @param vbr
2834  * @param bit_rate_index
2835  */
2836 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION   0x15u
2837 
2838 /**
2839  * @format 121111113131
2840  * @param subevent_code
2841  * @param avdtp_cid
2842  * @param local_seid
2843  * @param remote_seid
2844  * @param reconfigure
2845  * @param media_type
2846  * @param object_type
2847  * @param drc
2848  * @param sampling_frequency
2849  * @param num_channels
2850  * @param bit_rate
2851  * @param vbr
2852  */
2853 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION     0x16u
2854 
2855 /**
2856  * @format 1211111112112
2857  * @param subevent_code
2858  * @param avdtp_cid
2859  * @param local_seid
2860  * @param remote_seid
2861  * @param reconfigure
2862  * @param media_type
2863  * @param version
2864  * @param channel_mode
2865  * @param num_channels
2866  * @param sampling_frequency
2867  * @param vbr
2868  * @param bit_rate_index
2869  * @param maximum_sul
2870  */
2871 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION        0x17u
2872 
2873 /**
2874  * @format 1211112LV
2875  * @param subevent_code
2876  * @param avdtp_cid
2877  * @param local_seid
2878  * @param remote_seid
2879  * @param reconfigure
2880  * @param media_type
2881  * @param media_codec_type
2882  * @param media_codec_information_len
2883  * @param media_codec_information
2884  */
2885 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION        0x18u
2886 
2887 /**
2888  * @format 12B111
2889  * @param subevent_code
2890  * @param avdtp_cid
2891  * @param bd_addr
2892  * @param local_seid
2893  * @param remote_seid
2894  * @param status 0 == OK
2895  */
2896 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED     0x19u
2897 
2898 /**
2899  * @format 121
2900  * @param subevent_code
2901  * @param avdtp_cid
2902  * @param local_seid
2903  */
2904 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED        0x1Au
2905 
2906 /**
2907  * @format 1212
2908  * @param subevent_code
2909  * @param avdtp_cid
2910  * @param local_seid
2911  * @param sequence_number
2912  */
2913 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW   0x1Bu
2914 
2915 
2916 /**
2917  * @format 12
2918  * @param subevent_code
2919  * @param avdtp_cid
2920  */
2921 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE           0x1Cu
2922 
2923 /**
2924  * @format 1212
2925  * @param subevent_code
2926  * @param avdtp_cid
2927  * @param local_seid
2928  * @param delay_100us
2929  */
2930 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT               0x1Du
2931 
2932 /**
2933  * @format 121114113
2934  * @param subevent_code
2935  * @param avdtp_cid
2936  * @param remote_seid
2937  * @param media_type
2938  * @param object_type
2939  * @param sampling_frequency_bitmap
2940  * @param channels_bitmap
2941  * @param vbr
2942  * @param bit_rate_index_bitmap
2943  */
2944 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_D_USAC_CAPABILITY     0x1Eu
2945 
2946 /**
2947  * @format 12111113113
2948  * @param subevent_code
2949  * @param avdtp_cid
2950  * @param local_seid
2951  * @param remote_seid
2952  * @param reconfigure
2953  * @param media_type
2954  * @param object_type
2955  * @param sampling_frequency
2956  * @param num_channels
2957  * @param vbr
2958  * @param bit_rate
2959  */
2960 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_D_USAC_CONFIGURATION     0x1Fu
2961 
2962 /** A2DP Subevent */
2963 /* Stream goes through following states:
2964  * - OPEN         - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event
2965  * - START        - indicated with A2DP_SUBEVENT_STREAM_STARTED event
2966  * - SUSPEND      - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event
2967  * - ABORT/STOP   - indicated with A2DP_SUBEVENT_STREAM_RELEASED event
2968 
2969  OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started.
2970  START can come only after the stream is OPENED, and indicates that media transfer is started.
2971  SUSPEND is optional, it pauses the stream.
2972  */
2973 
2974 /**
2975  * @format 121            Sent only by A2DP source.
2976  * @param subevent_code
2977  * @param a2dp_cid
2978  * @param local_seid
2979  */
2980 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW         0x01u
2981 
2982 /**
2983  * @format 12111121111111
2984  * @param subevent_code
2985  * @param a2dp_cid
2986  * @param local_seid
2987  * @param remote_seid
2988  * @param reconfigure
2989  * @param media_type
2990  * @param sampling_frequency
2991  * @param channel_mode
2992  * @param num_channels
2993  * @param block_length
2994  * @param subbands
2995  * @param allocation_method
2996  * @param min_bitpool_value
2997  * @param max_bitpool_value
2998  */
2999 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION      0x02u
3000 
3001 /**
3002  * @format 12111111111211
3003  * @param subevent_code
3004  * @param a2dp_cid
3005  * @param local_seid
3006  * @param remote_seid
3007  * @param reconfigure
3008  * @param media_type
3009  * @param layer
3010  * @param crc
3011  * @param channel_mode
3012  * @param num_channels
3013  * @param media_payload_format
3014  * @param sampling_frequency
3015  * @param vbr
3016  * @param bit_rate_index
3017  */
3018 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION   0x03u
3019 
3020 /**
3021  * @format 12111113131
3022  * @param subevent_code
3023  * @param a2dp_cid
3024  * @param local_seid
3025  * @param remote_seid
3026  * @param reconfigure
3027  * @param media_type
3028  * @param object_type
3029  * @param sampling_frequency
3030  * @param num_channels
3031  * @param bit_rate
3032  * @param vbr
3033  */
3034 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION     0x04u
3035 
3036 /**
3037  * @format 1211111112112
3038  * @param subevent_code
3039  * @param a2dp_cid
3040  * @param local_seid
3041  * @param remote_seid
3042  * @param reconfigure
3043  * @param media_type
3044  * @param version
3045  * @param channel_mode
3046  * @param num_channels
3047  * @param sampling_frequency
3048  * @param vbr
3049  * @param bit_rate_index
3050  * @param maximum_sul
3051  */
3052 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION        0x05u
3053 
3054 /**
3055  * @format 1211112LV
3056  * @param subevent_code
3057  * @param a2dp_cid
3058  * @param local_seid
3059  * @param remote_seid
3060  * @param reconfigure
3061  * @param media_type
3062  * @param media_codec_type
3063  * @param media_codec_information_len
3064  * @param media_codec_information
3065  */
3066 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION    0x06u
3067 
3068 /**
3069  * @format 12B111          Stream is opened but not started.
3070  * @param subevent_code
3071  * @param a2dp_cid
3072  * @param bd_addr
3073  * @param local_seid
3074  * @param remote_seid
3075  * @param status
3076  */
3077 #define A2DP_SUBEVENT_STREAM_ESTABLISHED                           0x07u
3078 
3079 /**
3080  * @format 121            If ENABLE_AVDTP_ACCEPTOR_EXPLICIT_START_STREAM_CONFIRMATION, user must explicitly accept stream start.
3081  * @param subevent_code
3082  * @param a2dp_cid
3083  * @param local_seid
3084  */
3085 #define A2DP_SUBEVENT_START_STREAM_REQUESTED                       0x08u
3086 
3087 /**
3088  * @format 121            Indicates that media transfer is started.
3089  * @param subevent_code
3090  * @param a2dp_cid
3091  * @param local_seid
3092  */
3093 #define A2DP_SUBEVENT_STREAM_STARTED                               0x09u
3094 
3095 /**
3096  * @format 121           Stream is paused.
3097  * @param subevent_code
3098  * @param a2dp_cid
3099  * @param local_seid
3100  */
3101 #define A2DP_SUBEVENT_STREAM_SUSPENDED                              0x0Au
3102 
3103 /**
3104  * @format 121           Stream is stopped or aborted.
3105  * @param subevent_code
3106  * @param a2dp_cid
3107  * @param local_seid
3108  */
3109 #define A2DP_SUBEVENT_STREAM_STOPPED                                0x0Bu
3110 
3111 /**
3112  * @format 121            Stream is released.
3113  * @param subevent_code
3114  * @param a2dp_cid
3115  * @param local_seid
3116  */
3117 #define A2DP_SUBEVENT_STREAM_RELEASED                               0x0Cu
3118 
3119 /**
3120  * @format 1211
3121  * @param subevent_code
3122  * @param a2dp_cid
3123  * @param local_seid
3124  * @param signal_identifier
3125  */
3126 #define A2DP_SUBEVENT_COMMAND_ACCEPTED                              0x0Du
3127 
3128 /**
3129  * @format 12111
3130  * @param subevent_code
3131  * @param a2dp_cid
3132  * @param local_seid
3133  * @param is_initiator
3134  * @param signal_identifier
3135  */
3136 #define A2DP_SUBEVENT_COMMAND_REJECTED                              0x0Eu
3137 
3138 /**
3139  * @format 12B21
3140  * @param subevent_code
3141  * @param a2dp_cid
3142  * @param bd_addr
3143  * @param con_handle
3144  * @param status 0 == OK
3145  */
3146 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED              0x0Fu
3147 
3148 /**
3149  * @format 12            Signaling channel is released.
3150  * @param subevent_code
3151  * @param a2dp_cid
3152  */
3153 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED                  0x10u
3154 
3155 /**
3156  * @format 1211          Stream was reconfigured
3157  * @param subevent_code
3158  * @param a2dp_cid
3159  * @param local_seid
3160  * @param status
3161  */
3162 #define A2DP_SUBEVENT_STREAM_RECONFIGURED                            0x12u
3163 
3164 /**
3165  * @format 12111111111
3166  * @param subevent_code
3167  * @param a2dp_cid
3168  * @param remote_seid
3169  * @param media_type
3170  * @param sampling_frequency_bitmap
3171  * @param channel_mode_bitmap
3172  * @param block_length_bitmap
3173  * @param subbands_bitmap
3174  * @param allocation_method_bitmap
3175  * @param min_bitpool_value
3176  * @param max_bitpool_value
3177  */
3178 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY          0x13u
3179 
3180 /**
3181  * @format 12111111112
3182  * @param subevent_code
3183  * @param a2dp_cid
3184  * @param remote_seid
3185  * @param media_type
3186  * @param layer_bitmap
3187  * @param crc
3188  * @param channel_mode_bitmap
3189  * @param media_payload_format
3190  * @param sampling_frequency_bitmap
3191  * @param vbr
3192  * @param bit_rate_index_bitmap
3193  */
3194 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY   0x14u
3195 
3196 /**
3197  * @format 121112131
3198  * @param subevent_code
3199  * @param a2dp_cid
3200  * @param remote_seid
3201  * @param media_type
3202  * @param object_type_bitmap
3203  * @param sampling_frequency_bitmap
3204  * @param channels_bitmap
3205  * @param bit_rate
3206  * @param vbr
3207  */
3208 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY     0x15u
3209 
3210 /**
3211  * @format 1211111132
3212  * @param subevent_code
3213  * @param a2dp_cid
3214  * @param remote_seid
3215  * @param media_type
3216  * @param version
3217  * @param channel_mode_bitmap
3218  * @param sampling_frequency_bitmap
3219  * @param vbr
3220  * @param bit_rate_index_bitmap
3221  * @param maximum_sul
3222  */
3223 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY        0x16u
3224 
3225 /**
3226  * @format 12112LV
3227  * @param subevent_code
3228  * @param a2dp_cid
3229  * @param remote_seid
3230  * @param media_type
3231  * @param media_codec_type
3232  * @param media_codec_information_len
3233  * @param media_codec_information
3234  */
3235 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY        0x17u
3236 
3237 /**
3238  * @format 121
3239  * @param subevent_code
3240  * @param a2dp_cid
3241  * @param remote_seid
3242  */
3243 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY           0x18u
3244 
3245 
3246 /**
3247  * @format 1212
3248  * @param subevent_code
3249  * @param a2dp_cid
3250  * @param local_seid
3251  * @param delay_100us
3252  */
3253 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT                         0x19u
3254 
3255 /**
3256  * @format 121
3257  * @param subevent_code
3258  * @param a2dp_cid
3259  * @param remote_seid
3260  */
3261 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE                    0x1Au
3262 
3263 /**
3264  * @format 12
3265  * @param subevent_code
3266  * @param a2dp_cid
3267  */
3268 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_COMPLETE                0x1Bu
3269 
3270 
3271 /** AVRCP Subevent */
3272 
3273 /**
3274  * @format 1211
3275  * @param subevent_code
3276  * @param avrcp_cid
3277  * @param command_type
3278  * @param play_status
3279  */
3280 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED                         0x01u
3281 
3282 /**
3283  * @format 121
3284  * @param subevent_code
3285  * @param avrcp_cid
3286  * @param command_type
3287  */
3288 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED                                   0x02u
3289 
3290 /**
3291  * @format 121
3292  * @param subevent_code
3293  * @param avrcp_cid
3294  * @param command_type
3295  */
3296 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_END                         0x03u
3297 
3298 /**
3299  * @format 121
3300  * @param subevent_code
3301  * @param avrcp_cid
3302  * @param command_type
3303  */
3304 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_START                       0x04u
3305 
3306 /**
3307  * @format 1214
3308  * @param subevent_code
3309  * @param avrcp_cid
3310  * @param command_type
3311  * @param playback_position  If no track currently selected, then return 0xFFuFFFFFF in the INTERIM response.
3312  */
3313 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYBACK_POS_CHANGED                      0x05u
3314 
3315 /**
3316  * @format 1211
3317  * @param subevent_code
3318  * @param avrcp_cid
3319  * @param command_type
3320  * @param battery_status  see avrcp_battery_status_t
3321  */
3322 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_BATT_STATUS_CHANGED                       0x06u
3323 
3324 /**
3325  * @format 1211
3326  * @param subevent_code
3327  * @param avrcp_cid
3328  * @param command_type
3329  * @param system_status  see avrcp_system_status_t
3330  */
3331 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_SYSTEM_STATUS_CHANGED                     0x07u
3332 
3333 
3334 // 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
3335 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYER_APPLICATION_SETTING_CHANGED        0x08u
3336 
3337 /**
3338  * @format 121
3339  * @param subevent_code
3340  * @param avrcp_cid
3341  * @param command_type
3342  */
3343 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED                     0x09u
3344 
3345 /**
3346  * @format 121
3347  * @param subevent_code
3348  * @param avrcp_cid
3349  * @param command_type
3350  */
3351 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED                       0x0Au
3352 
3353 // AVRCP_SUBEVENT_NOTIFICATION_EVENT_ADDRESSED_PLAYER_CHANGED = 0x0bu,           -- The Addressed Player has been changed, see 6.9.2.
3354 
3355 /**
3356  * @format 1212
3357  * @param subevent_code
3358  * @param avrcp_cid
3359  * @param command_type
3360  * @param uid_counter of the currently browsed player
3361  */
3362 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_UIDS_CHANGED                              0x0Cu
3363 
3364 /**
3365  * @format 1211
3366  * @param subevent_code
3367  * @param avrcp_cid
3368  * @param command_type
3369  * @param absolute_volume
3370  */
3371 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED                                  0x0Du
3372 
3373 
3374 /**
3375  * @format 1211
3376  * @param subevent_code
3377  * @param avrcp_cid
3378  * @param command_type
3379  * @param absolute_volume
3380  */
3381 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE                      0x10u
3382 
3383 /**
3384  * @format 12111
3385  * @param subevent_code
3386  * @param avrcp_cid
3387  * @param status
3388  * @param enabled      1 enabled, 0 disabled
3389  * @param event_id
3390  */
3391 #define AVRCP_SUBEVENT_NOTIFICATION_STATE                               0x11u
3392 
3393 /**
3394  * @format 112B2
3395  * @param subevent_code
3396  * @param status 0 == OK
3397  * @param avrcp_cid
3398  * @param bd_addr
3399  * @param con_handle
3400  */
3401 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED                           0x12u
3402 
3403 /**
3404  * @format 12
3405  * @param subevent_code
3406  * @param avrcp_cid
3407  */
3408 #define AVRCP_SUBEVENT_CONNECTION_RELEASED                              0x13u
3409 
3410 /**
3411  * @format 12111
3412  * @param subevent_code
3413  * @param avrcp_cid
3414  * @param command_type
3415  * @param repeat_mode
3416  * @param shuffle_mode
3417  */
3418 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE                          0x14u
3419 
3420 /**
3421  * @format 121441
3422  * @param subevent_code
3423  * @param avrcp_cid
3424  * @param command_type
3425  * @param song_length
3426  * @param song_position
3427  * @param play_status
3428  */
3429  #define AVRCP_SUBEVENT_PLAY_STATUS                                     0x15u
3430 
3431 /**
3432  * @format 1211
3433  * @param subevent_code
3434  * @param avrcp_cid
3435  * @param command_type
3436  * @param operation_id
3437  */
3438 #define AVRCP_SUBEVENT_OPERATION_START                                    0x16u
3439 
3440 /**
3441  * @format 1211
3442  * @param subevent_code
3443  * @param avrcp_cid
3444  * @param command_type
3445  * @param operation_id
3446  */
3447 #define AVRCP_SUBEVENT_OPERATION_COMPLETE                                 0x17u
3448 
3449 /**
3450  * @format 121
3451  * @param subevent_code
3452  * @param avrcp_cid
3453  * @param command_type
3454  */
3455 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE                   0x18u
3456 
3457 /**
3458  * @format 12
3459  * @param subevent_code
3460  * @param avrcp_cid
3461  */
3462 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY                                    0x19u
3463 
3464 /**
3465  * @format 121111
3466  * @param subevent_code
3467  * @param avrcp_cid
3468  * @param operation_id
3469  * @param button_pressed
3470  * @param operands_length
3471  * @param operand
3472  */
3473 #define AVRCP_SUBEVENT_OPERATION                                            0x1Au
3474 
3475 /**
3476  * @format 1211
3477  * @param subevent_code
3478  * @param avrcp_cid
3479  * @param command_type
3480  * @param track
3481  */
3482 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO                               0x1Bu
3483 
3484 /**
3485  * @format 1211
3486  * @param subevent_code
3487  * @param avrcp_cid
3488  * @param command_type
3489  * @param total_tracks
3490  */
3491 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO                        0x1Cu
3492 
3493 /**
3494  * @format 1214
3495  * @param subevent_code
3496  * @param avrcp_cid
3497  * @param command_type
3498  * @param song_length in ms
3499  */
3500 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO                      0x1Du
3501 
3502 /**
3503  * @format 121JV
3504  * @param subevent_code
3505  * @param avrcp_cid
3506  * @param command_type
3507  * @param value_len
3508  * @param value
3509  */
3510 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO                                 0x1Eu
3511 
3512  /*
3513  * @format 121JV
3514  * @param subevent_code
3515  * @param avrcp_cid
3516  * @param command_type
3517  * @param value_len
3518  * @param value
3519  */
3520 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO                                0x1Fu
3521 
3522  /*
3523  * @format 121JV
3524  * @param subevent_code
3525  * @param avrcp_cid
3526  * @param command_type
3527  * @param value_len
3528  * @param value
3529  */
3530 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO                                 0x20u
3531 
3532  /*
3533  * @format 121JV
3534  * @param subevent_code
3535  * @param avrcp_cid
3536  * @param command_type
3537  * @param value_len
3538  * @param value
3539  */
3540 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO                                 0x21u
3541 
3542 /*
3543 * @format 121JV
3544 * @param subevent_code
3545 * @param avrcp_cid
3546 * @param command_type
3547 * @param value_len
3548 * @param value
3549 */
3550 #define AVRCP_SUBEVENT_NOW_PLAYING_COVER_ART_INFO                             0x22u
3551 
3552 /*
3553  * @format 1211
3554  * @param subevent_code
3555  * @param avrcp_cid
3556  * @param command_type
3557  * @param status
3558  */
3559 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE                                  0x23u
3560 
3561 /**
3562  * @format 1214
3563  * @param subevent_code
3564  * @param avrcp_cid
3565  * @param command_type
3566  * @param playback_position_ms
3567  */
3568 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED                      0x24u
3569 
3570 /*
3571  * @format 12111
3572  * @param subevent_code
3573  * @param avrcp_cid
3574  * @param command_type
3575  * @param status
3576  * @param event_id
3577  */
3578 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID                                0x25u
3579 /*
3580  * @format 1211
3581  * @param subevent_code
3582  * @param avrcp_cid
3583  * @param command_type
3584  * @param status
3585  */
3586 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID_DONE                           0x26u
3587 
3588 /*
3589  * @format 12113
3590  * @param subevent_code
3591  * @param avrcp_cid
3592  * @param command_type
3593  * @param status
3594  * @param company_id
3595  */
3596 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID                              0x27u
3597 /*
3598  * @format 1211
3599  * @param subevent_code
3600  * @param avrcp_cid
3601  * @param command_type
3602  * @param status
3603  */
3604 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID_DONE                         0x28u
3605 
3606 /**
3607  * @format 1211LV
3608  * @param subevent_code
3609  * @param avrcp_cid
3610  * @param command_type
3611  * @param pdu_id
3612  * @param params_len
3613  * @param params
3614 */
3615 #define AVRCP_SUBEVENT_CUSTOM_COMMAND_RESPONSE                               0x29u
3616 
3617 
3618 /**
3619  * @format 1B2
3620  * @param subevent_code
3621  * @param bd_addr
3622  * @param browsing_cid
3623  */
3624 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION                          0x30u
3625 
3626 /**
3627  * @format 11B2
3628  * @param subevent_code
3629  * @param status 0 == OK
3630  * @param bd_addr
3631  * @param browsing_cid
3632  */
3633 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED                        0x31u
3634 
3635 /**
3636  * @format 12
3637  * @param subevent_code
3638  * @param browsing_cid
3639  */
3640 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED                           0x32u
3641 
3642 /**
3643  * @format 12211
3644  * @param subevent_code
3645  * @param browsing_cid
3646  * @param uid_counter
3647  * @param browsing_status
3648  * @param bluetooth_status
3649  */
3650 #define AVRCP_SUBEVENT_BROWSING_DONE                                          0x33u
3651 
3652 /**
3653  * @format 121444
3654  * @param subevent_code
3655  * @param browsing_cid
3656  * @param scope
3657  * @param start_item
3658  * @param end_item
3659  * @param attr_bitmap
3660  */
3661 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS                              0x34u
3662 
3663 /**
3664  * @format 121
3665  * @param subevent_code
3666  * @param browsing_cid
3667  * @param scope
3668  */
3669 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS                           0x35u
3670 
3671 /**
3672  * @format 122
3673  * @param subevent_code
3674  * @param browsing_cid
3675  * @param player_id
3676  */
3677 #define AVRCP_SUBEVENT_BROWSING_SET_BROWSED_PLAYER                            0x36u
3678 
3679 /**
3680  * @format 11B22
3681  * @param subevent_code
3682  * @param status 0 == OK
3683  * @param bd_addr
3684  * @param avrcp_cid
3685  * @param cover_art_cid
3686  */
3687 #define AVRCP_SUBEVENT_COVER_ART_CONNECTION_ESTABLISHED                       0x37u
3688 
3689 /**
3690  * @format 121
3691  * @param subevent_code
3692  * @param cover_art_cid
3693  * @param status
3694  */
3695 #define AVRCP_SUBEVENT_COVER_ART_OPERATION_COMPLETE                           0x38u
3696 
3697 /**
3698  * @format 12
3699  * @param subevent_code
3700  * @param cover_art_cid
3701  */
3702 #define AVRCP_SUBEVENT_COVER_ART_CONNECTION_RELEASED                          0x39u
3703 
3704 /**
3705  * @format 1221D
3706  * @param subevent_code
3707  * @param browsing_cid
3708  * @param uid_counter
3709  * @param direction
3710  * @param folder_id
3711  */
3712 #define AVRCP_SUBEVENT_BROWSING_CHANGE_PATH                                   0x40u
3713 
3714 /**
3715  * @format 1221DJV
3716  * @param subevent_code
3717  * @param browsing_cid
3718  * @param uid_counter
3719  * @param scope
3720  * @param item_id
3721  * @param attributes_len
3722  * @param attributes
3723  */
3724 #define AVRCP_SUBEVENT_BROWSING_GET_ITEM_ATTRIBUTES                                   0x41u
3725 
3726 /**
3727  * @format 122JV
3728  * @param subevent_code
3729  * @param browsing_cid
3730  * @param characterset
3731  * @param value_length
3732  * @param value
3733  */
3734 
3735 #define AVRCP_SUBEVENT_BROWSING_SEARCH                                                 0x42u
3736 
3737 /**
3738  * @format 1221D
3739  * @param subevent_code
3740  * @param avrcp_cid
3741  * @param uid_counter
3742  * @param scope
3743  * @param item_id
3744  */
3745 #define AVRCP_SUBEVENT_PLAY_ITEM                                                       0x42u
3746 
3747 /**
3748  * @format 1221D
3749  * @param subevent_code
3750  * @param avrcp_cid
3751  * @param uid_counter
3752  * @param scope
3753  * @param item_id
3754  */
3755 #define AVRCP_SUBEVENT_ADD_TO_NOW_PLAYING                                              0x43u
3756 
3757 /**
3758  * @format 12BH
3759  * @param subevent_code
3760  * @param goep_cid
3761  * @param address
3762  * @param handle
3763  */
3764 #define GOEP_SUBEVENT_INCOMING_CONNECTION                                  0x01u
3765 
3766 /**
3767  * @format 121BH1
3768  * @param subevent_code
3769  * @param goep_cid
3770  * @param status
3771  * @param bd_addr
3772  * @param con_handle
3773  * @param incoming
3774  */
3775 #define GOEP_SUBEVENT_CONNECTION_OPENED                                    0x02u
3776 
3777 /**
3778  * @format 12
3779  * @param subevent_code
3780  * @param goep_cid
3781 */
3782 #define GOEP_SUBEVENT_CONNECTION_CLOSED                                    0x03u
3783 
3784 /**
3785  * @format 12
3786  * @param subevent_code
3787  * @param goep_cid
3788 */
3789 #define GOEP_SUBEVENT_CAN_SEND_NOW                                         0x04u
3790 
3791 /**
3792  * @format 121BH1
3793  * @param subevent_code
3794  * @param pbap_cid
3795  * @param status
3796  * @param bd_addr
3797  * @param con_handle
3798  * @param incoming
3799  */
3800 #define PBAP_SUBEVENT_CONNECTION_OPENED                                    0x01u
3801 
3802 /**
3803  * @format 12
3804  * @param subevent_code
3805  * @param goep_cid
3806 */
3807 #define PBAP_SUBEVENT_CONNECTION_CLOSED                                    0x02u
3808 
3809 /**
3810  * @format 121
3811  * @param subevent_code
3812  * @param goep_cid
3813  * @param status
3814  */
3815 #define PBAP_SUBEVENT_OPERATION_COMPLETED                                  0x03u
3816 
3817 /**
3818  * @format 1212
3819  * @param subevent_code
3820  * @param goep_cid
3821  * @param status
3822  * @param phonebook_size
3823  */
3824 #define PBAP_SUBEVENT_PHONEBOOK_SIZE                                       0x04u
3825 
3826 /**
3827  * @format 1211
3828  * @param subevent_code
3829  * @param goep_cid
3830  * @param user_id_required
3831  * @param full_access
3832  */
3833 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST                               0x05u
3834 
3835 /**
3836  * @format 12JVJV
3837  * @param subevent_code
3838  * @param goep_cid
3839  * @param name_len
3840  * @param name
3841  * @param handle_len
3842  * @param handle
3843  */
3844 #define PBAP_SUBEVENT_CARD_RESULT                                          0x06u
3845 
3846 /**
3847  * @format 121
3848  * @param subevent_code
3849  * @param goep_cid
3850  * @param phonebook
3851  */
3852 #define PBAP_SUBEVENT_RESET_MISSED_CALLS                                   0x0Au
3853 
3854 /**
3855  * @format 12411
3856  * @param subevent_code
3857  * @param goep_cid
3858  * @param vcard_selector
3859  * @param vcard_selector_operator
3860  * @param phonebook
3861  */
3862 #define PBAP_SUBEVENT_QUERY_PHONEBOOK_SIZE                                 0x0Bu
3863 
3864 /**
3865  * @format 1244122411
3866  * @param subevent_code
3867  * @param goep_cid
3868  * @param continuation - value provided by caller of pbap_server_send_pull_response
3869  * @param property_selector
3870  * @param format
3871  * @param max_list_count 0xffff for unlimited
3872  * @param list_start_offset
3873  * @param vcard_selector
3874  * @param vcard_selector_operator
3875  * @param phonebook
3876  */
3877 #define PBAP_SUBEVENT_PULL_PHONEBOOK                                      0x0Cu
3878 
3879 /**
3880  * @format 124122411JV1
3881  * @param subevent_code
3882  * @param goep_cid
3883  * @param continuation - value provided by caller of pbap_server_send_pull_response
3884  * @param order
3885  * @param max_list_count 0xffff for unlimited
3886  * @param list_start_offset
3887  * @param vcard_selector
3888  * @param vcard_selector_operator
3889  * @param search_property
3890  * @param search_value_len
3891  * @param search_value
3892  * @param phonebook
3893  */
3894 #define PBAP_SUBEVENT_PULL_VCARD_LISTING                                   0x0Du
3895 
3896 /**
3897  * @format 124411T
3898  * @param subevent_code
3899  * @param goep_cid
3900  * @param continuation - value provided by caller of pbap_server_send_pull_response
3901  * @param property_selector
3902  * @param format
3903  * @param phonebook
3904  * @param name
3905  */
3906 #define PBAP_SUBEVENT_PULL_VCARD_ENTRY                                     0x0Eu
3907 
3908 
3909 // HID Meta Event Group
3910 
3911 /**
3912  * @format 12BH
3913  * @param subevent_code
3914  * @param hid_cid
3915  * @param address
3916  * @param handle
3917  */
3918 #define HID_SUBEVENT_INCOMING_CONNECTION                                   0x01u
3919 
3920 /**
3921  * @format 121BH1
3922  * @param subevent_code
3923  * @param hid_cid
3924  * @param status
3925  * @param bd_addr
3926  * @param con_handle
3927  * @param incoming
3928  */
3929 #define HID_SUBEVENT_CONNECTION_OPENED                                     0x02u
3930 
3931 /**
3932  * @format 12
3933  * @param subevent_code
3934  * @param hid_cid
3935 */
3936 #define HID_SUBEVENT_CONNECTION_CLOSED                                     0x03u
3937 
3938 /**
3939  * @format 12
3940  * @param subevent_code
3941  * @param hid_cid
3942 */
3943 #define HID_SUBEVENT_CAN_SEND_NOW                                          0x04u
3944 
3945 /**
3946  * @format 12
3947  * @param subevent_code
3948  * @param hid_cid
3949 */
3950 #define HID_SUBEVENT_SUSPEND                                               0x05u
3951 
3952 /**
3953  * @format 12
3954  * @param subevent_code
3955  * @param hid_cid
3956 */
3957 #define HID_SUBEVENT_EXIT_SUSPEND                                          0x06u
3958 
3959 /**
3960  * @format 12
3961  * @param subevent_code
3962  * @param hid_cid
3963 */
3964 #define HID_SUBEVENT_VIRTUAL_CABLE_UNPLUG                                  0x07u
3965 
3966 /**
3967  * @format 121LV
3968  * @param subevent_code
3969  * @param hid_cid
3970  * @param handshake_status
3971  * @param report_len
3972  * @param report
3973 */
3974 #define HID_SUBEVENT_GET_REPORT_RESPONSE                                   0x08u
3975 
3976 /**
3977  * @format 121
3978  * @param subevent_code
3979  * @param hid_cid
3980  * @param handshake_status
3981 */
3982 #define HID_SUBEVENT_SET_REPORT_RESPONSE                                   0x09u
3983 
3984 /**
3985  * @format 1211
3986  * @param subevent_code
3987  * @param hid_cid
3988  * @param handshake_status
3989  * @param protocol_mode
3990 */
3991 #define HID_SUBEVENT_GET_PROTOCOL_RESPONSE                                 0x0Au
3992 
3993 /**
3994  * @format 1211
3995  * @param subevent_code
3996  * @param hid_cid
3997  * @param handshake_status
3998  * @param protocol_mode
3999 */
4000 #define HID_SUBEVENT_SET_PROTOCOL_RESPONSE                                 0x0Bu
4001 
4002 /**
4003  * @format 12LV
4004  * @param subevent_code
4005  * @param hid_cid
4006  * @param report_len
4007  * @param report
4008 */
4009 #define HID_SUBEVENT_REPORT                                                0x0Cu
4010 
4011 /**
4012  * @format 121
4013  * @param subevent_code
4014  * @param hid_cid
4015  * @param status
4016  */
4017 #define HID_SUBEVENT_DESCRIPTOR_AVAILABLE                                  0x0Du
4018 
4019 /**
4020  * @format 1222
4021  * @param subevent_code
4022  * @param hid_cid
4023  * @param host_max_latency
4024  * @param host_min_timeout
4025  */
4026 #define HID_SUBEVENT_SNIFF_SUBRATING_PARAMS                                0x0Eu
4027 
4028 // HIDS Meta Event Group
4029 
4030 /**
4031  * @format 12
4032  * @param subevent_code
4033  * @param con_handle
4034 */
4035 #define HIDS_SUBEVENT_CAN_SEND_NOW                                          0x01u
4036 
4037 /**
4038  * @format 121
4039  * @param subevent_code
4040  * @param con_handle
4041  * @param protocol_mode
4042 */
4043 #define HIDS_SUBEVENT_PROTOCOL_MODE                                         0x02u
4044 
4045 /**
4046  * @format 121
4047  * @param subevent_code
4048  * @param con_handle
4049  * @param enable
4050 */
4051 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE                        0x03u
4052 
4053 /**
4054  * @format 121
4055  * @param subevent_code
4056  * @param con_handle
4057  * @param enable
4058 */
4059 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE                     0x04u
4060 
4061 /**
4062  * @format 1211
4063  * @param subevent_code
4064  * @param con_handle
4065  * @param report_id
4066  * @param enable
4067 */
4068 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE                                   0x05u
4069 
4070 /**
4071  * @format 1211
4072  * @param subevent_code
4073  * @param con_handle
4074  * @param report_id
4075  * @param enable
4076 */
4077 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE                                  0x06u
4078 
4079 /**
4080  * @format 1211
4081  * @param subevent_code
4082  * @param con_handle
4083  * @param report_id
4084  * @param enable
4085 */
4086 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE                                 0x07u
4087 
4088 /**
4089  * @format 12
4090  * @param subevent_code
4091  * @param con_handle
4092 */
4093 #define HIDS_SUBEVENT_SUSPEND                                               0x08u
4094 
4095 /**
4096  * @format 12
4097  * @param subevent_code
4098  * @param con_handle
4099 */
4100 #define HIDS_SUBEVENT_EXIT_SUSPEND                                          0x09u
4101 
4102 /**
4103  * @format 1211JV
4104  * @param subevent_code
4105  * @param con_handle
4106  * @param report_id
4107  * @param report_type
4108  * @param report_length
4109  * @param report_data
4110 */
4111 #define HIDS_SUBEVENT_SET_REPORT                                            0x0au
4112 
4113 /**
4114  * @format 1211
4115  * @param subevent_code
4116  * @param con_handle
4117  * @param measurement_type 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t
4118  * @param is_enhanced
4119 */
4120 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION               0x01u
4121 
4122 /**
4123  * @format 12
4124  * @param subevent_code
4125  * @param con_handle
4126 */
4127 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START                 0x02u
4128 
4129 /**
4130  * @format 12
4131  * @param subevent_code
4132  * @param con_handle
4133 */
4134 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP                  0x03u
4135 
4136 /**
4137  * @format 12111
4138  * @param subevent_code
4139  * @param bas_cid
4140  * @param status
4141  * @param num_instances
4142  * @param poll_bitmap
4143 */
4144 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_CONNECTED                     0x04u
4145 
4146 /**
4147  * @format 12111
4148  * @param subevent_code
4149  * @param bas_cid
4150  * @param service_index
4151  * @param att_status  see ATT errors in bluetooth.h
4152  * @param level
4153 */
4154 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL                         0x05u
4155 
4156 /**
4157  * @format 12
4158  * @param subevent_code
4159  * @param service_id
4160 */
4161 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL_BROADCAST_START           0x06u
4162 
4163 /**
4164  * @format 12
4165  * @param subevent_code
4166  * @param service_id
4167 */
4168 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL_BROADCAST_STOP            0x07u
4169 
4170 /**
4171  * @format 1H1
4172  * @param subevent_code
4173  * @param con_handle
4174  * @param att_status
4175  */
4176 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_DONE                       0x08u
4177 
4178 /**
4179  * @format 1H1T
4180  * @param subevent_code
4181  * @param con_handle
4182  * @param att_status
4183  * @param value
4184  */
4185 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MANUFACTURER_NAME          0x09u
4186 
4187 /**
4188  * @format 1H1T
4189  * @param subevent_code
4190  * @param con_handle
4191  * @param att_status
4192  * @param value
4193  */
4194 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MODEL_NUMBER               0x0Au
4195 
4196 /**
4197  * @format 1H1T
4198  * @param subevent_code
4199  * @param con_handle
4200  * @param att_status
4201  * @param value
4202  */
4203 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SERIAL_NUMBER              0x0Bu
4204 
4205 /**
4206  * @format 1H1T
4207  * @param subevent_code
4208  * @param con_handle
4209  * @param att_status
4210  * @param value
4211  */
4212 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_HARDWARE_REVISION          0x0Cu
4213 
4214 /**
4215  * @format 1H1T
4216  * @param subevent_code
4217  * @param con_handle
4218  * @param att_status
4219  * @param value
4220  */
4221 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_FIRMWARE_REVISION          0x0Du
4222 
4223 /**
4224  * @format 1H1T
4225  * @param subevent_code
4226  * @param con_handle
4227  * @param att_status
4228  * @param value
4229  */
4230 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SOFTWARE_REVISION          0x0Eu
4231 
4232 /**
4233  * @format 1H1413
4234  * @param subevent_code
4235  * @param con_handle
4236  * @param att_status
4237  * @param manufacturer_id_low
4238  * @param manufacturer_id_high
4239  * @param organizationally_unique_id
4240  */
4241 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SYSTEM_ID                  0x0Fu
4242 
4243 /**
4244  * @format 1H122
4245  * @param subevent_code
4246  * @param con_handle
4247  * @param att_status
4248  * @param value_a
4249  * @param value_b
4250  */
4251 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_IEEE_REGULATORY_CERTIFICATION     0x10u
4252 
4253 /**
4254  * @format 1H11222
4255  * @param subevent_code
4256  * @param con_handle
4257  * @param att_status
4258  * @param vendor_source_id
4259  * @param vendor_id
4260  * @param product_id
4261  * @param product_version
4262  */
4263 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_PNP_ID                    0x11u
4264 
4265 /**
4266  * @format 1H1TTTT
4267  * @param subevent_code
4268  * @param con_handle
4269  * @param att_status
4270  * @param label
4271  * @param device_id
4272  * @param issuer
4273  * @param authority
4274  */
4275 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_UDI_FOR_MEDICAL_DEVICES   0x12u
4276 
4277 /**
4278  * @format 1H1
4279  * @param subevent_code
4280  * @param con_handle
4281  * @param status
4282  */
4283 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_CONNECTED            0x13u
4284 
4285 /**
4286  * @format 1H
4287  * @param subevent_code
4288  * @param con_handle
4289  */
4290 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_DISCONNECTED         0x14u
4291 
4292 /**
4293  * @format 1H
4294  * @param subevent_code
4295  * @param con_handle
4296  */
4297 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED                        0x15u
4298 
4299 /**
4300  * @format 1H
4301  * @param subevent_code
4302  * @param con_handle
4303  */
4304 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_DISCONNECTED                     0x16u
4305 
4306 /**
4307  * @format 12111
4308  * @param subevent_code
4309  * @param hids_cid
4310  * @param status
4311  * @param protocol_mode
4312  * @param num_instances
4313 */
4314 #define GATTSERVICE_SUBEVENT_HID_SERVICE_CONNECTED                        0x17u
4315 
4316 /**
4317  * @format 12
4318  * @param subevent_code
4319  * @param hids_cid
4320 */
4321 #define GATTSERVICE_SUBEVENT_HID_SERVICE_DISCONNECTED                     0x18u
4322 
4323 /**
4324  * @format 1211LV
4325  * @param subevent_code
4326  * @param hids_cid
4327  * @param service_index
4328  * @param report_id
4329  * @param report_len
4330  * @param report
4331 */
4332 #define GATTSERVICE_SUBEVENT_HID_REPORT                                   0x19u
4333 
4334 /**
4335  * @format 1212111
4336  * @param subevent_code
4337  * @param hids_cid
4338  * @param service_index
4339  * @param base_usb_hid_version      Version number of base USB HID Specification implemented by HID Device
4340  * @param country_code              Country HID Device hardware is localized for (not localized: 0x00)
4341  * @param remote_wake               Indicates whether HID Device is capable of sending a wake-signal to a HID Host
4342  * @param normally_connectable      Indicates whether HID Device will be advertising when bonded but not connected.
4343 */
4344 #define GATTSERVICE_SUBEVENT_HID_INFORMATION                              0x1Au
4345 
4346 /**
4347  * @format 1211
4348  * @param subevent_code
4349  * @param hids_cid
4350  * @param service_index
4351  * @param protocol_mode    see hid_protocol_mode_t in btstack_hid.h
4352 */
4353 #define GATTSERVICE_SUBEVENT_HID_PROTOCOL_MODE                            0x1Bu
4354 
4355 /**
4356  * @format 121
4357  * @param subevent_code
4358  * @param hids_cid
4359  * @param configuration
4360 */
4361 #define GATTSERVICE_SUBEVENT_HID_SERVICE_REPORTS_NOTIFICATION             0x1Cu
4362 
4363 /**
4364  * @format 1211
4365  * @param subevent_code
4366  * @param hids_cid
4367  * @param service_index
4368  * @param report_id
4369 */
4370 #define GATTSERVICE_SUBEVENT_HID_REPORT_WRITTEN                           0x1Du
4371 
4372 /**
4373  * @format 1H22
4374  * @param subevent_code
4375  * @param con_handle
4376  * @param max_scan_interval
4377  * @param min_scan_window
4378  */
4379 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_SCAN_INTERVAL_UPDATE 0x1Eu
4380 
4381 /**
4382  * @format 1H22
4383  * @param subevent_code
4384  * @param con_handle
4385  * @param attribute_handle_start
4386  * @param attribute_handle_end
4387  */
4388 #define GATTSERVICE_SUBEVENT_GATT_SERVICE_CHANGED                          0x1Fu
4389 
4390 /**
4391  * @format 1HK
4392  * @param subevent_code
4393  * @param con_handle
4394  * @param database_hash
4395  */
4396 #define GATTSERVICE_SUBEVENT_GATT_DATABASE_HASH                            0x20u
4397 
4398 /**
4399  * @format 1H211
4400  * @param subevent_code
4401  * @param con_handle
4402  * @param cid
4403  * @param num_included_services
4404  * @param status
4405 */
4406 #define GATTSERVICE_SUBEVENT_CLIENT_CONNECTED                              0x21u
4407 
4408 /**
4409  * @format 1H2
4410  * @param subevent_code
4411  * @param con_handle
4412  * @param cid
4413 */
4414 #define GATTSERVICE_SUBEVENT_CLIENT_DISCONNECTED                           0x22u
4415 
4416 /**
4417  * @format 1H21
4418  * @param subevent_code
4419  * @param con_handle
4420  * @param lls_cid
4421  * @param status
4422 */
4423 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_CONNECTED                          0x23u
4424 
4425 /**
4426  * @format 12
4427  * @param subevent_code
4428  * @param lls_cid
4429 */
4430 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_DISCONNECTED                       0x24u
4431 
4432 /**
4433  * @format 1221
4434  * @param subevent_code
4435  * @param lls_cid
4436  * @param characteristic_uuid
4437  * @param att_status
4438  */
4439 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_WRITE_DONE                         0x25u
4440 
4441 /**
4442  * @format 12
4443  * @param subevent_code
4444  * @param lls_cid
4445  */
4446 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_START_ALERTING                     0x26u
4447 
4448 /**
4449  * @format 121
4450  * @param subevent_code
4451  * @param lls_cid
4452  * @param timeout
4453  */
4454 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_STOP_ALERTING                      0x27u
4455 
4456 /**
4457  * @format 121
4458  * @param subevent_code
4459  * @param lls_cid
4460  * @param value
4461  */
4462 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_ALERT_LEVEL                        0x28u
4463 
4464 /**
4465  * @format 1H21
4466  * @param subevent_code
4467  * @param con_handle
4468  * @param ias_cid
4469  * @param status
4470 */
4471 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_CONNECTED                          0x29u
4472 
4473 /**
4474  * @format 12
4475  * @param subevent_code
4476  * @param ias_cid
4477 */
4478 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_DISCONNECTED                       0x2Au
4479 
4480 /**
4481  * @format 12
4482  * @param subevent_code
4483  * @param ias_cid
4484  */
4485 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_START_ALERTING                     0x2Bu
4486 
4487 /**
4488  * @format 121
4489  * @param subevent_code
4490  * @param ias_cid
4491  * @param timeout
4492  */
4493 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_STOP_ALERTING                      0x2Cu
4494 
4495 /**
4496  * @format 1H21
4497  * @param subevent_code
4498  * @param con_handle
4499  * @param tpxs_cid
4500  * @param status
4501 */
4502 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_CONNECTED                         0x2Du
4503 
4504 /**
4505  * @format 12
4506  * @param subevent_code
4507  * @param tpxs_cid
4508 */
4509 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_DISCONNECTED                      0x2Eu
4510 
4511 /**
4512  * @format 121
4513  * @param subevent_code
4514  * @param tpxs_cid
4515  * @param value
4516  */
4517 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_TX_POWER_LEVEL                    0x2Fu
4518 
4519 /**
4520  * @format 11
4521  * @param subevent_code
4522  * @param alert_level
4523  */
4524 #define GATTSERVICE_SUBEVENT_LLS_SERVER_START_ALERTING                     0x30u
4525 
4526 /**
4527  * @format 111
4528  * @param subevent_code
4529  * @param alert_level
4530  * @param timeout
4531  */
4532 #define GATTSERVICE_SUBEVENT_LLS_SERVER_STOP_ALERTING                      0x31u
4533 
4534 /**
4535  * @format 11
4536  * @param subevent_code
4537  * @param alert_level
4538  */
4539 #define GATTSERVICE_SUBEVENT_IAS_SERVER_START_ALERTING                     0x32u
4540 
4541 /**
4542  * @format 111
4543  * @param subevent_code
4544  * @param alert_level
4545  * @param timeout
4546  */
4547 #define GATTSERVICE_SUBEVENT_IAS_SERVER_STOP_ALERTING                      0x33u
4548 
4549 
4550 
4551 // LE Audio
4552 
4553 /**
4554  * @format 1H1
4555  * @param subevent_code
4556  * @param con_handle
4557  * @param status
4558 */
4559 #define LEAUDIO_SUBEVENT_BASS_SERVER_CONNECTED                              0x01u
4560 
4561 /**
4562  * @format 1H
4563  * @param subevent_code
4564  * @param con_handle
4565 */
4566 #define LEAUDIO_SUBEVENT_BASS_SERVER_DISCONNECTED                           0x02u
4567 
4568 /**
4569  * @format 1H
4570  * @param subevent_code
4571  * @param con_handle
4572 */
4573 #define LEAUDIO_SUBEVENT_BASS_SERVER_SCAN_STOPPED                         0x03u
4574 
4575 /**
4576  * @format 1H
4577  * @param subevent_code
4578  * @param con_handle
4579 */
4580 #define LEAUDIO_SUBEVENT_BASS_SERVER_SCAN_STARTED                          0x04u
4581 
4582 /**
4583  * @format 1H1K
4584  * @param subevent_code
4585  * @param con_handle
4586  * @param source_id
4587  * @param broadcast_code
4588 */
4589 #define LEAUDIO_SUBEVENT_BASS_SERVER_BROADCAST_CODE                         0x05u
4590 
4591 /**
4592  * @format 1H11
4593  * @param subevent_code
4594  * @param con_handle
4595  * @param source_id
4596  * @param pa_sync
4597  */
4598 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_ADDED                            0x06u
4599 
4600 /**
4601  * @format 1H11
4602  * @param subevent_code
4603  * @param con_handle
4604  * @param source_id
4605  * @param pa_sync
4606  */
4607 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_MODIFIED                         0x07u
4608 
4609 /**
4610  * @format 1H11
4611  * @param subevent_code
4612  * @param con_handle
4613  * @param source_id
4614  * @param pa_sync
4615  */
4616 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_DELETED                          0x08u
4617 
4618 /**
4619  * @format 1H21
4620  * @param subevent_code
4621  * @param con_handle
4622  * @param bass_cid
4623  * @param status
4624 */
4625 #define LEAUDIO_SUBEVENT_BASS_CLIENT_CONNECTED                                0x09u
4626 
4627 /**
4628  * @format 12
4629  * @param subevent_code
4630  * @param bass_cid
4631 */
4632 #define LEAUDIO_SUBEVENT_BASS_CLIENT_DISCONNECTED                             0x0Au
4633 
4634 /**
4635  * @format 1211
4636  * @param subevent_code
4637  * @param bass_cid
4638  * @param status
4639  * @param opcode
4640 */
4641 #define LEAUDIO_SUBEVENT_BASS_CLIENT_SCAN_OPERATION_COMPLETE                   0x0Bu
4642 
4643 /**
4644  * @format 1211B1311P1
4645  * @param subevent_code
4646  * @param bass_cid
4647  * @param source_id
4648  * @param source_address_type
4649  * @param source_address
4650  * @param source_adv_sid
4651  * @param broadcast_id
4652  * @param pa_sync_state
4653  * @param big_encryption
4654  * @param bad_code
4655  * @param subgroups_num
4656 */
4657 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFY_RECEIVE_STATE_BASE                  0x0Cu
4658 
4659 /**
4660  * @format 1214122JV3JV1JV2JV2JV
4661  * @param subevent_code
4662  * @param bass_cid
4663  * @param source_id
4664  * @param bis_sync_state
4665  * @param metadata_mask
4666  * @param preferred_audio_contexts_mask
4667  * @param streaming_audio_contexts_mask
4668  * @param program_info_length
4669  * @param program_info
4670  * @param language_code
4671  * @param ccids_num
4672  * @param ccids
4673  * @param parental_rating
4674  * @param program_info_uri_length
4675  * @param program_info_uri
4676  * @param extended_metadata_type
4677  * @param extended_metadata_value_length
4678  * @param extended_metadata_value
4679  * @param vendor_specific_metadata_type
4680  * @param vendor_specific_metadata_value_length
4681  * @param vendor_specific_metadata_value
4682 */
4683 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFY_RECEIVE_STATE_SUBGROUP                 0x0Du
4684 
4685 /**
4686  * @format 121
4687  * @param subevent_code
4688  * @param bass_cid
4689  * @param source_id
4690 */
4691 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFICATION_COMPLETE                         0x0Eu
4692 
4693 /**
4694  * @format 12111
4695  * @param subevent_code
4696  * @param bass_cid
4697  * @param status
4698  * @param opcode
4699  * @param source_id
4700 */
4701 #define LEAUDIO_SUBEVENT_BASS_CLIENT_SOURCE_OPERATION_COMPLETE                     0x0Fu
4702 
4703 
4704 // MESH Meta Event Group
4705 
4706 /**
4707  * @format 1
4708  * @param subevent_code
4709  */
4710 #define MESH_SUBEVENT_CAN_SEND_NOW                                          0x01u
4711 
4712 /**
4713  * @format 11
4714  * @param subevent_code
4715  * @param status
4716  */
4717 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT                                          0x02u
4718 
4719 /**
4720  * @format 1121
4721  * @param subevent_code
4722  * @param status
4723  * @param pb_transport_cid
4724  * @param pb_type
4725  */
4726 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN                                         0x03u
4727 
4728 /**
4729  * @format 112
4730  * @param subevent_code
4731  * @param pb_transport_cid
4732  * @param reason
4733  */
4734 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED                                       0x04u
4735 
4736 /**
4737  * @format 121
4738  * @param subevent_code
4739  * @param pb_transport_cid
4740  * @param attention_time in seconds
4741  */
4742 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER                                        0x10u
4743 
4744 /**
4745  * Device Role
4746  * @format 12
4747  * @param subevent_code
4748  * @param pb_transport_cid
4749  */
4750 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB                              0x11u
4751 
4752 /**
4753  * Device Role
4754  * @format 12
4755  * @param subevent_code
4756  * @param pb_transport_cid
4757  */
4758 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB                               0x12u
4759 
4760 /**
4761  * Device Role
4762  * @format 12
4763  * @param subevent_code
4764  * @param pb_transport_cid
4765  */
4766 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST                                      0x13u
4767 
4768 /**
4769  * Device Role
4770  * @format 124
4771  * @param subevent_code
4772  * @param pb_transport_cid
4773  * @param output_oob number
4774  */
4775 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB                                  0x15u
4776 
4777 /**
4778  * Device Role
4779  * @format 12
4780  * @param subevent_code
4781  * @param pb_transport_cid
4782  */
4783 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB                                   0x16u
4784 
4785 /**
4786  * Provisioner Role
4787  * @format 12
4788  * @param subevent_code
4789  * @param pb_transport_cid
4790  */
4791 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB                           0x17u
4792 
4793 /**
4794  * Provisioner Role
4795  * @format 12
4796  * @param subevent_code
4797  * @param pb_transport_cid
4798  */
4799 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB                            0x18u
4800 
4801 /**
4802  * Provisioner Role
4803  * @format 12
4804  * @param subevent_code
4805  * @param pb_transport_cid
4806  */
4807 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST                                     0x19u
4808 
4809 /**
4810  * Provisioner Role
4811  * @format 124
4812  * @param subevent_code
4813  * @param pb_transport_cid
4814  * @param output_oob number
4815  */
4816 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB                                   0x1au
4817 
4818 /**
4819  * Provisioner Role
4820  * @format 12
4821  * @param subevent_code
4822  * @param pb_transport_cid
4823  */
4824 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB                                    0x1bu
4825 
4826 /**
4827  * Provisioner Role
4828  * @format 1212111212
4829  * @param subevent_code
4830  * @param pb_transport_cid
4831  * @param num_elements
4832  * @param algorithms
4833  * @param public_key
4834  * @param static_oob_type
4835  * @param output_oob_size
4836  * @param output_oob_action
4837  * @param input_oob_size
4838  * @param input_oob_action
4839  */
4840 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES                                           0x1cu
4841 
4842 /**
4843  * @format 12
4844  * @param subevent_code
4845  * @param pb_transport_cid
4846  */
4847 #define MESH_SUBEVENT_PB_PROV_COMPLETE                                               0x1du
4848 
4849 /**
4850  * @format 11
4851  * @param subevent_code
4852  * @param attention_time in seconds
4853  */
4854 #define MESH_SUBEVENT_ATTENTION_TIMER                                                0x1eu
4855 
4856 /**
4857  * @format 1H
4858  * @param subevent_code
4859  * @param con_handle
4860  */
4861 #define MESH_SUBEVENT_PROXY_CONNECTED                                                0x20u
4862 
4863 /**
4864  * @format 1H
4865  * @param subevent_code
4866  * @param con_handle
4867  */
4868 #define MESH_SUBEVENT_PROXY_PDU_SENT                                                 0x21u
4869 
4870 /**
4871  * @format 1H
4872  * @param subevent_code
4873  * @param con_handle
4874  */
4875 #define MESH_SUBEVENT_PROXY_DISCONNECTED                                             0x22u
4876 
4877 /**
4878  * @format 1H
4879  * @param subevent_code
4880  * @param con_handle
4881  */
4882 #define MESH_SUBEVENT_MESSAGE_SENT                                                   0x23u
4883 
4884 /**
4885  * @format 114411
4886  * @param subevent_code
4887  * @param element_index
4888  * @param model_identifier
4889  * @param state_identifier
4890  * @param reason
4891  * @param value
4892  */
4893 #define MESH_SUBEVENT_STATE_UPDATE_BOOL                                              0x24u
4894 
4895 /**
4896  * @format 114412
4897  * @param subevent_code
4898  * @param element_index
4899  * @param model_identifier
4900  * @param state_identifier
4901  * @param reason
4902  * @param value
4903  */
4904 #define MESH_SUBEVENT_STATE_UPDATE_INT16                                              0x25u
4905 
4906 // Mesh Client Events
4907 /**
4908  * @format 11442
4909  * @param subevent_code
4910  * @param element_index
4911  * @param model_identifier
4912  * @param opcode
4913  * @param dest
4914  */
4915 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED                                        0x30u
4916 
4917 /**
4918  * @format 121114
4919  * @param subevent_code
4920  * @param dest
4921  * @param status
4922  * @param present_value
4923  * @param target_value       optional, if value > 0, than remaining_time_ms must be read
4924  * @param remaining_time_ms
4925  */
4926 #define MESH_SUBEVENT_GENERIC_ON_OFF                                                  0x31u
4927 
4928 /**
4929  * @format 121224
4930  * @param subevent_code
4931  * @param dest
4932  * @param status
4933  * @param present_value
4934  * @param target_value       optional, if value > 0, than remaining_time_ms must be read
4935  * @param remaining_time_ms
4936  */
4937 #define MESH_SUBEVENT_GENERIC_LEVEL                                                   0x32u
4938 
4939 /**
4940  * @format 1222211
4941  * @param subevent_code
4942  * @param dest
4943  * @param netkey_index
4944  * @param appkey_index
4945  * @param company_id
4946  * @param test_id
4947  * @param acknowledged
4948  */
4949 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST                                            0x33u
4950 
4951 /**
4952  * @format 11
4953  * @param subevent_code
4954  * @param element_index
4955  */
4956 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED                                 0x34u
4957 
4958 /**
4959  * @format 1211
4960  * @param subevent_code
4961  * @param dest
4962  * @param status
4963  * @param transition_time_gdtt
4964  */
4965 #define MESH_SUBEVENT_GENERIC_DEFAULT_TRANSITION_TIME                                0x35u
4966 
4967 /**
4968  * @format 1211
4969  * @param subevent_code
4970  * @param dest
4971  * @param foundation_status
4972  * @param secure_network_beacon_state
4973  */
4974 #define MESH_SUBEVENT_CONFIGURATION_BEACON                                           0x36u
4975 
4976 // Composition Data has variable of element descriptions, with two lists of model lists
4977 // Use .. getters to access data
4978 #define MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA                                 0x37u
4979 
4980 /**
4981  * @format 1211
4982  * @param subevent_code
4983  * @param dest
4984  * @param foundation_status
4985  * @param default_ttl
4986  */
4987 #define MESH_SUBEVENT_CONFIGURATION_DEFAULT_TTL                                      0x38u
4988 
4989 /**
4990  * @format 1211
4991  * @param subevent_code
4992  * @param dest
4993  * @param foundation_status
4994  * @param gatt_proxy_state
4995  */
4996 #define MESH_SUBEVENT_CONFIGURATION_GATT_PROXY                                       0x39u
4997 
4998 /**
4999  * @format 121111
5000  * @param subevent_code
5001  * @param dest
5002  * @param foundation_status
5003  * @param relay
5004  * @param retransmit_count                          the number of times that packet is transmitted for each packet that is relayed.
5005  * @param retransmit_interval_ms                    retransmission interval in ms
5006  */
5007 #define MESH_SUBEVENT_CONFIGURATION_RELAY                                            0x40u
5008 
5009 
5010 /**
5011  * @format 12122111114
5012  * @param subevent_code
5013  * @param dest                                      element_address
5014  * @param foundation_status
5015  * @param publish_address
5016  * @param appkey_index
5017  * @param credential_flag
5018  * @param publish_ttl
5019  * @param publish_period
5020  * @param publish_retransmit_count
5021  * @param publish_retransmit_interval_steps
5022  * @param model_identifier
5023  */
5024 #define MESH_SUBEVENT_CONFIGURATION_MODEL_PUBLICATION                                0x41u
5025 
5026 /**
5027  * @format 12124
5028  * @param subevent_code
5029  * @param dest
5030  * @param foundation_status
5031  * @param address
5032  * @param model_identifier
5033  */
5034 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION                               0x42u
5035 
5036 /**
5037  * @format 1214112
5038  * @param subevent_code
5039  * @param dest
5040  * @param foundation_status
5041  * @param model_identifier
5042  * @param num_subscription_addresses
5043  * @param subscription_address_pos
5044  * @param subscription_address_item
5045  */
5046 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION_LIST_ITEM                     0x43u
5047 
5048 
5049 /**
5050  * @format 121
5051  * @param subevent_code
5052  * @param dest
5053  * @param foundation_status
5054  */
5055 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX                                      0x44u
5056 
5057 /**
5058  * @format 121112
5059  * @param subevent_code
5060  * @param dest
5061  * @param foundation_status
5062  * @param num_netkey_indexes
5063  * @param netkey_index_pos
5064  * @param netkey_index_item
5065  */
5066 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX_LIST_ITEM                             0x45u
5067 
5068 /**
5069  * @format 12122
5070  * @param subevent_code
5071  * @param dest
5072  * @param foundation_status
5073  * @param netkey_index_item
5074  * @param appkey_index_item
5075  */
5076 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX                                       0x46u
5077 
5078 /**
5079  * @format 12121122
5080  * @param subevent_code
5081  * @param dest
5082  * @param foundation_status
5083  * @param netkey_index
5084  * @param num_appkey_indexes
5085  * @param appkey_index_pos
5086  * @param netkey_index_item
5087  * @param appkey_index_item
5088  */
5089  #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX_LIST_ITEM                            0x47u
5090 
5091 /**
5092  * @format 12121
5093  * @param subevent_code
5094  * @param dest
5095  * @param foundation_status
5096  * @param netkey_index_item
5097  * @param identity_status
5098  */
5099 #define MESH_SUBEVENT_CONFIGURATION_NODE_IDENTITY                                      0x48u
5100 
5101 /**
5102  * @format 12124
5103  * @param subevent_code
5104  * @param dest
5105  * @param foundation_status
5106  * @param appkey_index
5107  * @param model_identifier
5108  */
5109 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP                                           0x49u
5110 
5111 /**
5112  * @format 1214112
5113  * @param subevent_code
5114  * @param dest
5115  * @param foundation_status
5116  * @param model_id
5117  * @param num_appkey_indexes
5118  * @param appkey_index_pos
5119  * @param appkey_index_item
5120  */
5121 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP_LIST_ITEM                                 0x50u
5122 
5123 /**
5124  * @format 121
5125  * @param subevent_code
5126  * @param dest
5127  * @param foundation_status
5128  */
5129 #define MESH_SUBEVENT_CONFIGURATION_NODE_RESET                                          0x51u
5130 
5131 /**
5132  * @format 1211
5133  * @param subevent_code
5134  * @param dest
5135  * @param foundation_status
5136  * @param friend_state
5137  */
5138 #define MESH_SUBEVENT_CONFIGURATION_FRIEND                                              0x52u
5139 
5140 /**
5141  * @format 12121
5142  * @param subevent_code
5143  * @param dest
5144  * @param foundation_status
5145  * @param netkey_index
5146  * @param phase
5147  */
5148 #define MESH_SUBEVENT_CONFIGURATION_KEY_REFRESH_PHASE                                   0x53u
5149 
5150 /**
5151  * @format 121222122
5152  * @param subevent_code
5153  * @param dest
5154  * @param foundation_status
5155  * @param heartbeat_destination
5156  * @param count_S
5157  * @param period_S
5158  * @param ttl
5159  * @param features
5160  * @param netkey_index
5161  */
5162 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_PUBLICATION                               0x54u
5163 
5164 /**
5165  * @format 121222211
5166  * @param subevent_code
5167  * @param dest
5168  * @param foundation_status
5169  * @param heartbeat_destination
5170  * @param heartbeat_source
5171  * @param count_S
5172  * @param period_S
5173  * @param min_hops
5174  * @param max_hops
5175  */
5176 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_SUBSCRIPTION                              0x55u
5177 
5178 /**
5179  * @format 12123
5180  * @param subevent_code
5181  * @param dest
5182  * @param foundation_status
5183  * @param lpn_address
5184  * @param poll_timeout
5185  */
5186 #define MESH_SUBEVENT_CONFIGURATION_LOW_POWER_NODE_POLL_TIMEOUT                         0x56u
5187 
5188 /**
5189  * @format 12112
5190  * @param subevent_code
5191  * @param dest
5192  * @param foundation_status
5193  * @param transmit_count
5194  * @param transmit_interval_steps_ms
5195  */
5196 #define MESH_SUBEVENT_CONFIGURATION_NETWORK_TRANSMIT                                    0x57u
5197 
5198 
5199 #endif
5200