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