xref: /btstack/src/btstack_defines.h (revision ab2c6ae4b737d5e801d3defe4117331eb244ebb7)
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 #define UNUSED(x) (void)(sizeof(x))
52 
53 // TYPES
54 
55 // packet handler
56 typedef void (*btstack_packet_handler_t) (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size);
57 
58 // packet callback supporting multiple registrations
59 typedef struct {
60     btstack_linked_item_t    item;
61     btstack_packet_handler_t callback;
62 } btstack_packet_callback_registration_t;
63 
64 // context callback supporting multiple registrations
65 typedef struct {
66   btstack_linked_item_t * item;
67   void (*callback)(void * context);
68   void * context;
69 } btstack_context_callback_registration_t;
70 
71 /**
72  * @brief 128 bit key used with AES128 in Security Manager
73  */
74 typedef uint8_t sm_key_t[16];
75 
76 // DEFINES
77 
78 #define DAEMON_EVENT_PACKET     0x05
79 
80 // L2CAP data
81 #define L2CAP_DATA_PACKET       0x06
82 
83 // RFCOMM data
84 #define RFCOMM_DATA_PACKET      0x07
85 
86 // Attribute protocol data
87 #define ATT_DATA_PACKET         0x08
88 
89 // Security Manager protocol data
90 #define SM_DATA_PACKET          0x09
91 
92 // SDP query result - only used by daemon
93 // format: type (8), record_id (16), attribute_id (16), attribute_length (16), attribute_value (max 1k)
94 #define SDP_CLIENT_PACKET       0x0a
95 
96 // BNEP data
97 #define BNEP_DATA_PACKET        0x0b
98 
99 // Unicast Connectionless Data
100 #define UCD_DATA_PACKET         0x0c
101 
102 // GOEP data
103 #define GOEP_DATA_PACKET        0x0d
104 
105 // PBAP data
106 #define PBAP_DATA_PACKET        0x0e
107 
108 // debug log messages
109 #define LOG_MESSAGE_PACKET      0xfc
110 
111 
112 // ERRORS
113 
114 // last error code in 2.1 is 0x38 - we start with 0x50 for BTstack errors
115 #define BTSTACK_CONNECTION_TO_BTDAEMON_FAILED              0x50
116 #define BTSTACK_ACTIVATION_FAILED_SYSTEM_BLUETOOTH         0x51
117 #define BTSTACK_ACTIVATION_POWERON_FAILED                  0x52
118 #define BTSTACK_ACTIVATION_FAILED_UNKNOWN                  0x53
119 #define BTSTACK_NOT_ACTIVATED                              0x54
120 #define BTSTACK_BUSY                                       0x55
121 #define BTSTACK_MEMORY_ALLOC_FAILED                        0x56
122 #define BTSTACK_ACL_BUFFERS_FULL                           0x57
123 
124 // l2cap errors - enumeration by the command that created them
125 #define L2CAP_COMMAND_REJECT_REASON_COMMAND_NOT_UNDERSTOOD 0x60
126 #define L2CAP_COMMAND_REJECT_REASON_SIGNALING_MTU_EXCEEDED 0x61
127 #define L2CAP_COMMAND_REJECT_REASON_INVALID_CID_IN_REQUEST 0x62
128 
129 #define L2CAP_CONNECTION_RESPONSE_RESULT_SUCCESSFUL        0x63
130 #define L2CAP_CONNECTION_RESPONSE_RESULT_PENDING           0x64
131 #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_PSM       0x65
132 #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_SECURITY  0x66
133 #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_RESOURCES 0x67
134 #define L2CAP_CONNECTION_RESPONSE_RESULT_RTX_TIMEOUT       0x68
135 
136 #define L2CAP_SERVICE_ALREADY_REGISTERED                   0x69
137 #define L2CAP_DATA_LEN_EXCEEDS_REMOTE_MTU                  0x6A
138 #define L2CAP_SERVICE_DOES_NOT_EXIST                       0x6B
139 #define L2CAP_LOCAL_CID_DOES_NOT_EXIST                     0x6C
140 
141 #define RFCOMM_MULTIPLEXER_STOPPED                         0x70
142 #define RFCOMM_CHANNEL_ALREADY_REGISTERED                  0x71
143 #define RFCOMM_NO_OUTGOING_CREDITS                         0x72
144 #define RFCOMM_AGGREGATE_FLOW_OFF                          0x73
145 #define RFCOMM_DATA_LEN_EXCEEDS_MTU                        0x74
146 
147 #define SDP_HANDLE_ALREADY_REGISTERED                      0x80
148 #define SDP_QUERY_INCOMPLETE                               0x81
149 #define SDP_SERVICE_NOT_FOUND                              0x82
150 #define SDP_HANDLE_INVALID                                 0x83
151 #define SDP_QUERY_BUSY                                     0x84
152 
153 #define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS            0x90
154 #define ATT_HANDLE_VALUE_INDICATION_TIMEOUT                0x91
155 
156 #define GATT_CLIENT_NOT_CONNECTED                          0x93
157 #define GATT_CLIENT_BUSY                                   0x94
158 #define GATT_CLIENT_IN_WRONG_STATE                         0x95
159 #define GATT_CLIENT_DIFFERENT_CONTEXT_FOR_ADDRESS_ALREADY_EXISTS 0x96
160 #define GATT_CLIENT_VALUE_TOO_LONG                         0x97
161 #define GATT_CLIENT_CHARACTERISTIC_NOTIFICATION_NOT_SUPPORTED 0x98
162 #define GATT_CLIENT_CHARACTERISTIC_INDICATION_NOT_SUPPORTED   0x99
163 
164 #define BNEP_SERVICE_ALREADY_REGISTERED                    0xA0
165 #define BNEP_CHANNEL_NOT_CONNECTED                         0xA1
166 #define BNEP_DATA_LEN_EXCEEDS_MTU                          0xA2
167 
168 // DAEMON COMMANDS
169 
170 #define OGF_BTSTACK 0x3d
171 
172 // cmds for BTstack
173 // get state: @returns HCI_STATE
174 #define BTSTACK_GET_STATE                                  0x01
175 
176 // set power mode: param HCI_POWER_MODE
177 #define BTSTACK_SET_POWER_MODE                             0x02
178 
179 // set capture mode: param on
180 #define BTSTACK_SET_ACL_CAPTURE_MODE                       0x03
181 
182 // get BTstack version
183 #define BTSTACK_GET_VERSION                                0x04
184 
185 // get system Bluetooth state
186 #define BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED               0x05
187 
188 // set system Bluetooth state
189 #define BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED               0x06
190 
191 // enable inquiry scan for this client
192 #define BTSTACK_SET_DISCOVERABLE                           0x07
193 
194 // set global Bluetooth state
195 #define BTSTACK_SET_BLUETOOTH_ENABLED                      0x08
196 
197 // create l2cap channel: param bd_addr(48), psm (16)
198 #define L2CAP_CREATE_CHANNEL                               0x20
199 
200 // disconnect l2cap disconnect, param channel(16), reason(8)
201 #define L2CAP_DISCONNECT                                   0x21
202 
203 // register l2cap service: param psm(16), mtu (16)
204 #define L2CAP_REGISTER_SERVICE                             0x22
205 
206 // unregister l2cap disconnect, param psm(16)
207 #define L2CAP_UNREGISTER_SERVICE                           0x23
208 
209 // accept connection param bd_addr(48), dest cid (16)
210 #define L2CAP_ACCEPT_CONNECTION                            0x24
211 
212 // decline l2cap disconnect,param bd_addr(48), dest cid (16), reason(8)
213 #define L2CAP_DECLINE_CONNECTION                           0x25
214 
215 // create l2cap channel: param bd_addr(48), psm (16), mtu (16)
216 #define L2CAP_CREATE_CHANNEL_MTU                           0x26
217 
218 // register SDP Service Record: service record (size)
219 #define SDP_REGISTER_SERVICE_RECORD                        0x30
220 
221 // unregister SDP Service Record
222 #define SDP_UNREGISTER_SERVICE_RECORD                      0x31
223 
224 // Get remote RFCOMM services
225 #define SDP_CLIENT_QUERY_RFCOMM_SERVICES                   0x32
226 
227 // Get remote SDP services
228 #define SDP_CLIENT_QUERY_SERVICES                          0x33
229 
230 // RFCOMM "HCI" Commands
231 #define RFCOMM_CREATE_CHANNEL       0x40
232 #define RFCOMM_DISCONNECT     0x41
233 #define RFCOMM_REGISTER_SERVICE     0x42
234 #define RFCOMM_UNREGISTER_SERVICE   0x43
235 #define RFCOMM_ACCEPT_CONNECTION    0x44
236 #define RFCOMM_DECLINE_CONNECTION   0x45
237 #define RFCOMM_PERSISTENT_CHANNEL   0x46
238 #define RFCOMM_CREATE_CHANNEL_WITH_CREDITS   0x47
239 #define RFCOMM_REGISTER_SERVICE_WITH_CREDITS 0x48
240 #define RFCOMM_GRANT_CREDITS                 0x49
241 
242 // GAP Classic 0x50
243 #define GAP_DISCONNECT              0x50
244 
245 // GAP LE      0x60
246 #define GAP_LE_SCAN_START           0x60
247 #define GAP_LE_SCAN_STOP            0x61
248 #define GAP_LE_CONNECT              0x62
249 #define GAP_LE_CONNECT_CANCEL       0x63
250 #define GAP_LE_SET_SCAN_PARAMETERS  0x64
251 
252 // GATT (Client) 0x70
253 #define GATT_DISCOVER_ALL_PRIMARY_SERVICES                       0x70
254 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID16                 0x71
255 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID128                0x72
256 #define GATT_FIND_INCLUDED_SERVICES_FOR_SERVICE                  0x73
257 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE                0x74
258 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID128     0x75
259 #define GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS                 0x76
260 #define GATT_READ_VALUE_OF_CHARACTERISTIC                        0x77
261 #define GATT_READ_LONG_VALUE_OF_CHARACTERISTIC                   0x78
262 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC_WITHOUT_RESPONSE      0x79
263 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC                       0x7A
264 #define GATT_WRITE_LONG_VALUE_OF_CHARACTERISTIC                  0x7B
265 #define GATT_RELIABLE_WRITE_LONG_VALUE_OF_CHARACTERISTIC         0x7C
266 #define GATT_READ_CHARACTERISTIC_DESCRIPTOR                      0X7D
267 #define GATT_READ_LONG_CHARACTERISTIC_DESCRIPTOR                 0X7E
268 #define GATT_WRITE_CHARACTERISTIC_DESCRIPTOR                     0X7F
269 #define GATT_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR                0X80
270 #define GATT_WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION           0X81
271 #define GATT_GET_MTU                                             0x82
272 
273 // OBEX ERRORS
274 #define OBEX_UNKNOWN_ERROR       0x90
275 #define OBEX_CONNECT_FAILED      0x91
276 #define OBEX_DISCONNECTED        0x92
277 #define OBEX_NOT_FOUND           0x93
278 
279 // EVENTS
280 
281 /**
282  * @format 1
283  * @param state
284  */
285 #define BTSTACK_EVENT_STATE                                0x60
286 
287 /**
288  * @format 1
289  * @param number_connections
290  */
291 #define BTSTACK_EVENT_NR_CONNECTIONS_CHANGED               0x61
292 
293 /**
294  * @format
295  */
296 #define BTSTACK_EVENT_POWERON_FAILED                       0x62
297 
298 /**
299  * @format 1
300  * @param discoverable
301  */
302 #define BTSTACK_EVENT_DISCOVERABLE_ENABLED                 0x66
303 
304 // Daemon Events
305 
306 /**
307  * @format 112
308  * @param major
309  * @param minor
310  @ @param revision
311  */
312 #define DAEMON_EVENT_VERSION                               0x63
313 
314 // data: system bluetooth on/off (bool)
315 /**
316  * @format 1
317  * param system_bluetooth_enabled
318  */
319 #define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED              0x64
320 
321 // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes)
322 
323 /*
324  * @format 1BT
325  * @param status == 0 to match read_remote_name_request
326  * @param address
327  * @param name
328  */
329 #define DAEMON_EVENT_REMOTE_NAME_CACHED                    0x65
330 
331 // internal - data: event(8)
332 #define DAEMON_EVENT_CONNECTION_OPENED                     0x67
333 
334 // internal - data: event(8)
335 #define DAEMON_EVENT_CONNECTION_CLOSED                     0x68
336 
337 // data: event(8), len(8), local_cid(16), credits(8)
338 #define DAEMON_EVENT_L2CAP_CREDITS                         0x74
339 
340 /**
341  * @format 12
342  * @param status
343  * @param psm
344  */
345 #define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED              0x75
346 
347 /**
348  * @format 21
349  * @param rfcomm_cid
350  * @param credits
351  */
352 #define DAEMON_EVENT_RFCOMM_CREDITS                        0x84
353 
354 /**
355  * @format 11
356  * @param status
357  * @param channel_id
358  */
359 #define DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED             0x85
360 
361 /**
362  * @format 11
363  * @param status
364  * @param server_channel_id
365  */
366 #define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL             0x86
367 
368 /**
369   * @format 14
370   * @param status
371   * @param service_record_handle
372   */
373 #define DAEMON_EVENT_SDP_SERVICE_REGISTERED                0x90
374 
375 
376 
377 // additional HCI events
378 
379 /**
380  * @brief Indicates HCI transport enters/exits Sleep mode
381  * @format 1
382  * @param active
383  */
384 #define HCI_EVENT_TRANSPORT_SLEEP_MODE                     0x69
385 
386 /**
387  * @brief Outgoing packet
388  */
389 #define HCI_EVENT_TRANSPORT_PACKET_SENT                    0x6E
390 
391 /**
392  * @format B
393  * @param handle
394  */
395 #define HCI_EVENT_SCO_CAN_SEND_NOW                         0x6F
396 
397 
398 // L2CAP EVENTS
399 
400 /**
401  * @format 1BH2222221
402  * @param status
403  * @param address
404  * @param handle
405  * @param psm
406  * @param local_cid
407  * @param remote_cid
408  * @param local_mtu
409  * @param remote_mtu
410  * @param flush_timeout
411  * @param incoming
412  */
413 #define L2CAP_EVENT_CHANNEL_OPENED                         0x70
414 
415 /*
416  * @format 2
417  * @param local_cid
418  */
419 #define L2CAP_EVENT_CHANNEL_CLOSED                         0x71
420 
421 /**
422  * @format BH222
423  * @param address
424  * @param handle
425  * @param psm
426  * @param local_cid
427  * @param remote_cid
428  */
429 #define L2CAP_EVENT_INCOMING_CONNECTION                    0x72
430 
431 // ??
432 // data: event(8), len(8), handle(16)
433 #define L2CAP_EVENT_TIMEOUT_CHECK                          0x73
434 
435 /**
436  * @format H2222
437  * @param handle
438  * @param interval_min
439  * @param interval_max
440  * @param latencey
441  * @param timeout_multiplier
442  */
443 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST    0x76
444 
445 // data: event(8), len(8), handle(16), result (16) (0 == ok, 1 == fail)
446  /**
447   * @format H2
448   * @param handle
449   * @param result
450   */
451 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE   0x77
452 
453 /**
454  * @format 2
455  * @param local_cid
456  */
457 #define L2CAP_EVENT_CAN_SEND_NOW                           0x78
458 
459 // LE Data Channels
460 
461 /**
462  * @format 1BH2222
463  * @param address_type
464  * @param address
465  * @param handle
466  * @param psm
467  * @param local_cid
468  * @param remote_cid
469  * @param remote_mtu
470  */
471 #define L2CAP_EVENT_LE_INCOMING_CONNECTION                 0x79
472 
473 /**
474  * @format 11BH122222
475  * @param status
476  * @param address_type
477  * @param address
478  * @param handle
479  * @param incoming
480  * @param psm
481  * @param local_cid
482  * @param remote_cid
483  * @param local_mtu
484  * @param remote_mtu
485  */
486 #define L2CAP_EVENT_LE_CHANNEL_OPENED                      0x7a
487 
488 /*
489  * @format 2
490  * @param local_cid
491  */
492 #define L2CAP_EVENT_LE_CHANNEL_CLOSED                      0x7b
493 
494 /*
495  * @format 2
496  * @param local_cid
497  */
498 #define L2CAP_EVENT_LE_CAN_SEND_NOW                        0x7c
499 
500 /*
501  * @format 2
502  * @param local_cid
503  */
504 #define L2CAP_EVENT_LE_PACKET_SENT                         0x7d
505 
506 
507 // RFCOMM EVENTS
508 
509 /**
510  * @format 1B21221
511  * @param status
512  * @param bd_addr
513  * @param con_handle
514  * @param server_channel
515  * @param rfcomm_cid
516  * @param max_frame_size
517  * @param incoming
518  */
519 #define RFCOMM_EVENT_CHANNEL_OPENED                        0x80
520 
521 /**
522  * @format 2
523  * @param rfcomm_cid
524  */
525 #define RFCOMM_EVENT_CHANNEL_CLOSED                        0x81
526 
527 /**
528  * @format B12
529  * @param bd_addr
530  * @param server_channel
531  * @param rfcomm_cid
532  */
533 #define RFCOMM_EVENT_INCOMING_CONNECTION                   0x82
534 
535 /**
536  * @format 21
537  * @param rfcomm_cid
538  * @param line_status
539  */
540 #define RFCOMM_EVENT_REMOTE_LINE_STATUS                    0x83
541 
542 /**
543  * @format 21
544  * @param rfcomm_cid
545  * @param modem_status
546  */
547 #define RFCOMM_EVENT_REMOTE_MODEM_STATUS                   0x87
548 
549  /**
550   * TODO: format for variable data 2?
551   * param rfcomm_cid
552   * param rpn_data
553   */
554 #define RFCOMM_EVENT_PORT_CONFIGURATION                    0x88
555 
556 /**
557  * @format 2
558  * @param rfcomm_cid
559  */
560 #define RFCOMM_EVENT_CAN_SEND_NOW                          0x89
561 
562 
563 /**
564  * @format 1
565  * @param status
566  */
567 #define SDP_EVENT_QUERY_COMPLETE                                 0x91
568 
569 /**
570  * @format 1T
571  * @param rfcomm_channel
572  * @param name
573  */
574 #define SDP_EVENT_QUERY_RFCOMM_SERVICE                           0x92
575 
576 /**
577  * @format 22221
578  * @param record_id
579  * @param attribute_id
580  * @param attribute_length
581  * @param data_offset
582  * @param data
583  */
584 #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE                           0x93
585 
586 /**
587  * @format 22LV
588  * @param record_id
589  * @param attribute_id
590  * @param attribute_length
591  * @param attribute_value
592  */
593 #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE                          0x94
594 
595 /**
596  * @format 224
597  * @param total_count
598  * @param record_index
599  * @param record_handle
600  * @note Not provided by daemon, only used for internal testing
601  */
602 #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE                    0x95
603 
604 /**
605  * @format H1
606  * @param handle
607  * @param status
608  */
609 #define GATT_EVENT_QUERY_COMPLETE                                0xA0
610 
611 /**
612  * @format HX
613  * @param handle
614  * @param service
615  */
616 #define GATT_EVENT_SERVICE_QUERY_RESULT                          0xA1
617 
618 /**
619  * @format HY
620  * @param handle
621  * @param characteristic
622  */
623 #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT                   0xA2
624 
625 /**
626  * @format H2X
627  * @param handle
628  * @param include_handle
629  * @param service
630  */
631 #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT                 0xA3
632 
633 /**
634  * @format HZ
635  * @param handle
636  * @param characteristic_descriptor
637  */
638 #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT   0xA4
639 
640 /**
641  * @format H2LV
642  * @param handle
643  * @param value_handle
644  * @param value_length
645  * @param value
646  */
647 #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT             0xA5
648 
649 /**
650  * @format H22LV
651  * @param handle
652  * @param value_handle
653  * @param value_offset
654  * @param value_length
655  * @param value
656  */
657 #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT        0xA6
658 
659 /**
660  * @format H2LV
661  * @param handle
662  * @param value_handle
663  * @param value_length
664  * @param value
665  */
666 #define GATT_EVENT_NOTIFICATION                                  0xA7
667 
668 /**
669  * @format H2LV
670  * @param handle
671  * @param value_handle
672  * @param value_length
673  * @param value
674  */
675 #define GATT_EVENT_INDICATION                                    0xA8
676 
677 /**
678  * @format H2LV
679  * @param handle
680  * @param descriptor_handle
681  * @param descriptor_length
682  * @param descriptor
683  */
684 #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT        0xA9
685 
686 /**
687  * @format H2LV
688  * @param handle
689  * @param descriptor_offset
690  * @param descriptor_length
691  * @param descriptor
692  */
693 #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT   0xAA
694 
695 /**
696  * @format H2
697  * @param handle
698  * @param MTU
699  */
700 #define GATT_EVENT_MTU                                           0xAB
701 
702 /**
703  * @format H2
704  * @param handle
705  * @param MTU
706  */
707 #define ATT_EVENT_MTU_EXCHANGE_COMPLETE                          0xB5
708 
709  /**
710   * @format 1H2
711   * @param status
712   * @param conn_handle
713   * @param attribute_handle
714   */
715 #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE               0xB6
716 
717 /**
718  * @format
719  */
720 #define ATT_EVENT_CAN_SEND_NOW                                   0xB7
721 
722 // TODO: daemon only event
723 
724 /**
725  * @format 12
726  * @param status
727  * @param service_uuid
728  */
729  #define BNEP_EVENT_SERVICE_REGISTERED                      0xC0
730 
731 /**
732  * @format 12222B
733  * @param status
734  * @param bnep_cid
735  * @param source_uuid
736  * @param destination_uuid
737  * @param mtu
738  * @param remote_address
739  */
740  #define BNEP_EVENT_CHANNEL_OPENED                   0xC1
741 
742 /**
743  * @format 222B
744  * @param bnep_cid
745  * @param source_uuid
746  * @param destination_uuid
747  * @param remote_address
748  */
749  #define BNEP_EVENT_CHANNEL_CLOSED                          0xC2
750 
751 /**
752  * @format 222B1
753  * @param bnep_cid
754  * @param source_uuid
755  * @param destination_uuid
756  * @param remote_address
757  * @param channel_state
758  */
759 #define BNEP_EVENT_CHANNEL_TIMEOUT                         0xC3
760 
761 /**
762  * @format 222B
763  * @param bnep_cid
764  * @param source_uuid
765  * @param destination_uuid
766  * @param remote_address
767  */
768  #define BNEP_EVENT_CAN_SEND_NOW                           0xC4
769 
770  /**
771   * @format H1B
772   * @param handle
773   * @param addr_type
774   * @param address
775   */
776 #define SM_EVENT_JUST_WORKS_REQUEST                              0xD0
777 
778  /**
779   * @format H1B
780   * @param handle
781   * @param addr_type
782   * @param address
783   */
784 #define SM_EVENT_JUST_WORKS_CANCEL                               0xD1
785 
786  /**
787   * @format H1B4
788   * @param handle
789   * @param addr_type
790   * @param address
791   * @param passkey
792   */
793 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER                          0xD2
794 
795  /**
796   * @format H1B
797   * @param handle
798   * @param addr_type
799   * @param address
800   */
801 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL                          0xD3
802 
803  /**
804   * @format H1B
805   * @param handle
806   * @param addr_type
807   * @param address
808   */
809 #define SM_EVENT_PASSKEY_INPUT_NUMBER                            0xD4
810 
811  /**
812   * @format H1B
813   * @param handle
814   * @param addr_type
815   * @param address
816   */
817 #define SM_EVENT_PASSKEY_INPUT_CANCEL                            0xD5
818 
819  /**
820   * @format H1B4
821   * @param handle
822   * @param addr_type
823   * @param address
824   * @param passkey
825   */
826 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST                      0xD6
827 
828  /**
829   * @format H1B
830   * @param handle
831   * @param addr_type
832   * @param address
833   */
834 #define SM_EVENT_NUMERIC_COMPARISON_CANCEL                       0xD7
835 
836  /**
837   * @format H1B
838   * @param handle
839   * @param addr_type
840   * @param address
841   */
842 #define SM_EVENT_IDENTITY_RESOLVING_STARTED                      0xD8
843 
844  /**
845   * @format H1B
846   * @param handle
847   * @param addr_type
848   * @param address
849   */
850 #define SM_EVENT_IDENTITY_RESOLVING_FAILED                       0xD9
851 
852  /**
853   * @brief Identify resolving succeeded
854   *
855   * @format H1B1B2
856   * @param handle
857   * @param addr_type
858   * @param address
859   * @param identity_addr_type
860   * @param identity_address
861   * @param index_internal
862   *
863   */
864 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED                    0xDA
865 
866  /**
867   * @format H1B
868   * @param handle
869   * @param addr_type
870   * @param address
871   */
872 #define SM_EVENT_AUTHORIZATION_REQUEST                           0xDB
873 
874  /**
875   * @format H1B1
876   * @param handle
877   * @param addr_type
878   * @param address
879   * @param authorization_result
880   */
881 #define SM_EVENT_AUTHORIZATION_RESULT                            0xDC
882 
883  /**
884   * @format H1
885   * @param handle
886   * @param action see SM_KEYPRESS_*
887   */
888 #define SM_EVENT_KEYPRESS_NOTIFICATION                           0xDD
889 
890  /**
891   * @brief Emitted during pairing to inform app about address used as identity
892   *
893   * @format H1B1B
894   * @param handle
895   * @param addr_type
896   * @param address
897   * @param identity_addr_type
898   * @param identity_address
899   */
900 #define SM_EVENT_IDENTITY_CREATED                                0xDE
901 
902 // GAP
903 
904 /**
905  * @format H1
906  * @param handle
907  * @param security_level
908  */
909 #define GAP_EVENT_SECURITY_LEVEL                                 0xE0
910 
911 /**
912  * @format 1B
913  * @param status
914  * @param address
915  */
916 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED                    0xE1
917 
918 /**
919  * @format 11B1JV
920  * @param advertising_event_type
921  * @param address_type
922  * @param address
923  * @param rssi
924  * @param data_length
925  * @param data
926  */
927 #define GAP_EVENT_ADVERTISING_REPORT                          0xE2
928 
929 
930 // Meta Events, see below for sub events
931 #define HCI_EVENT_HSP_META                                 0xE8
932 #define HCI_EVENT_HFP_META                                 0xE9
933 #define HCI_EVENT_ANCS_META                                0xEA
934 #define HCI_EVENT_AVDTP_META                               0xEB
935 #define HCI_EVENT_AVRCP_META                               0xEC
936 #define HCI_EVENT_GOEP_META                                0xED
937 #define HCI_EVENT_PBAP_META                                0xEE
938 
939 // Potential other meta groups
940  // #define HCI_EVENT_BNEP_META                                0xxx
941 // #define HCI_EVENT_GAP_META                                 0xxx
942 // #define HCI_EVENT_GATT_META                                0xxx
943 // #define HCI_EVENT_PAN_META                                 0xxx
944 // #define HCI_EVENT_SDP_META                                 0xxx
945 // #define HCI_EVENT_SM_META                                  0xxx
946 
947 
948 /** HSP Subevent */
949 
950 /**
951  * @format 11
952  * @param subevent_code
953  * @param status 0 == OK
954  */
955 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE             0x01
956 
957 /**
958  * @format 11
959  * @param subevent_code
960  * @param status 0 == OK
961  */
962 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE           0x02
963 
964 
965 /**
966  * @format 11H
967  * @param subevent_code
968  * @param status 0 == OK
969  * @param handle
970  */
971 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE             0x03
972 
973 /**
974  * @format 11
975  * @param subevent_code
976  * @param status 0 == OK
977  */
978 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE          0x04
979 
980 /**
981  * @format 1
982  * @param subevent_code
983  */
984 #define HSP_SUBEVENT_RING                                  0x05
985 
986 /**
987  * @format 11
988  * @param subevent_code
989  * @param gain Valid range: [0,15]
990  */
991 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED               0x06
992 
993 /**
994  * @format 11
995  * @param subevent_code
996  * @param gain Valid range: [0,15]
997  */
998 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED                  0x07
999 
1000 /**
1001  * @format 1JV
1002  * @param subevent_code
1003  * @param value_length
1004  * @param value
1005  */
1006 #define HSP_SUBEVENT_HS_COMMAND                            0x08
1007 
1008 /**
1009  * @format 1JV
1010  * @param subevent_code
1011  * @param value_length
1012  * @param value
1013  */
1014 #define HSP_SUBEVENT_AG_INDICATION                         0x09
1015 
1016 
1017 /** HFP Subevent */
1018 
1019 /**
1020  * @format 11HB
1021  * @param subevent_code
1022  * @param status 0 == OK
1023  * @param con_handle
1024  * @param bd_addr
1025  */
1026 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED  0x01
1027 
1028 /**
1029  * @format 1
1030  * @param subevent_code
1031  */
1032 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED     0x02
1033 
1034 /**
1035  * @format 11HB1
1036  * @param subevent_code
1037  * @param status 0 == OK
1038  * @param handle
1039  * @param bd_addr
1040  * @param negotiated_codec
1041  */
1042 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED          0x03
1043 
1044 /**
1045  * @format 1
1046  * @param subevent_code
1047  */
1048 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED             0x04
1049 
1050 /**
1051  * @format 11
1052  * @param subevent_code
1053  * @param status 0 == OK
1054  */
1055 #define HFP_SUBEVENT_COMPLETE                              0x05
1056 
1057 /**
1058  * @format 111T
1059  * @param subevent_code
1060  * @param indicator_index
1061  * @param indicator_status
1062  * @param indicator_name
1063  */
1064 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED           0x06
1065 
1066 /**
1067  * @format 111T
1068  * @param subevent_code
1069  * @param network_operator_mode
1070  * @param network_operator_format
1071  * @param network_operator_name
1072  */
1073 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED              0x07
1074 
1075 /**
1076  * @format 11
1077  * @param subevent_code
1078  * @param error
1079  */
1080 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR             0x08
1081 
1082 /**
1083  * @format 1
1084  * @param subevent_code
1085  */
1086 #define HFP_SUBEVENT_START_RINGINIG                           0x0A
1087 
1088 /**
1089  * @format 1
1090  * @param subevent_code
1091  */
1092 #define HFP_SUBEVENT_STOP_RINGINIG                            0x0B
1093 
1094 /**
1095  * @format 1
1096  * @param subevent_code
1097  */
1098 #define HFP_SUBEVENT_CALL_TERMINATED                          0x0C
1099 
1100 /**
1101  * @format 1T
1102  * @param subevent_code
1103  * @param number
1104  */
1105 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER                   0x0D
1106 
1107 /**
1108  * @format 1
1109  * @param subevent_code
1110  */
1111 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG               0x0E
1112 
1113 /**
1114  * @format 1T
1115  * @param subevent_code
1116  * @param number
1117  */
1118 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG                     0x0F
1119 
1120 /**
1121  * @format 1T
1122  * @param subevent_code
1123  * @param dtmf code
1124  */
1125 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES                      0x10
1126 
1127 /**
1128  * @format 1
1129  * @param subevent_code
1130  */
1131  #define HFP_SUBEVENT_CALL_ANSWERED                            0x11
1132 
1133 /**
1134  * @format 1
1135  * @param subevent_code
1136  */
1137 #define HFP_SUBEVENT_CONFERENCE_CALL                          0x12
1138 
1139 /**
1140  * @format 1
1141  * @param subevent_code
1142  */
1143 #define HFP_SUBEVENT_RING                                     0x13
1144 
1145 /**
1146  * @format 111
1147  * @param subevent_code
1148  * @param status
1149  * @param gain
1150  */
1151  #define HFP_SUBEVENT_SPEAKER_VOLUME                           0x14
1152 
1153 /**
1154  * @format 111
1155  * @param subevent_code
1156  * @param status
1157  * @param gain
1158  */
1159 #define HFP_SUBEVENT_MICROPHONE_VOLUME                        0x15
1160 
1161 /**
1162  * @format 11T
1163  * @param subevent_code
1164  * @param type
1165  * @param number
1166  */
1167 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION                0x16
1168 
1169 /**
1170  * @format 11T
1171  * @param subevent_code
1172  * @param type
1173  * @param number
1174  */
1175 #define HFP_SUBEVENT_CALLING_LINE_INDETIFICATION_NOTIFICATION 0x17
1176 
1177 /**
1178  * @format 111111T
1179  * @param subevent_code
1180  * @param clcc_idx
1181  * @param clcc_dir
1182  * @param clcc_status
1183  * @param clcc_mpty
1184  * @param bnip_type
1185  * @param bnip_number
1186  */
1187 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS                     0x18
1188 
1189 /**
1190  * @format 111T
1191  * @param subevent_code
1192  * @param status
1193  * @param bnip_type
1194  * @param bnip_number
1195  */
1196  #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION            0x19
1197 
1198 /**
1199  * @format 1T
1200  * @param subevent_code
1201  * @param value
1202  */
1203 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS                 0x1A
1204 
1205 // ANCS Client
1206 
1207 /**
1208  * @format 1H
1209  * @param subevent_code
1210  * @param handle
1211  */
1212 #define ANCS_SUBEVENT_CLIENT_CONNECTED                              0xF0
1213 
1214 /**
1215  * @format 1H2T
1216  * @param subevent_code
1217  * @param handle
1218  * @param attribute_id
1219  * @param text
1220  */
1221 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION                           0xF1
1222 
1223 /**
1224  * @format 1H
1225  * @param subevent_code
1226  * @param handle
1227  */
1228 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED                           0xF2
1229 
1230 
1231 /** AVDTP Subevent */
1232 
1233 /**
1234  * @format 1H11
1235  * @param subevent_code
1236  * @param con_handle
1237  * @param signal_identifier
1238  * @param status 0 == OK
1239  */
1240 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT                     0x01
1241 
1242 /**
1243  * @format 1H1
1244  * @param subevent_code
1245  * @param con_handle
1246  * @param signal_identifier
1247  */
1248 #define AVDTP_SUBEVENT_SIGNALING_REJECT                     0x02
1249 
1250 /**
1251  * @format 1H1
1252  * @param subevent_code
1253  * @param con_handle
1254  * @param signal_identifier
1255  */
1256 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT             0x03
1257 
1258 /**
1259  * @format 1HB1
1260  * @param subevent_code
1261  * @param con_handle
1262  * @param bd_addr
1263  * @param status 0 == OK
1264  */
1265 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED     0x04
1266 
1267 /**
1268  * @format 1H
1269  * @param subevent_code
1270  * @param con_handle
1271  */
1272 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED        0x05
1273 
1274 /**
1275  * @format 1H1111
1276  * @param subevent_code
1277  * @param handle
1278  * @param seid        0x01 – 0x3E
1279  * @param in_use      0-not in use, 1-in use
1280  * @param media_type  0-audio, 1-video, 2-multimedia
1281  * @param sep_type    0-source, 1-sink
1282  */
1283 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND                  0x06
1284 
1285 /**
1286  * @format 1H11111111
1287  * @param subevent_code
1288  * @param con_handle
1289  * @param media_type
1290  * @param sampling_frequency_bitmap
1291  * @param channel_mode_bitmap
1292  * @param block_length_bitmap
1293  * @param subbands_bitmap
1294  * @param allocation_method_bitmap
1295  * @param min_bitpool_value
1296  * @param max_bitpool_value
1297  */
1298 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY          0x07
1299 
1300 /**
1301  * @format 1H12LV
1302  * @param subevent_code
1303  * @param con_handle
1304  * @param media_type
1305  * @param media_codec_type
1306  * @param media_codec_information_len
1307  * @param media_codec_information
1308  */
1309 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY        0x08
1310 
1311 /**
1312  * @format 1H1121111111
1313  * @param subevent_code
1314  * @param con_handle
1315  * @param reconfigure
1316  * @param media_type
1317  * @param sampling_frequency
1318  * @param channel_mode
1319  * @param num_channels
1320  * @param block_length
1321  * @param subbands
1322  * @param allocation_method
1323  * @param min_bitpool_value
1324  * @param max_bitpool_value
1325  */
1326 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION        0x09
1327 
1328 /**
1329  * @format 1H112LV
1330  * @param subevent_code
1331  * @param con_handle
1332  * @param reconfigure
1333  * @param media_type
1334  * @param media_codec_type
1335  * @param media_codec_information_len
1336  * @param media_codec_information
1337  */
1338 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION        0x0A
1339 
1340 /**
1341  * @format 1H1
1342  * @param subevent_code
1343  * @param con_handle
1344  * @param status 0 == OK
1345  */
1346 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED     0x0B
1347 
1348 /**
1349  * @format 1H
1350  * @param subevent_code
1351  * @param con_handle
1352  */
1353 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED        0x0C
1354 
1355 
1356 
1357 /** AVRCP Subevent */
1358 
1359 /**
1360  * @format 1H12B
1361  * @param subevent_code
1362  * @param con_handle
1363  * @param status 0 == OK
1364  * @param local_cid
1365  * @param bd_addr
1366  */
1367 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED                           0x01
1368 
1369 /**
1370  * @format 1H
1371  * @param subevent_code
1372  * @param con_handle
1373  */
1374 #define AVRCP_SUBEVENT_CONNECTION_RELEASED                              0x02
1375 
1376 /**
1377  * @format 1H1114JVJVJVJV
1378  * @param subevent_code
1379  * @param con_handle
1380  * @param status
1381  * @param track
1382  * @param total_tracks
1383  * @param song_length in ms
1384  * @param title_len
1385  * @param title
1386  * @param artist_len
1387  * @param artist
1388  * @param album_len
1389  * @param album
1390  * @param genre_len
1391  * @param genre
1392  */
1393 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO                                 0x03
1394 
1395 /**
1396  * @format 1H111
1397  * @param subevent_code
1398  * @param con_handle
1399  * @param status
1400  * @param repeat_mode
1401  * @param shuffle_mode
1402  */
1403 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE                          0x04
1404 
1405 /**
1406  * @format 1H1441
1407  * @param subevent_code
1408  * @param con_handle
1409  * @param status
1410  * @param song_length
1411  * @param song_position
1412  * @param play_status
1413  */
1414  #define AVRCP_SUBEVENT_PLAY_STATUS                                     0x05
1415 
1416 /**
1417  * @format 1H11
1418  * @param subevent_code
1419  * @param con_handle
1420  * @param status
1421  * @param playback_status
1422  */
1423 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED             0x06
1424 
1425 /**
1426  * @format 1H11
1427  * @param subevent_code
1428  * @param con_handle
1429  * @param status
1430  * @param track_status
1431  */
1432 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED                       0x07
1433 
1434 /**
1435  * @format 1H1
1436  * @param subevent_code
1437  * @param con_handle
1438  * @param status
1439  */
1440 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED          0x08
1441 
1442 /**
1443  * @format 1H1
1444  * @param subevent_code
1445  * @param con_handle
1446  * @param status
1447  */
1448 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED            0x09
1449 
1450 /**
1451  * @format 1H11
1452  * @param subevent_code
1453  * @param con_handle
1454  * @param status
1455  * @param absolute_volume
1456  */
1457 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED                       0x0A
1458 
1459 /**
1460  * @format 1H11
1461  * @param subevent_code
1462  * @param con_handle
1463  * @param status
1464  * @param absolute_volume
1465  */
1466 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE                      0x0B
1467 
1468 /**
1469  * @format 1H11
1470  * @param subevent_code
1471  * @param con_handle
1472  * @param status
1473  * @param notification_id
1474  */
1475 #define AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE                       0x0C
1476 
1477 /**
1478  * @format 1H11
1479  * @param subevent_code
1480  * @param con_handle
1481  * @param status
1482  * @param operation_id
1483  */
1484 #define AVRCP_SUBEVENT_OPERATION_START                                    0x0D
1485 
1486 /**
1487  * @format 1H11
1488  * @param subevent_code
1489  * @param con_handle
1490  * @param status
1491  * @param operation_id
1492  */
1493 #define AVRCP_SUBEVENT_OPERATION_COMPLETE                                 0x0E
1494 
1495 /**
1496  * @format 1H1
1497  * @param subevent_code
1498  * @param con_handle
1499  * @param status
1500  */
1501 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE                   0x0F
1502 
1503 /**
1504  * @format 121BH1
1505  * @param subevent_code
1506  * @param goep_cid
1507  * @param status
1508  * @param bd_addr
1509  * @param con_handle
1510  * @param incoming
1511  */
1512 #define GOEP_SUBEVENT_CONNECTION_OPENED                                    0x01
1513 
1514 /**
1515  * @format 12
1516  * @param subevent_code
1517  * @param goep_cid
1518 */
1519 #define GOEP_SUBEVENT_CONNECTION_CLOSED                                    0x02
1520 
1521 /**
1522  * @format 12
1523  * @param subevent_code
1524  * @param goep_cid
1525 */
1526 #define GOEP_SUBEVENT_CAN_SEND_NOW                                         0x03
1527 
1528 /**
1529  * @format 121BH1
1530  * @param subevent_code
1531  * @param pbap_cid
1532  * @param status
1533  * @param bd_addr
1534  * @param con_handle
1535  * @param incoming
1536  */
1537 #define PBAP_SUBEVENT_CONNECTION_OPENED                                    0x01
1538 
1539 /**
1540  * @format 12
1541  * @param subevent_code
1542  * @param goep_cid
1543 */
1544 #define PBAP_SUBEVENT_CONNECTION_CLOSED                                    0x02
1545 
1546 /**
1547  * @format 121
1548  * @param subevent_code
1549  * @param goep_cid
1550  * @param status
1551  */
1552 #define PBAP_SUBEVENT_OPERATION_COMPLETED                                  0x03
1553 
1554 #endif
1555