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