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