xref: /btstack/src/btstack_defines.h (revision 3c4cc6427fe05577c00b7d2593f58c7abcf9eab7)
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 MATTHIAS
24  * RINGWALD 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  * btstack-defines.h
40  *
41  * BTstack definitions, events, and error codes */
42 
43 #ifndef BTSTACK_DEFINES_H
44 #define BTSTACK_DEFINES_H
45 
46 #include <stdint.h>
47 #include "btstack_linked_list.h"
48 
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 0xffff
82 
83 
84 #define DAEMON_EVENT_PACKET     0x05
85 
86 // L2CAP data
87 #define L2CAP_DATA_PACKET       0x06
88 
89 // RFCOMM data
90 #define RFCOMM_DATA_PACKET      0x07
91 
92 // Attribute protocol data
93 #define ATT_DATA_PACKET         0x08
94 
95 // Security Manager protocol data
96 #define SM_DATA_PACKET          0x09
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       0x0a
101 
102 // BNEP data
103 #define BNEP_DATA_PACKET        0x0b
104 
105 // Unicast Connectionless Data
106 #define UCD_DATA_PACKET         0x0c
107 
108 // GOEP data
109 #define GOEP_DATA_PACKET        0x0d
110 
111 // PBAP data
112 #define PBAP_DATA_PACKET        0x0e
113 
114 // AVRCP browsing data
115 #define AVRCP_BROWSING_DATA_PACKET     0x0f
116 
117 // MAP data
118 #define MAP_DATA_PACKET        0x10
119 
120 // Mesh Provisioning PDU
121 #define PROVISIONING_DATA_PACKET 0x11
122 
123 // Mesh Proxy PDU
124 #define MESH_PROXY_DATA_PACKET   0x11
125 
126 // Mesh Network PDU
127 #define MESH_NETWORK_PACKET      0x12
128 
129 // Mesh Network PDU
130 #define MESH_BEACON_PACKET       0x13
131 
132 // debug log messages
133 #define LOG_MESSAGE_PACKET      0xfc
134 
135 
136 // ERRORS
137 // last error code in 2.1 is 0x38 - we start with 0x50 for BTstack errors
138 
139 /* ENUM_START: BTSTACK_ERROR_CODE */
140 #define BTSTACK_CONNECTION_TO_BTDAEMON_FAILED              0x50
141 #define BTSTACK_ACTIVATION_FAILED_SYSTEM_BLUETOOTH         0x51
142 #define BTSTACK_ACTIVATION_POWERON_FAILED                  0x52
143 #define BTSTACK_ACTIVATION_FAILED_UNKNOWN                  0x53
144 #define BTSTACK_NOT_ACTIVATED                              0x54
145 #define BTSTACK_BUSY                                       0x55
146 #define BTSTACK_MEMORY_ALLOC_FAILED                        0x56
147 #define BTSTACK_ACL_BUFFERS_FULL                           0x57
148 
149 // l2cap errors - enumeration by the command that created them
150 #define L2CAP_COMMAND_REJECT_REASON_COMMAND_NOT_UNDERSTOOD 0x60
151 #define L2CAP_COMMAND_REJECT_REASON_SIGNALING_MTU_EXCEEDED 0x61
152 #define L2CAP_COMMAND_REJECT_REASON_INVALID_CID_IN_REQUEST 0x62
153 
154 #define L2CAP_CONNECTION_RESPONSE_RESULT_SUCCESSFUL        0x63
155 #define L2CAP_CONNECTION_RESPONSE_RESULT_PENDING           0x64
156 #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_PSM       0x65
157 #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_SECURITY  0x66
158 #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_RESOURCES 0x67
159 #define L2CAP_CONNECTION_RESPONSE_RESULT_ERTM_NOT_SUPPORTED 0x68
160 // should be L2CAP_CONNECTION_RTX_TIMEOUT
161 #define L2CAP_CONNECTION_RESPONSE_RESULT_RTX_TIMEOUT       0x69
162 #define L2CAP_CONNECTION_BASEBAND_DISCONNECT               0x6A
163 #define L2CAP_SERVICE_ALREADY_REGISTERED                   0x6B
164 #define L2CAP_DATA_LEN_EXCEEDS_REMOTE_MTU                  0x6C
165 #define L2CAP_SERVICE_DOES_NOT_EXIST                       0x6D
166 #define L2CAP_LOCAL_CID_DOES_NOT_EXIST                     0x6E
167 
168 #define RFCOMM_MULTIPLEXER_STOPPED                         0x70
169 #define RFCOMM_CHANNEL_ALREADY_REGISTERED                  0x71
170 #define RFCOMM_NO_OUTGOING_CREDITS                         0x72
171 #define RFCOMM_AGGREGATE_FLOW_OFF                          0x73
172 #define RFCOMM_DATA_LEN_EXCEEDS_MTU                        0x74
173 
174 #define SDP_HANDLE_ALREADY_REGISTERED                      0x80
175 #define SDP_QUERY_INCOMPLETE                               0x81
176 #define SDP_SERVICE_NOT_FOUND                              0x82
177 #define SDP_HANDLE_INVALID                                 0x83
178 #define SDP_QUERY_BUSY                                     0x84
179 
180 #define ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS            0x90
181 #define ATT_HANDLE_VALUE_INDICATION_TIMEOUT                0x91
182 #define ATT_HANDLE_VALUE_INDICATION_DISCONNECT             0x92
183 
184 #define GATT_CLIENT_NOT_CONNECTED                          0x93
185 #define GATT_CLIENT_BUSY                                   0x94
186 #define GATT_CLIENT_IN_WRONG_STATE                         0x95
187 #define GATT_CLIENT_DIFFERENT_CONTEXT_FOR_ADDRESS_ALREADY_EXISTS 0x96
188 #define GATT_CLIENT_VALUE_TOO_LONG                         0x97
189 #define GATT_CLIENT_CHARACTERISTIC_NOTIFICATION_NOT_SUPPORTED 0x98
190 #define GATT_CLIENT_CHARACTERISTIC_INDICATION_NOT_SUPPORTED   0x99
191 
192 #define BNEP_SERVICE_ALREADY_REGISTERED                    0xA0
193 #define BNEP_CHANNEL_NOT_CONNECTED                         0xA1
194 #define BNEP_DATA_LEN_EXCEEDS_MTU                          0xA2
195 
196 // OBEX ERRORS
197 #define OBEX_UNKNOWN_ERROR                                 0xB0
198 #define OBEX_CONNECT_FAILED                                0xB1
199 #define OBEX_DISCONNECTED                                  0xB2
200 #define OBEX_NOT_FOUND                                     0xB3
201 #define OBEX_NOT_ACCEPTABLE                                0xB4
202 
203 #define AVDTP_SEID_DOES_NOT_EXIST                          0xC0
204 #define AVDTP_CONNECTION_DOES_NOT_EXIST                    0xC1
205 #define AVDTP_CONNECTION_IN_WRONG_STATE                    0xC2
206 #define AVDTP_STREAM_ENDPOINT_IN_WRONG_STATE               0xC3
207 #define AVDTP_STREAM_ENDPOINT_DOES_NOT_EXIST               0xC4
208 #define AVDTP_MEDIA_CONNECTION_DOES_NOT_EXIST              0xC5
209 
210 #define MESH_ERROR_APPKEY_INDEX_INVALID                    0xD0
211 /* ENUM_END */
212 
213 // DAEMON COMMANDS
214 
215 #define OGF_BTSTACK 0x3d
216 
217 // cmds for BTstack
218 // get state: @returns HCI_STATE
219 #define BTSTACK_GET_STATE                                  0x01
220 
221 // set power mode: param HCI_POWER_MODE
222 #define BTSTACK_SET_POWER_MODE                             0x02
223 
224 // set capture mode: param on
225 #define BTSTACK_SET_ACL_CAPTURE_MODE                       0x03
226 
227 // get BTstack version
228 #define BTSTACK_GET_VERSION                                0x04
229 
230 // get system Bluetooth state
231 #define BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED               0x05
232 
233 // set system Bluetooth state
234 #define BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED               0x06
235 
236 // enable inquiry scan for this client
237 #define BTSTACK_SET_DISCOVERABLE                           0x07
238 
239 // set global Bluetooth state
240 #define BTSTACK_SET_BLUETOOTH_ENABLED                      0x08
241 
242 // create l2cap channel: param bd_addr(48), psm (16)
243 #define L2CAP_CREATE_CHANNEL                               0x20
244 
245 // disconnect l2cap disconnect, param channel(16), reason(8)
246 #define L2CAP_DISCONNECT                                   0x21
247 
248 // register l2cap service: param psm(16), mtu (16)
249 #define L2CAP_REGISTER_SERVICE                             0x22
250 
251 // unregister l2cap disconnect, param psm(16)
252 #define L2CAP_UNREGISTER_SERVICE                           0x23
253 
254 // accept connection param bd_addr(48), dest cid (16)
255 #define L2CAP_ACCEPT_CONNECTION                            0x24
256 
257 // decline l2cap disconnect,param bd_addr(48), dest cid (16), reason(8)
258 #define L2CAP_DECLINE_CONNECTION                           0x25
259 
260 // create l2cap channel: param bd_addr(48), psm (16), mtu (16)
261 #define L2CAP_CREATE_CHANNEL_MTU                           0x26
262 
263 // register SDP Service Record: service record (size)
264 #define SDP_REGISTER_SERVICE_RECORD                        0x30
265 
266 // unregister SDP Service Record
267 #define SDP_UNREGISTER_SERVICE_RECORD                      0x31
268 
269 // Get remote RFCOMM services
270 #define SDP_CLIENT_QUERY_RFCOMM_SERVICES                   0x32
271 
272 // Get remote SDP services
273 #define SDP_CLIENT_QUERY_SERVICES                          0x33
274 
275 // RFCOMM "HCI" Commands
276 #define RFCOMM_CREATE_CHANNEL       0x40
277 #define RFCOMM_DISCONNECT     0x41
278 #define RFCOMM_REGISTER_SERVICE     0x42
279 #define RFCOMM_UNREGISTER_SERVICE   0x43
280 #define RFCOMM_ACCEPT_CONNECTION    0x44
281 #define RFCOMM_DECLINE_CONNECTION   0x45
282 #define RFCOMM_PERSISTENT_CHANNEL   0x46
283 #define RFCOMM_CREATE_CHANNEL_WITH_CREDITS   0x47
284 #define RFCOMM_REGISTER_SERVICE_WITH_CREDITS 0x48
285 #define RFCOMM_GRANT_CREDITS                 0x49
286 
287 // GAP Classic 0x50
288 #define GAP_DISCONNECT              0x50
289 
290 // GAP LE      0x60
291 #define GAP_LE_SCAN_START           0x60
292 #define GAP_LE_SCAN_STOP            0x61
293 #define GAP_LE_CONNECT              0x62
294 #define GAP_LE_CONNECT_CANCEL       0x63
295 #define GAP_LE_SET_SCAN_PARAMETERS  0x64
296 
297 // GATT (Client) 0x70
298 #define GATT_DISCOVER_ALL_PRIMARY_SERVICES                       0x70
299 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID16                 0x71
300 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID128                0x72
301 #define GATT_FIND_INCLUDED_SERVICES_FOR_SERVICE                  0x73
302 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE                0x74
303 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID128     0x75
304 #define GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS                 0x76
305 #define GATT_READ_VALUE_OF_CHARACTERISTIC                        0x77
306 #define GATT_READ_LONG_VALUE_OF_CHARACTERISTIC                   0x78
307 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC_WITHOUT_RESPONSE      0x79
308 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC                       0x7A
309 #define GATT_WRITE_LONG_VALUE_OF_CHARACTERISTIC                  0x7B
310 #define GATT_RELIABLE_WRITE_LONG_VALUE_OF_CHARACTERISTIC         0x7C
311 #define GATT_READ_CHARACTERISTIC_DESCRIPTOR                      0X7D
312 #define GATT_READ_LONG_CHARACTERISTIC_DESCRIPTOR                 0X7E
313 #define GATT_WRITE_CHARACTERISTIC_DESCRIPTOR                     0X7F
314 #define GATT_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR                0X80
315 #define GATT_WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION           0X81
316 #define GATT_GET_MTU                                             0x82
317 
318 // SM 0x90
319 #define SM_SET_AUTHENTICATION_REQUIREMENTS 0x90
320 #define SM_SET_IO_CAPABILITIES             0x92
321 #define SM_BONDING_DECLINE                 0x93
322 #define SM_JUST_WORKS_CONFIRM              0x94
323 #define SM_NUMERIC_COMPARISON_CONFIRM      0x95
324 #define SM_PASSKEY_INPUT                   0x96
325 
326 // ATT
327 
328 // ..
329 // Internal properties reuse some GATT Characteristic Properties fields
330 #define ATT_DB_VERSION                                     0x01
331 
332 // EVENTS
333 
334 /**
335  * @format 1
336  * @param state
337  */
338 #define BTSTACK_EVENT_STATE                                0x60
339 
340 /**
341  * @format 1
342  * @param number_connections
343  */
344 #define BTSTACK_EVENT_NR_CONNECTIONS_CHANGED               0x61
345 
346 /**
347  * @format
348  */
349 #define BTSTACK_EVENT_POWERON_FAILED                       0x62
350 
351 /**
352  * @format 1
353  * @param discoverable
354  */
355 #define BTSTACK_EVENT_DISCOVERABLE_ENABLED                 0x66
356 
357 // Daemon Events
358 
359 /**
360  * @format 112
361  * @param major
362  * @param minor
363  @ @param revision
364  */
365 #define DAEMON_EVENT_VERSION                               0x63
366 
367 // data: system bluetooth on/off (bool)
368 /**
369  * @format 1
370  * param system_bluetooth_enabled
371  */
372 #define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED              0x64
373 
374 // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes)
375 
376 /*
377  * @format 1BT
378  * @param status == 0 to match read_remote_name_request
379  * @param address
380  * @param name
381  */
382 #define DAEMON_EVENT_REMOTE_NAME_CACHED                    0x65
383 
384 // internal - data: event(8)
385 #define DAEMON_EVENT_CONNECTION_OPENED                     0x67
386 
387 // internal - data: event(8)
388 #define DAEMON_EVENT_CONNECTION_CLOSED                     0x68
389 
390 // data: event(8), len(8), local_cid(16), credits(8)
391 #define DAEMON_EVENT_L2CAP_CREDITS                         0x74
392 
393 /**
394  * @format 12
395  * @param status
396  * @param psm
397  */
398 #define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED              0x75
399 
400 /**
401  * @format 21
402  * @param rfcomm_cid
403  * @param credits
404  */
405 #define DAEMON_EVENT_RFCOMM_CREDITS                        0x84
406 
407 /**
408  * @format 11
409  * @param status
410  * @param channel_id
411  */
412 #define DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED             0x85
413 
414 /**
415  * @format 11
416  * @param status
417  * @param server_channel_id
418  */
419 #define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL             0x86
420 
421 /**
422   * @format 14
423   * @param status
424   * @param service_record_handle
425   */
426 #define DAEMON_EVENT_SDP_SERVICE_REGISTERED                0x90
427 
428 
429 
430 // additional HCI events
431 
432 /**
433  * @brief Indicates HCI transport enters/exits Sleep mode
434  * @format 1
435  * @param active
436  */
437 #define HCI_EVENT_TRANSPORT_SLEEP_MODE                     0x69
438 
439 /**
440  * @brief Outgoing packet
441  */
442 #define HCI_EVENT_TRANSPORT_PACKET_SENT                    0x6E
443 
444 /**
445  * @format B
446  * @param handle
447  */
448 #define HCI_EVENT_SCO_CAN_SEND_NOW                         0x6F
449 
450 
451 // L2CAP EVENTS
452 
453 /**
454  * @format 1BH222222111
455  * @param status
456  * @param address
457  * @param handle
458  * @param psm
459  * @param local_cid
460  * @param remote_cid
461  * @param local_mtu
462  * @param remote_mtu
463  * @param flush_timeout
464  * @param incoming
465  * @param mode
466  * @param fcs
467  */
468 #define L2CAP_EVENT_CHANNEL_OPENED                         0x70
469 
470 /*
471  * @format 2
472  * @param local_cid
473  */
474 #define L2CAP_EVENT_CHANNEL_CLOSED                         0x71
475 
476 /**
477  * @format BH222
478  * @param address
479  * @param handle
480  * @param psm
481  * @param local_cid
482  * @param remote_cid
483  */
484 #define L2CAP_EVENT_INCOMING_CONNECTION                    0x72
485 
486 // ??
487 // data: event(8), len(8), handle(16)
488 #define L2CAP_EVENT_TIMEOUT_CHECK                          0x73
489 
490 /**
491  * @format H2222
492  * @param handle
493  * @param interval_min
494  * @param interval_max
495  * @param latencey
496  * @param timeout_multiplier
497  */
498 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST    0x76
499 
500 // data: event(8), len(8), handle(16), result (16) (0 == ok, 1 == fail)
501  /**
502   * @format H2
503   * @param handle
504   * @param result
505   */
506 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE   0x77
507 
508 /**
509  * @format 2
510  * @param local_cid
511  */
512 #define L2CAP_EVENT_CAN_SEND_NOW                           0x78
513 
514 // LE Data Channels
515 
516 /**
517  * @format 1BH2222
518  * @param address_type
519  * @param address
520  * @param handle
521  * @param psm
522  * @param local_cid
523  * @param remote_cid
524  * @param remote_mtu
525  */
526 #define L2CAP_EVENT_LE_INCOMING_CONNECTION                 0x79
527 
528 /**
529  * @format 11BH122222
530  * @param status
531  * @param address_type
532  * @param address
533  * @param handle
534  * @param incoming
535  * @param psm
536  * @param local_cid
537  * @param remote_cid
538  * @param local_mtu
539  * @param remote_mtu
540  */
541 #define L2CAP_EVENT_LE_CHANNEL_OPENED                      0x7a
542 
543 /*
544  * @format 2
545  * @param local_cid
546  */
547 #define L2CAP_EVENT_LE_CHANNEL_CLOSED                      0x7b
548 
549 /*
550  * @format 2
551  * @param local_cid
552  */
553 #define L2CAP_EVENT_LE_CAN_SEND_NOW                        0x7c
554 
555 /*
556  * @format 2
557  * @param local_cid
558  */
559 #define L2CAP_EVENT_LE_PACKET_SENT                         0x7d
560 
561 /*
562  * @format 2
563  * @param local_cid
564  */
565 #define L2CAP_EVENT_ERTM_BUFFER_RELEASED                   0x7e
566 
567 
568 // RFCOMM EVENTS
569 
570 /**
571  * @format 1B21221
572  * @param status
573  * @param bd_addr
574  * @param con_handle
575  * @param server_channel
576  * @param rfcomm_cid
577  * @param max_frame_size
578  * @param incoming
579  */
580 #define RFCOMM_EVENT_CHANNEL_OPENED                        0x80
581 
582 /**
583  * @format 2
584  * @param rfcomm_cid
585  */
586 #define RFCOMM_EVENT_CHANNEL_CLOSED                        0x81
587 
588 /**
589  * @format B12
590  * @param bd_addr
591  * @param server_channel
592  * @param rfcomm_cid
593  */
594 #define RFCOMM_EVENT_INCOMING_CONNECTION                   0x82
595 
596 /**
597  * @format 21
598  * @param rfcomm_cid
599  * @param line_status
600  */
601 #define RFCOMM_EVENT_REMOTE_LINE_STATUS                    0x83
602 
603 /**
604  * @format 21
605  * @param rfcomm_cid
606  * @param modem_status
607  */
608 #define RFCOMM_EVENT_REMOTE_MODEM_STATUS                   0x87
609 
610  /**
611   * TODO: format for variable data 2?
612   * param rfcomm_cid
613   * param rpn_data
614   */
615 #define RFCOMM_EVENT_PORT_CONFIGURATION                    0x88
616 
617 /**
618  * @format 2
619  * @param rfcomm_cid
620  */
621 #define RFCOMM_EVENT_CAN_SEND_NOW                          0x89
622 
623 
624 /**
625  * @format 1
626  * @param status
627  */
628 #define SDP_EVENT_QUERY_COMPLETE                                 0x91
629 
630 /**
631  * @format 1T
632  * @param rfcomm_channel
633  * @param name
634  */
635 #define SDP_EVENT_QUERY_RFCOMM_SERVICE                           0x92
636 
637 /**
638  * @format 22221
639  * @param record_id
640  * @param attribute_id
641  * @param attribute_length
642  * @param data_offset
643  * @param data
644  */
645 #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE                           0x93
646 
647 /**
648  * @format 22LV
649  * @param record_id
650  * @param attribute_id
651  * @param attribute_length
652  * @param attribute_value
653  */
654 #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE                          0x94
655 
656 /**
657  * @format 224
658  * @param total_count
659  * @param record_index
660  * @param record_handle
661  * @note Not provided by daemon, only used for internal testing
662  */
663 #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE                    0x95
664 
665 /**
666  * @format H1
667  * @param handle
668  * @param status
669  */
670 #define GATT_EVENT_QUERY_COMPLETE                                0xA0
671 
672 /**
673  * @format HX
674  * @param handle
675  * @param service
676  */
677 #define GATT_EVENT_SERVICE_QUERY_RESULT                          0xA1
678 
679 /**
680  * @format HY
681  * @param handle
682  * @param characteristic
683  */
684 #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT                   0xA2
685 
686 /**
687  * @format H2X
688  * @param handle
689  * @param include_handle
690  * @param service
691  */
692 #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT                 0xA3
693 
694 /**
695  * @format HZ
696  * @param handle
697  * @param characteristic_descriptor
698  */
699 #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT   0xA4
700 
701 /**
702  * @format H2LV
703  * @param handle
704  * @param value_handle
705  * @param value_length
706  * @param value
707  */
708 #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT             0xA5
709 
710 /**
711  * @format H22LV
712  * @param handle
713  * @param value_handle
714  * @param value_offset
715  * @param value_length
716  * @param value
717  */
718 #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT        0xA6
719 
720 /**
721  * @format H2LV
722  * @param handle
723  * @param value_handle
724  * @param value_length
725  * @param value
726  */
727 #define GATT_EVENT_NOTIFICATION                                  0xA7
728 
729 /**
730  * @format H2LV
731  * @param handle
732  * @param value_handle
733  * @param value_length
734  * @param value
735  */
736 #define GATT_EVENT_INDICATION                                    0xA8
737 
738 /**
739  * @format H2LV
740  * @param handle
741  * @param descriptor_handle
742  * @param descriptor_length
743  * @param descriptor
744  */
745 #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT        0xA9
746 
747 /**
748  * @format H2LV
749  * @param handle
750  * @param descriptor_offset
751  * @param descriptor_length
752  * @param descriptor
753  */
754 #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT   0xAA
755 
756 /**
757  * @format H2
758  * @param handle
759  * @param MTU
760  */
761 #define GATT_EVENT_MTU                                           0xAB
762 
763 /**
764  * @format H
765  * @param handle
766  */
767 #define GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE                    0xAC
768 
769 /**
770  * @format 1BH
771  * @param address_type
772  * @param address
773  * @param handle
774  */
775 #define ATT_EVENT_CONNECTED                                      0xB3
776 
777 /**
778  * @format H
779  * @param handle
780  */
781 #define ATT_EVENT_DISCONNECTED                                   0xB4
782 
783 /**
784  * @format H2
785  * @param handle
786  * @param MTU
787  */
788 #define ATT_EVENT_MTU_EXCHANGE_COMPLETE                          0xB5
789 
790  /**
791   * @format 1H2
792   * @param status
793   * @param conn_handle
794   * @param attribute_handle
795   */
796 #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE               0xB6
797 
798 /**
799  * @format
800  */
801 #define ATT_EVENT_CAN_SEND_NOW                                   0xB7
802 
803 // TODO: daemon only event
804 
805 /**
806  * @format 12
807  * @param status
808  * @param service_uuid
809  */
810  #define BNEP_EVENT_SERVICE_REGISTERED                      0xC0
811 
812 /**
813  * @format 12222BH
814  * @param status
815  * @param bnep_cid
816  * @param source_uuid
817  * @param destination_uuid
818  * @param mtu
819  * @param remote_address
820  * @param con_handle
821  */
822  #define BNEP_EVENT_CHANNEL_OPENED                   0xC1
823 
824 /**
825  * @format 222B
826  * @param bnep_cid
827  * @param source_uuid
828  * @param destination_uuid
829  * @param remote_address
830  */
831  #define BNEP_EVENT_CHANNEL_CLOSED                          0xC2
832 
833 /**
834  * @format 222B1
835  * @param bnep_cid
836  * @param source_uuid
837  * @param destination_uuid
838  * @param remote_address
839  * @param channel_state
840  */
841 #define BNEP_EVENT_CHANNEL_TIMEOUT                         0xC3
842 
843 /**
844  * @format 222B
845  * @param bnep_cid
846  * @param source_uuid
847  * @param destination_uuid
848  * @param remote_address
849  */
850  #define BNEP_EVENT_CAN_SEND_NOW                           0xC4
851 
852  /**
853   * @format H1B
854   * @param handle
855   * @param addr_type
856   * @param address
857   */
858 #define SM_EVENT_JUST_WORKS_REQUEST                              0xD0
859 
860  /**
861   * @format H1B
862   * @param handle
863   * @param addr_type
864   * @param address
865   */
866 #define SM_EVENT_JUST_WORKS_CANCEL                               0xD1
867 
868  /**
869   * @format H1B4
870   * @param handle
871   * @param addr_type
872   * @param address
873   * @param passkey
874   */
875 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER                          0xD2
876 
877  /**
878   * @format H1B
879   * @param handle
880   * @param addr_type
881   * @param address
882   */
883 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL                          0xD3
884 
885  /**
886   * @format H1B
887   * @param handle
888   * @param addr_type
889   * @param address
890   */
891 #define SM_EVENT_PASSKEY_INPUT_NUMBER                            0xD4
892 
893  /**
894   * @format H1B
895   * @param handle
896   * @param addr_type
897   * @param address
898   */
899 #define SM_EVENT_PASSKEY_INPUT_CANCEL                            0xD5
900 
901  /**
902   * @format H1B4
903   * @param handle
904   * @param addr_type
905   * @param address
906   * @param passkey
907   */
908 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST                      0xD6
909 
910  /**
911   * @format H1B
912   * @param handle
913   * @param addr_type
914   * @param address
915   */
916 #define SM_EVENT_NUMERIC_COMPARISON_CANCEL                       0xD7
917 
918  /**
919   * @format H1B
920   * @param handle
921   * @param addr_type
922   * @param address
923   */
924 #define SM_EVENT_IDENTITY_RESOLVING_STARTED                      0xD8
925 
926  /**
927   * @format H1B
928   * @param handle
929   * @param addr_type
930   * @param address
931   */
932 #define SM_EVENT_IDENTITY_RESOLVING_FAILED                       0xD9
933 
934  /**
935   * @brief Identify resolving succeeded
936   *
937   * @format H1B1B2
938   * @param handle
939   * @param addr_type
940   * @param address
941   * @param identity_addr_type
942   * @param identity_address
943   * @param index
944   *
945   */
946 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED                    0xDA
947 
948  /**
949   * @format H1B
950   * @param handle
951   * @param addr_type
952   * @param address
953   */
954 #define SM_EVENT_AUTHORIZATION_REQUEST                           0xDB
955 
956  /**
957   * @format H1B1
958   * @param handle
959   * @param addr_type
960   * @param address
961   * @param authorization_result
962   */
963 #define SM_EVENT_AUTHORIZATION_RESULT                            0xDC
964 
965  /**
966   * @format H1
967   * @param handle
968   * @param action see SM_KEYPRESS_*
969   */
970 #define SM_EVENT_KEYPRESS_NOTIFICATION                           0xDD
971 
972  /**
973   * @brief Emitted during pairing to inform app about address used as identity
974   *
975   * @format H1B1B2
976   * @param handle
977   * @param addr_type
978   * @param address
979   * @param identity_addr_type
980   * @param identity_address
981   * @param index
982   */
983 #define SM_EVENT_IDENTITY_CREATED                                0xDE
984 
985  /**
986   * @brief Emitted to inform app that pairing is complete. Possible status values:
987   *        ERROR_CODE_SUCCESS                            -> pairing success
988   *        ERROR_CODE_CONNECTION_TIMEOUT                 -> timeout
989   *        ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION  -> disconnect
990   *        ERROR_CODE_AUTHENTICATION_FAILURE             -> SM protocol error, see reason field with SM_REASON_* from bluetooth.h
991   *
992   * @format H1B11
993   * @param handle
994   * @param addr_type
995   * @param address
996   * @param status
997   * @param reason if status == ERROR_CODE_AUTHENTICATION_FAILURE
998   */
999 #define SM_EVENT_PAIRING_COMPLETE                                0xDF
1000 
1001 
1002 // GAP
1003 
1004 /**
1005  * @format H1
1006  * @param handle
1007  * @param security_level
1008  */
1009 #define GAP_EVENT_SECURITY_LEVEL                                 0xE0
1010 
1011 /**
1012  * @format 1B
1013  * @param status
1014  * @param address
1015  */
1016 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED                    0xE1
1017 
1018 /**
1019  * @format 11B1JV
1020  * @param advertising_event_type
1021  * @param address_type
1022  * @param address
1023  * @param rssi
1024  * @param data_length
1025  * @param data
1026  */
1027 #define GAP_EVENT_ADVERTISING_REPORT                          0xE2
1028 
1029  /**
1030  * @format B132111JV
1031  * @param bd_addr
1032  * @param page_scan_repetition_mode
1033  * @param class_of_device
1034  * @param clock_offset
1035  * @param rssi_available
1036  * @param rssi
1037  * @param name_available
1038  * @param name_len
1039  * @param name
1040  */
1041 #define GAP_EVENT_INQUIRY_RESULT                              0xE3
1042 
1043 /**
1044  * @format 1
1045  * @param status
1046  */
1047 #define GAP_EVENT_INQUIRY_COMPLETE                            0xE4
1048 
1049 /**
1050  * @format H1
1051  * @param con_handle
1052  * @param rssi (signed integer -127..127)
1053  * @note Classic: rssi is in dB relative to Golden Receive Power Range
1054  * @note LE: rssi is absolute dBm
1055  */
1056 #define GAP_EVENT_RSSI_MEASUREMENT                            0xE5
1057 
1058 // Meta Events, see below for sub events
1059 #define HCI_EVENT_HSP_META                                 0xE8
1060 #define HCI_EVENT_HFP_META                                 0xE9
1061 #define HCI_EVENT_ANCS_META                                0xEA
1062 #define HCI_EVENT_AVDTP_META                               0xEB
1063 #define HCI_EVENT_AVRCP_META                               0xEC
1064 #define HCI_EVENT_GOEP_META                                0xED
1065 #define HCI_EVENT_PBAP_META                                0xEE
1066 #define HCI_EVENT_HID_META                                 0xEF
1067 #define HCI_EVENT_A2DP_META                                0xF0
1068 #define HCI_EVENT_HIDS_META                                0xF1
1069 #define HCI_EVENT_GATTSERVICE_META                         0xF2
1070 #define HCI_EVENT_BIP_META                                 0xF3
1071 #define HCI_EVENT_MAP_META                                 0xF4
1072 #define HCI_EVENT_MESH_META                                0xF5
1073 
1074 // Potential other meta groups
1075 // #define HCI_EVENT_BNEP_META                                0xxx
1076 // #define HCI_EVENT_GAP_META                                 0xxx
1077 // #define HCI_EVENT_GATT_META                                0xxx
1078 // #define HCI_EVENT_PAN_META                                 0xxx
1079 // #define HCI_EVENT_SDP_META                                 0xxx
1080 // #define HCI_EVENT_SM_META                                  0xxx
1081 
1082 
1083 /** HSP Subevent */
1084 
1085 /**
1086  * @format 11
1087  * @param subevent_code
1088  * @param status 0 == OK
1089  */
1090 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE             0x01
1091 
1092 /**
1093  * @format 11
1094  * @param subevent_code
1095  * @param status 0 == OK
1096  */
1097 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE           0x02
1098 
1099 
1100 /**
1101  * @format 11H
1102  * @param subevent_code
1103  * @param status 0 == OK
1104  * @param handle
1105  */
1106 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE             0x03
1107 
1108 /**
1109  * @format 11
1110  * @param subevent_code
1111  * @param status 0 == OK
1112  */
1113 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE          0x04
1114 
1115 /**
1116  * @format 1
1117  * @param subevent_code
1118  */
1119 #define HSP_SUBEVENT_RING                                  0x05
1120 
1121 /**
1122  * @format 11
1123  * @param subevent_code
1124  * @param gain Valid range: [0,15]
1125  */
1126 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED               0x06
1127 
1128 /**
1129  * @format 11
1130  * @param subevent_code
1131  * @param gain Valid range: [0,15]
1132  */
1133 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED                  0x07
1134 
1135 /**
1136  * @format 1JV
1137  * @param subevent_code
1138  * @param value_length
1139  * @param value
1140  */
1141 #define HSP_SUBEVENT_HS_COMMAND                            0x08
1142 
1143 /**
1144  * @format 1JV
1145  * @param subevent_code
1146  * @param value_length
1147  * @param value
1148  */
1149 #define HSP_SUBEVENT_AG_INDICATION                         0x09
1150 
1151 
1152 /** HFP Subevent */
1153 
1154 /**
1155  * @format 11HB
1156  * @param subevent_code
1157  * @param status 0 == OK
1158  * @param con_handle
1159  * @param bd_addr
1160  */
1161 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED  0x01
1162 
1163 /**
1164  * @format 1
1165  * @param subevent_code
1166  */
1167 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED     0x02
1168 
1169 /**
1170  * @format 11HB1
1171  * @param subevent_code
1172  * @param status 0 == OK
1173  * @param handle
1174  * @param bd_addr
1175  * @param negotiated_codec
1176  */
1177 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED          0x03
1178 
1179 /**
1180  * @format 1
1181  * @param subevent_code
1182  */
1183 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED             0x04
1184 
1185 /**
1186  * @format 11
1187  * @param subevent_code
1188  * @param status 0 == OK
1189  */
1190 #define HFP_SUBEVENT_COMPLETE                              0x05
1191 
1192 /**
1193  * @format 11111111T
1194  * @param subevent_code
1195  * @param indicator_index
1196  * @param indicator_status
1197  * @param indicator_min_range
1198  * @param indicator_max_range
1199  * @param indicator_mandatory
1200  * @param indicator_enabled
1201  * @param indicator_status_changed
1202  * @param indicator_name
1203  */
1204 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED           0x06
1205 
1206 /**
1207  * @format 111T
1208  * @param subevent_code
1209  * @param network_operator_mode
1210  * @param network_operator_format
1211  * @param network_operator_name
1212  */
1213 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED              0x07
1214 
1215 /**
1216  * @format 11
1217  * @param subevent_code
1218  * @param error
1219  */
1220 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR             0x08
1221 
1222 /**
1223  * @format 1
1224  * @param subevent_code
1225  */
1226 #define HFP_SUBEVENT_START_RINGINIG                           0x0A
1227 
1228 /**
1229  * @format 1
1230  * @param subevent_code
1231  */
1232 #define HFP_SUBEVENT_STOP_RINGINIG                            0x0B
1233 
1234 /**
1235  * @format 1
1236  * @param subevent_code
1237  */
1238 #define HFP_SUBEVENT_CALL_TERMINATED                          0x0C
1239 
1240 /**
1241  * @format 1T
1242  * @param subevent_code
1243  * @param number
1244  */
1245 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER                   0x0D
1246 
1247 /**
1248  * @format 1
1249  * @param subevent_code
1250  */
1251 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG               0x0E
1252 
1253 /**
1254  * @format 1T
1255  * @param subevent_code
1256  * @param number
1257  */
1258 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG                     0x0F
1259 
1260 /**
1261  * @format 1T
1262  * @param subevent_code
1263  * @param dtmf code
1264  */
1265 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES                      0x10
1266 
1267 /**
1268  * @format 1
1269  * @param subevent_code
1270  */
1271  #define HFP_SUBEVENT_CALL_ANSWERED                            0x11
1272 
1273 /**
1274  * @format 1
1275  * @param subevent_code
1276  */
1277 #define HFP_SUBEVENT_CONFERENCE_CALL                          0x12
1278 
1279 /**
1280  * @format 1
1281  * @param subevent_code
1282  */
1283 #define HFP_SUBEVENT_RING                                     0x13
1284 
1285 /**
1286  * @format 111
1287  * @param subevent_code
1288  * @param status
1289  * @param gain
1290  */
1291  #define HFP_SUBEVENT_SPEAKER_VOLUME                           0x14
1292 
1293 /**
1294  * @format 111
1295  * @param subevent_code
1296  * @param status
1297  * @param gain
1298  */
1299 #define HFP_SUBEVENT_MICROPHONE_VOLUME                        0x15
1300 
1301 /**
1302  * @format 11T
1303  * @param subevent_code
1304  * @param type
1305  * @param number
1306  */
1307 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION                0x16
1308 
1309 /**
1310  * @format 11T
1311  * @param subevent_code
1312  * @param type
1313  * @param number
1314  */
1315 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17
1316 
1317 /**
1318  * @format 1111111T
1319  * @param subevent_code
1320  * @param clcc_idx
1321  * @param clcc_dir
1322  * @param clcc_status
1323  * @param clcc_mode
1324  * @param clcc_mpty
1325  * @param bnip_type
1326  * @param bnip_number
1327  */
1328 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS                     0x18
1329 
1330 /**
1331  * @format 111T
1332  * @param subevent_code
1333  * @param status
1334  * @param bnip_type
1335  * @param bnip_number
1336  */
1337  #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION            0x19
1338 
1339 /**
1340  * @format 1T
1341  * @param subevent_code
1342  * @param value
1343  */
1344 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS                 0x1A
1345 
1346 // ANCS Client
1347 
1348 /**
1349  * @format 1H
1350  * @param subevent_code
1351  * @param handle
1352  */
1353 #define ANCS_SUBEVENT_CLIENT_CONNECTED                              0xF0
1354 
1355 /**
1356  * @format 1H2T
1357  * @param subevent_code
1358  * @param handle
1359  * @param attribute_id
1360  * @param text
1361  */
1362 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION                           0xF1
1363 
1364 /**
1365  * @format 1H
1366  * @param subevent_code
1367  * @param handle
1368  */
1369 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED                           0xF2
1370 
1371 
1372 /** AVDTP Subevent */
1373 
1374 /**
1375  * @format 1211
1376  * @param subevent_code
1377  * @param avdtp_cid
1378  * @param local_seid
1379  * @param signal_identifier
1380  */
1381 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT                     0x01
1382 
1383 /**
1384  * @format 1211
1385  * @param subevent_code
1386  * @param avdtp_cid
1387  * @param local_seid
1388  * @param signal_identifier
1389  */
1390 #define AVDTP_SUBEVENT_SIGNALING_REJECT                     0x02
1391 
1392 /**
1393  * @format 1211
1394  * @param subevent_code
1395  * @param avdtp_cid
1396  * @param local_seid
1397  * @param signal_identifier
1398  */
1399 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT             0x03
1400 
1401 /**
1402  * @format 12B1
1403  * @param subevent_code
1404  * @param avdtp_cid
1405  * @param bd_addr
1406  * @param status 0 == OK
1407  */
1408 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED     0x04
1409 
1410 /**
1411  * @format 12
1412  * @param subevent_code
1413  * @param avdtp_cid
1414  */
1415 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED        0x05
1416 
1417 /**
1418  * @format 121111
1419  * @param subevent_code
1420  * @param avdtp_cid
1421  * @param remote_seid        0x01 – 0x3E
1422  * @param in_use      0-not in use, 1-in use
1423  * @param media_type  0-audio, 1-video, 2-multimedia
1424  * @param sep_type    0-source, 1-sink
1425  */
1426 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND                  0x06
1427 
1428 /**
1429  * @format 121111111111
1430  * @param subevent_code
1431  * @param avdtp_cid
1432  * @param local_seid
1433  * @param remote_seid
1434  * @param media_type
1435  * @param sampling_frequency_bitmap
1436  * @param channel_mode_bitmap
1437  * @param block_length_bitmap
1438  * @param subbands_bitmap
1439  * @param allocation_method_bitmap
1440  * @param min_bitpool_value
1441  * @param max_bitpool_value
1442  */
1443 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY          0x07
1444 
1445 /**
1446  * @format 121112LV
1447  * @param subevent_code
1448  * @param avdtp_cid
1449  * @param local_seid
1450  * @param remote_seid
1451  * @param media_type
1452  * @param media_codec_type
1453  * @param media_codec_information_len
1454  * @param media_codec_information
1455  */
1456 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY        0x08
1457 
1458 
1459 /**
1460  * @format 1211
1461  * @param subevent_code
1462  * @param avdtp_cid
1463  * @param local_seid
1464  * @param remote_seid
1465  */
1466 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY        0x09
1467 
1468 
1469 /**
1470  * @format 1211
1471  * @param subevent_code
1472  * @param avdtp_cid
1473  * @param local_seid
1474  * @param remote_seid
1475  */
1476 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY        0x0A
1477 
1478 
1479 /**
1480  * @format 1211111
1481  * @param subevent_code
1482  * @param avdtp_cid
1483  * @param local_seid
1484  * @param remote_seid
1485  * @param recovery_type
1486  * @param maximum_recovery_window_size
1487  * @param maximum_number_media_packets
1488  */
1489 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY        0x0B
1490 
1491 
1492 /**
1493  * @format 12112LV
1494  * @param subevent_code
1495  * @param avdtp_cid
1496  * @param local_seid
1497  * @param remote_seid
1498  * @param cp_type
1499  * @param cp_type_value_len
1500  * @param cp_type_value
1501  */
1502 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY        0x0C
1503 
1504 
1505 /**
1506  * @format 121111111111
1507  * @param subevent_code
1508  * @param avdtp_cid
1509  * @param local_seid
1510  * @param remote_seid
1511  * @param fragmentation
1512  * @param transport_identifiers_num
1513  * @param transport_session_identifier_1
1514  * @param transport_session_identifier_2
1515  * @param transport_session_identifier_3
1516  * @param tcid_1
1517  * @param tcid_2
1518  * @param tcid_3
1519  */
1520 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY        0x0D
1521 
1522 
1523 /**
1524  * @format 1211
1525  * @param subevent_code
1526  * @param avdtp_cid
1527  * @param local_seid
1528  * @param remote_seid
1529  */
1530 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY        0x0E
1531 
1532 
1533 /**
1534  * @format 1211111
1535  * @param subevent_code
1536  * @param avdtp_cid
1537  * @param local_seid
1538  * @param remote_seid
1539  * @param back_ch
1540  * @param media
1541  * @param recovery
1542  */
1543 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY        0x0F
1544 
1545 
1546 /**
1547  * @format 12111121111111
1548  * @param subevent_code
1549  * @param avdtp_cid
1550  * @param local_seid
1551  * @param remote_seid
1552  * @param reconfigure
1553  * @param media_type
1554  * @param sampling_frequency
1555  * @param channel_mode
1556  * @param num_channels
1557  * @param block_length
1558  * @param subbands
1559  * @param allocation_method
1560  * @param min_bitpool_value
1561  * @param max_bitpool_value
1562  */
1563 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION        0x10
1564 
1565 /**
1566  * @format 1211112LV
1567  * @param subevent_code
1568  * @param avdtp_cid
1569  * @param local_seid
1570  * @param remote_seid
1571  * @param reconfigure
1572  * @param media_type
1573  * @param media_codec_type
1574  * @param media_codec_information_len
1575  * @param media_codec_information
1576  */
1577 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION        0x11
1578 
1579 /**
1580  * @format 12B111
1581  * @param subevent_code
1582  * @param avdtp_cid
1583  * @param bd_addr
1584  * @param local_seid
1585  * @param remote_seid
1586  * @param status 0 == OK
1587  */
1588 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED     0x12
1589 
1590 /**
1591  * @format 121
1592  * @param subevent_code
1593  * @param avdtp_cid
1594  * @param local_seid
1595  */
1596 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED        0x13
1597 
1598 /**
1599  * @format 1212
1600  * @param subevent_code
1601  * @param avdtp_cid
1602  * @param local_seid
1603  * @param sequence_number
1604  */
1605 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW   0x14
1606 
1607 /**
1608  * @format 1211
1609  * @param subevent_code
1610  * @param avdtp_cid
1611  * @param local_seid
1612  * @param remote_seid
1613  */
1614 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE           0x15
1615 
1616 
1617 /**
1618  * @format 12
1619  * @param subevent_code
1620  * @param avdtp_cid
1621  */
1622 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE           0x16
1623 
1624 /**
1625  * @format 1212
1626  * @param subevent_code
1627  * @param avdtp_cid
1628  * @param local_seid
1629  * @param delay_100us
1630  */
1631 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT               0x17
1632 
1633 /** A2DP Subevent */
1634 /* Stream goes through following states:
1635  * - OPEN         - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event
1636  * - START        - indicated with A2DP_SUBEVENT_STREAM_STARTED event
1637  * - SUSPEND      - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event
1638  * - ABORT/STOP   - indicated with A2DP_SUBEVENT_STREAM_RELEASED event
1639 
1640  OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started.
1641  START can come only after the stream is OPENED, and indicates that media transfer is started.
1642  SUSPEND is optional, it pauses the stream.
1643  */
1644 
1645 /**
1646  * @format 121            Sent only by A2DP source.
1647  * @param subevent_code
1648  * @param a2dp_cid
1649  * @param local_seid
1650  */
1651 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW         0x01
1652 
1653 /**
1654  * @format 12111121111111
1655  * @param subevent_code
1656  * @param a2dp_cid
1657  * @param int_seid
1658  * @param acp_seid
1659  * @param reconfigure
1660  * @param media_type
1661  * @param sampling_frequency
1662  * @param channel_mode
1663  * @param num_channels
1664  * @param block_length
1665  * @param subbands
1666  * @param allocation_method
1667  * @param min_bitpool_value
1668  * @param max_bitpool_value
1669  */
1670 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION      0x02
1671 
1672 /**
1673  * @format 1211112LV
1674  * @param subevent_code
1675  * @param a2dp_cid
1676  * @param int_seid
1677  * @param acp_seid
1678  * @param reconfigure
1679  * @param media_type
1680  * @param media_codec_type
1681  * @param media_codec_information_len
1682  * @param media_codec_information
1683  */
1684 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION    0x03
1685 
1686 /**
1687  * @format 12B111          Stream is opened byt not started.
1688  * @param subevent_code
1689  * @param a2dp_cid
1690  * @param bd_addr
1691  * @param local_seid
1692  * @param remote_seid
1693  * @param status
1694  */
1695 #define A2DP_SUBEVENT_STREAM_ESTABLISHED                           0x04
1696 
1697 /**
1698  * @format 121            Indicates that media transfer is started.
1699  * @param subevent_code
1700  * @param a2dp_cid
1701  * @param local_seid
1702  */
1703 #define A2DP_SUBEVENT_STREAM_STARTED                               0x05
1704 
1705 /**
1706  * @format 121           Stream is paused.
1707  * @param subevent_code
1708  * @param a2dp_cid
1709  * @param local_seid
1710  */
1711 #define A2DP_SUBEVENT_STREAM_SUSPENDED                              0x06
1712 
1713 /**
1714  * @format 121           Stream is stoped or aborted.
1715  * @param subevent_code
1716  * @param a2dp_cid
1717  * @param local_seid
1718  */
1719 #define A2DP_SUBEVENT_STREAM_STOPPED                                0x07
1720 
1721 /**
1722  * @format 121            Stream is released.
1723  * @param subevent_code
1724  * @param a2dp_cid
1725  * @param local_seid
1726  */
1727 #define A2DP_SUBEVENT_STREAM_RELEASED                               0x08
1728 
1729 /**
1730  * @format 1211
1731  * @param subevent_code
1732  * @param a2dp_cid
1733  * @param local_seid
1734  * @param signal_identifier
1735  */
1736 #define A2DP_SUBEVENT_COMMAND_ACCEPTED                              0x09
1737 
1738 /**
1739  * @format 1211
1740  * @param subevent_code
1741  * @param a2dp_cid
1742  * @param local_seid
1743  * @param signal_identifier
1744  */
1745 #define A2DP_SUBEVENT_COMMAND_REJECTED                              0x0A
1746 
1747 /**
1748  * @format 12B1
1749  * @param subevent_code
1750  * @param a2dp_cid
1751  * @param bd_addr
1752  * @param status 0 == OK
1753  */
1754 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED              0x0B
1755 
1756 /**
1757  * @format 12            Signaling channel is released.
1758  * @param subevent_code
1759  * @param a2dp_cid
1760  */
1761 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED                  0x0C
1762 
1763 /**
1764  * @format 1211          Stream was reconfigured
1765  * @param subevent_code
1766  * @param a2dp_cid
1767  * @param local_seid
1768  * @param status
1769  */
1770 #define A2DP_SUBEVENT_STREAM_RECONFIGURED                            0x0D
1771 
1772 /**
1773  * @format 1211
1774  * @param subevent_code
1775  * @param avdtp_cid
1776  * @param local_seid
1777  * @param remote_seid
1778  */
1779 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY           0x0E
1780 
1781 
1782 /**
1783  * @format 1212
1784  * @param subevent_code
1785  * @param avdtp_cid
1786  * @param local_seid
1787  * @param delay_100us
1788  */
1789 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT                         0x0F
1790 
1791 /**
1792  * @format 1211
1793  * @param subevent_code
1794  * @param avdtp_cid
1795  * @param local_seid
1796  * @param remote_seid
1797  */
1798 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE                    0x10
1799 
1800 /** AVRCP Subevent */
1801 
1802 /**
1803  * @format 11B2
1804  * @param subevent_code
1805  * @param status 0 == OK
1806  * @param bd_addr
1807  * @param avrcp_cid
1808  */
1809 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED                           0x01
1810 
1811 /**
1812  * @format 12
1813  * @param subevent_code
1814  * @param avrcp_cid
1815  */
1816 #define AVRCP_SUBEVENT_CONNECTION_RELEASED                              0x02
1817 
1818 /**
1819  * @format 12111
1820  * @param subevent_code
1821  * @param avrcp_cid
1822  * @param command_type
1823  * @param repeat_mode
1824  * @param shuffle_mode
1825  */
1826 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE                          0x03
1827 
1828 /**
1829  * @format 121441
1830  * @param subevent_code
1831  * @param avrcp_cid
1832  * @param command_type
1833  * @param song_length
1834  * @param song_position
1835  * @param play_status
1836  */
1837  #define AVRCP_SUBEVENT_PLAY_STATUS                                     0x04
1838 
1839 /**
1840  * @format 1211
1841  * @param subevent_code
1842  * @param avrcp_cid
1843  * @param command_type
1844  * @param play_status
1845  */
1846 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED             0x05
1847 
1848 /**
1849  * @format 121
1850  * @param subevent_code
1851  * @param avrcp_cid
1852  * @param command_type
1853  */
1854 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED                       0x06
1855 
1856 /**
1857  * @format 121
1858  * @param subevent_code
1859  * @param avrcp_cid
1860  * @param command_type
1861  */
1862 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED          0x07
1863 
1864 /**
1865  * @format 121
1866  * @param subevent_code
1867  * @param avrcp_cid
1868  * @param command_type
1869  */
1870 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED            0x08
1871 
1872 /**
1873  * @format 1211
1874  * @param subevent_code
1875  * @param avrcp_cid
1876  * @param command_type
1877  * @param absolute_volume
1878  */
1879 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED                       0x09
1880 
1881 /**
1882  * @format 1211
1883  * @param subevent_code
1884  * @param avrcp_cid
1885  * @param command_type
1886  * @param absolute_volume
1887  */
1888 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE                      0x0A
1889 
1890 /**
1891  * @format 1211
1892  * @param subevent_code
1893  * @param avrcp_cid
1894  * @param command_type
1895  * @param notification_id
1896  */
1897 #define AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE                       0x0B
1898 
1899 /**
1900  * @format 1211
1901  * @param subevent_code
1902  * @param avrcp_cid
1903  * @param command_type
1904  * @param operation_id
1905  */
1906 #define AVRCP_SUBEVENT_OPERATION_START                                    0x0C
1907 
1908 /**
1909  * @format 1211
1910  * @param subevent_code
1911  * @param avrcp_cid
1912  * @param command_type
1913  * @param operation_id
1914  */
1915 #define AVRCP_SUBEVENT_OPERATION_COMPLETE                                 0x0D
1916 
1917 /**
1918  * @format 121
1919  * @param subevent_code
1920  * @param avrcp_cid
1921  * @param command_type
1922  */
1923 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE                   0x0E
1924 
1925 /**
1926  * @format 12
1927  * @param subevent_code
1928  * @param avrcp_cid
1929  */
1930 #define AVRCP_SUBEVENT_COMPANY_IDS_QUERY                                    0x0F
1931 
1932 /**
1933  * @format 12
1934  * @param subevent_code
1935  * @param avrcp_cid
1936  */
1937 #define AVRCP_SUBEVENT_EVENT_IDS_QUERY                                      0x10
1938 
1939 /**
1940  * @format 12
1941  * @param subevent_code
1942  * @param avrcp_cid
1943  */
1944 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY                                    0x11
1945 
1946 /**
1947  * @format 12111
1948  * @param subevent_code
1949  * @param avrcp_cid
1950  * @param operation_id
1951  * @param operands_length
1952  * @param operand
1953  */
1954 #define AVRCP_SUBEVENT_OPERATION                                            0x12
1955 
1956 /**
1957  * @format 1211
1958  * @param subevent_code
1959  * @param avrcp_cid
1960  * @param command_type
1961  * @param track
1962  */
1963 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO                                 0x13
1964 
1965 /**
1966  * @format 1211
1967  * @param subevent_code
1968  * @param avrcp_cid
1969  * @param command_type
1970  * @param total_tracks
1971  */
1972 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO                          0x14
1973 
1974 /**
1975  * @format 1214
1976  * @param subevent_code
1977  * @param avrcp_cid
1978  * @param command_type
1979  * @param song_length in ms
1980  */
1981 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO                        0x15
1982 
1983 /**
1984  * @format 121JV
1985  * @param subevent_code
1986  * @param avrcp_cid
1987  * @param command_type
1988  * @param value_len
1989  * @param value
1990  */
1991 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO                                 0x16
1992 
1993  /*
1994  * @format 121JV
1995  * @param subevent_code
1996  * @param avrcp_cid
1997  * @param command_type
1998  * @param value_len
1999  * @param value
2000  */
2001 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO                                0x17
2002 
2003  /*
2004  * @format 121JV
2005  * @param subevent_code
2006  * @param avrcp_cid
2007  * @param command_type
2008  * @param value_len
2009  * @param value
2010  */
2011 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO                                 0x18
2012 
2013  /*
2014  * @format 121JV
2015  * @param subevent_code
2016  * @param avrcp_cid
2017  * @param command_type
2018  * @param value_len
2019  * @param value
2020  */
2021 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO                                 0x19
2022 
2023 /*
2024  * @format 1211
2025  * @param subevent_code
2026  * @param avrcp_cid
2027  * @param command_type
2028  * @param status
2029  */
2030 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE                                  0x1A
2031 
2032 /**
2033  * @format 1B2
2034  * @param subevent_code
2035  * @param bd_addr
2036  * @param browsing_cid
2037  */
2038 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION                          0x1B
2039 
2040 /**
2041  * @format 11B2
2042  * @param subevent_code
2043  * @param status 0 == OK
2044  * @param bd_addr
2045  * @param browsing_cid
2046  */
2047 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED                        0x1C
2048 
2049 /**
2050  * @format 12
2051  * @param subevent_code
2052  * @param browsing_cid
2053  */
2054 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED                           0x1D
2055 
2056 /**
2057  * @format 12211
2058  * @param subevent_code
2059  * @param browsing_cid
2060  * @param uid_counter
2061  * @param browsing_status
2062  * @param bluetooth_status
2063  */
2064 #define AVRCP_SUBEVENT_BROWSING_DONE                                          0x1E
2065 
2066 /**
2067  * @format 1214
2068  * @param subevent_code
2069  * @param browsing_cid
2070  * @param scope
2071  * @param attr_bitmap
2072  */
2073 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS                              0x1F
2074 
2075 /**
2076  * @format 121
2077  * @param subevent_code
2078  * @param browsing_cid
2079  * @param scope
2080  */
2081 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS                           0x20
2082 
2083 /**
2084  * @format 1214
2085  * @param subevent_code
2086  * @param avrcp_cid
2087  * @param command_type
2088  * @param playback_position_ms
2089  */
2090 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED                      0x21
2091 
2092 
2093 /**
2094  * @format 121BH1
2095  * @param subevent_code
2096  * @param goep_cid
2097  * @param status
2098  * @param bd_addr
2099  * @param con_handle
2100  * @param incoming
2101  */
2102 #define GOEP_SUBEVENT_CONNECTION_OPENED                                    0x01
2103 
2104 /**
2105  * @format 12
2106  * @param subevent_code
2107  * @param goep_cid
2108 */
2109 #define GOEP_SUBEVENT_CONNECTION_CLOSED                                    0x02
2110 
2111 /**
2112  * @format 12
2113  * @param subevent_code
2114  * @param goep_cid
2115 */
2116 #define GOEP_SUBEVENT_CAN_SEND_NOW                                         0x03
2117 
2118 /**
2119  * @format 121BH1
2120  * @param subevent_code
2121  * @param pbap_cid
2122  * @param status
2123  * @param bd_addr
2124  * @param con_handle
2125  * @param incoming
2126  */
2127 #define PBAP_SUBEVENT_CONNECTION_OPENED                                    0x01
2128 
2129 /**
2130  * @format 12
2131  * @param subevent_code
2132  * @param goep_cid
2133 */
2134 #define PBAP_SUBEVENT_CONNECTION_CLOSED                                    0x02
2135 
2136 /**
2137  * @format 121
2138  * @param subevent_code
2139  * @param goep_cid
2140  * @param status
2141  */
2142 #define PBAP_SUBEVENT_OPERATION_COMPLETED                                  0x03
2143 
2144 /**
2145  * @format 1212
2146  * @param subevent_code
2147  * @param goep_cid
2148  * @param status
2149  * @param phoneboook_size
2150  */
2151 #define PBAP_SUBEVENT_PHONEBOOK_SIZE                                       0x04
2152 
2153 /**
2154  * @format 1211
2155  * @param subevent_code
2156  * @param goep_cid
2157  * @param user_id_required
2158  * @param full_access
2159  */
2160 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST                               0x05
2161 
2162 /**
2163  * @format 12JVJV
2164  * @param subevent_code
2165  * @param goep_cid
2166  * @param name_len
2167  * @param name
2168  * @param handle_len
2169  * @param handle
2170  */
2171 #define PBAP_SUBEVENT_CARD_RESULT                                          0x06
2172 
2173 
2174 // HID Meta Event Group
2175 
2176 /**
2177  * @format 121BH1
2178  * @param subevent_code
2179  * @param hid_cid
2180  * @param status
2181  * @param bd_addr
2182  * @param con_handle
2183  * @param incoming
2184  */
2185 #define HID_SUBEVENT_CONNECTION_OPENED                                     0x01
2186 
2187 /**
2188  * @format 12
2189  * @param subevent_code
2190  * @param hid_cid
2191 */
2192 #define HID_SUBEVENT_CONNECTION_CLOSED                                     0x02
2193 
2194 /**
2195  * @format 12
2196  * @param subevent_code
2197  * @param hid_cid
2198 */
2199 #define HID_SUBEVENT_CAN_SEND_NOW                                          0x03
2200 
2201 /**
2202  * @format 12
2203  * @param subevent_code
2204  * @param con_handle
2205 */
2206 #define HID_SUBEVENT_SUSPEND                                               0x04
2207 
2208 /**
2209  * @format 12
2210  * @param subevent_code
2211  * @param con_handle
2212 */
2213 #define HID_SUBEVENT_EXIT_SUSPEND                                          0x05
2214 
2215 
2216 // HIDS Meta Event Group
2217 
2218 /**
2219  * @format 12
2220  * @param subevent_code
2221  * @param con_handle
2222 */
2223 #define HIDS_SUBEVENT_CAN_SEND_NOW                                          0x01
2224 
2225 /**
2226  * @format 121
2227  * @param subevent_code
2228  * @param con_handle
2229  * @param protocol_mode
2230 */
2231 #define HIDS_SUBEVENT_PROTOCOL_MODE                                         0x02
2232 
2233 /**
2234  * @format 121
2235  * @param subevent_code
2236  * @param con_handle
2237  * @param enable
2238 */
2239 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE                        0x03
2240 
2241 /**
2242  * @format 121
2243  * @param subevent_code
2244  * @param con_handle
2245  * @param enable
2246 */
2247 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE                     0x04
2248 
2249 /**
2250  * @format 121
2251  * @param subevent_code
2252  * @param con_handle
2253  * @param enable
2254 */
2255 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE                                   0x05
2256 
2257 /**
2258  * @format 121
2259  * @param subevent_code
2260  * @param con_handle
2261  * @param enable
2262 */
2263 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE                                  0x06
2264 
2265 /**
2266  * @format 121
2267  * @param subevent_code
2268  * @param con_handle
2269  * @param enable
2270 */
2271 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE                                 0x07
2272 
2273 /**
2274  * @format 12
2275  * @param subevent_code
2276  * @param con_handle
2277 */
2278 #define HIDS_SUBEVENT_SUSPEND                                               0x08
2279 
2280 /**
2281  * @format 12
2282  * @param subevent_code
2283  * @param con_handle
2284 */
2285 #define HIDS_SUBEVENT_EXIT_SUSPEND                                          0x09
2286 
2287 /**
2288  * @format 1211
2289  * @param subevent_code
2290  * @param con_handle
2291  * @param measurement_type  // 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t
2292  * @param is_enhanced
2293 */
2294 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION               0x01
2295 
2296 /**
2297  * @format 12
2298  * @param subevent_code
2299  * @param con_handle
2300 */
2301 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START                 0x02
2302 
2303 /**
2304  * @format 12
2305  * @param subevent_code
2306  * @param con_handle
2307 */
2308 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP                  0x03
2309 
2310 
2311 // MAP Meta Event Group
2312 
2313 /**
2314  * @format 121BH1
2315  * @param subevent_code
2316  * @param map_cid
2317  * @param status
2318  * @param bd_addr
2319  * @param con_handle
2320  * @param incoming
2321  */
2322 #define MAP_SUBEVENT_CONNECTION_OPENED                                    0x01
2323 
2324 /**
2325  * @format 12
2326  * @param subevent_code
2327  * @param map_cid
2328 */
2329 #define MAP_SUBEVENT_CONNECTION_CLOSED                                    0x02
2330 
2331 /**
2332  * @format 121
2333  * @param subevent_code
2334  * @param map_cid
2335  * @param status
2336  */
2337 #define MAP_SUBEVENT_OPERATION_COMPLETED                                  0x03
2338 
2339 
2340 /**
2341  * @format 12LV
2342  * @param subevent_code
2343  * @param map_cid
2344  * @param name_len
2345  * @param name
2346  */
2347 #define MAP_SUBEVENT_FOLDER_LISTING_ITEM                                  0x04
2348 
2349 /**
2350  * @format 12D
2351  * @param subevent_code
2352  * @param map_cid
2353  * @param handle
2354 
2355  */
2356 #define MAP_SUBEVENT_MESSAGE_LISTING_ITEM                                 0x05
2357 
2358 /**
2359  * @format 12
2360  * @param subevent_code
2361  * @param map_cid
2362  */
2363 #define MAP_SUBEVENT_PARSING_DONE                                         0x06
2364 
2365 
2366 // MESH Meta Event Group
2367 
2368 /**
2369  * @format 1
2370  * @param subevent_code
2371  */
2372 #define MESH_SUBEVENT_CAN_SEND_NOW                                          0x01
2373 
2374 /**
2375  * @format 11
2376  * @param subevent_code
2377  * @param status
2378  */
2379 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT                                          0x02
2380 
2381 /**
2382  * @format 1121
2383  * @param subevent_code
2384  * @param status
2385  * @param pb_transport_cid
2386  * @param pb_type
2387  */
2388 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN                                         0x03
2389 
2390 /**
2391  * @format 112
2392  * @param subevent_code
2393  * @param pb_transport_cid
2394  * @param reason
2395  */
2396 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED                                       0x04
2397 
2398 /**
2399  * @format 121
2400  * @param subevent_code
2401  * @param pb_transport_cid
2402  * @param attention_time in seconds
2403  */
2404 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER                                        0x10
2405 
2406 /**
2407  * Device Role
2408  * @format 12
2409  * @param subevent_code
2410  * @param pb_transport_cid
2411  */
2412 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB                              0x11
2413 
2414 /**
2415  * Device Role
2416  * @format 12
2417  * @param subevent_code
2418  * @param pb_transport_cid
2419  */
2420 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB                               0x12
2421 
2422 /**
2423  * Device Role
2424  * @format 12
2425  * @param subevent_code
2426  * @param pb_transport_cid
2427  */
2428 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST                                      0x13
2429 
2430 /**
2431  * Device Role
2432  * @format 124
2433  * @param subevent_code
2434  * @param pb_transport_cid
2435  * @param output_oob number
2436  */
2437 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB                                  0x15
2438 
2439 /**
2440  * Device Role
2441  * @format 12
2442  * @param subevent_code
2443  * @param pb_transport_cid
2444  */
2445 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB                                   0x16
2446 
2447 /**
2448  * Provisioner Role
2449  * @format 12
2450  * @param subevent_code
2451  * @param pb_transport_cid
2452  */
2453 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB                           0x17
2454 
2455 /**
2456  * Provisioner Role
2457  * @format 12
2458  * @param subevent_code
2459  * @param pb_transport_cid
2460  */
2461 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB                            0x18
2462 
2463 /**
2464  * Provisioner Role
2465  * @format 12
2466  * @param subevent_code
2467  * @param pb_transport_cid
2468  */
2469 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST                                     0x19
2470 
2471 /**
2472  * Provisioner Role
2473  * @format 124
2474  * @param subevent_code
2475  * @param pb_transport_cid
2476  * @param output_oob number
2477  */
2478 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB                                   0x1a
2479 
2480 /**
2481  * Provisioner Role
2482  * @format 12
2483  * @param subevent_code
2484  * @param pb_transport_cid
2485  */
2486 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB                                    0x1b
2487 
2488 /**
2489  * Provisioner Role
2490  * @format 1212111212
2491  * @param subevent_code
2492  * @param pb_transport_cid
2493  * @param num_elements
2494  * @param algorithms
2495  * @param public_key
2496  * @param static_oob_type
2497  * @param output_oob_size
2498  * @param output_oob_action
2499  * @param input_oob_size
2500  * @param input_oob_action
2501  */
2502 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES                                           0x1c
2503 
2504 /**
2505  * @format 12
2506  * @param subevent_code
2507  * @param pb_transport_cid
2508  */
2509 #define MESH_SUBEVENT_PB_PROV_COMPLETE                                               0x1d
2510 
2511 /**
2512  * @format 11
2513  * @param subevent_code
2514  * @param attention_time in seconds
2515  */
2516 #define MESH_SUBEVENT_ATTENTION_TIMER                                                0x1e
2517 
2518 /**
2519  * @format 11H
2520  * @param subevent_code
2521  * @param status
2522  * @param con_handle
2523  */
2524 #define MESH_SUBEVENT_PROXY_CONNECTED                                                0x20
2525 
2526 /**
2527  * @format 1H
2528  * @param subevent_code
2529  * @param con_handle
2530  */
2531 #define MESH_SUBEVENT_PROXY_PDU_SENT                                                 0x21
2532 
2533 /**
2534  * @format 1H
2535  * @param subevent_code
2536  * @param con_handle
2537  */
2538 #define MESH_SUBEVENT_PROXY_DISCONNECTED                                             0x22
2539 
2540 /**
2541  * @format 1H
2542  * @param subevent_code
2543  * @param con_handle
2544  */
2545 #define MESH_SUBEVENT_MESSAGE_SENT                                                   0x23
2546 
2547 /**
2548  * @format 114411
2549  * @param subevent_code
2550  * @param element_index
2551  * @param model_identifier
2552  * @param state_identifier
2553  * @param reason
2554  * @param value
2555  */
2556 #define MESH_SUBEVENT_STATE_UPDATE_BOOL                                              0x24
2557 
2558 /**
2559  * @format 114412
2560  * @param subevent_code
2561  * @param element_index
2562  * @param model_identifier
2563  * @param state_identifier
2564  * @param reason
2565  * @param value
2566  */
2567 #define MESH_SUBEVENT_STATE_UPDATE_INT16                                              0x25
2568 
2569 // Mesh Client Events
2570 /**
2571  * @format 11442
2572  * @param subevent_code
2573  * @param element_index
2574  * @param model_identifier
2575  * @param opcode
2576  * @param dest
2577  */
2578 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED                                        0x30
2579 
2580 /**
2581  * @format 114114
2582  * @param subevent_code
2583  * @param element_index
2584  * @param model_identifier
2585  * @param present_value
2586  * @param target_value       // optinal, if value > 0, than remaining_time_ms must be read
2587  * @param remaining_time_ms
2588  */
2589 #define MESH_SUBEVENT_GENERIC_ON_OFF_STATUS                                           0x31
2590 
2591 /**
2592  * @format 114224
2593  * @param subevent_code
2594  * @param element_index
2595  * @param model_identifier
2596  * @param present_value
2597  * @param target_value       // optinal, if value > 0, than remaining_time_ms must be read
2598  * @param remaining_time_ms
2599  */
2600 #define MESH_SUBEVENT_GENERIC_LEVEL_STATUS                                           0x32
2601 
2602 
2603 /**
2604  * @format 112
2605  * @param subevent_code
2606  * @param element_index
2607  * @param company_id
2608  */
2609 #define MESH_SUBEVENT_HEALTH_CLEAR_REGISTERED_FAULTS                                 0x33
2610 
2611 /**
2612  * @format 11422221
2613  * @param subevent_code
2614  * @param element_index
2615  * @param model_identifier
2616  * @param dest
2617  * @param netkey_index
2618  * @param appkey_index
2619  * @param company_id
2620  * @param test_id
2621  */
2622 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST                                            0x34
2623 
2624 /**
2625  * @format 111
2626  * @param subevent_code
2627  * @param element_index
2628  * @param fast_period_divisor
2629  */
2630 #define MESH_SUBEVENT_HEALTH_FAST_PERIOD_DIVISOR_CHANGED                             0x35
2631 
2632 /**
2633  * @format 11
2634  * @param subevent_code
2635  * @param element_index
2636  */
2637 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED                                 0x36
2638 
2639 #endif
2640