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