xref: /btstack/src/btstack_defines.h (revision 2c737695fff31c350b381550fc4710ff75163fd3)
1941b3855SMatthias Ringwald /*
2941b3855SMatthias Ringwald  * Copyright (C) 2015 BlueKitchen GmbH
3941b3855SMatthias Ringwald  *
4941b3855SMatthias Ringwald  * Redistribution and use in source and binary forms, with or without
5941b3855SMatthias Ringwald  * modification, are permitted provided that the following conditions
6941b3855SMatthias Ringwald  * are met:
7941b3855SMatthias Ringwald  *
8941b3855SMatthias Ringwald  * 1. Redistributions of source code must retain the above copyright
9941b3855SMatthias Ringwald  *    notice, this list of conditions and the following disclaimer.
10941b3855SMatthias Ringwald  * 2. Redistributions in binary form must reproduce the above copyright
11941b3855SMatthias Ringwald  *    notice, this list of conditions and the following disclaimer in the
12941b3855SMatthias Ringwald  *    documentation and/or other materials provided with the distribution.
13941b3855SMatthias Ringwald  * 3. Neither the name of the copyright holders nor the names of
14941b3855SMatthias Ringwald  *    contributors may be used to endorse or promote products derived
15941b3855SMatthias Ringwald  *    from this software without specific prior written permission.
16941b3855SMatthias Ringwald  * 4. Any redistribution, use, or modification is done solely for
17941b3855SMatthias Ringwald  *    personal benefit and not for any commercial purpose or for
18941b3855SMatthias Ringwald  *    monetary gain.
19941b3855SMatthias Ringwald  *
20941b3855SMatthias Ringwald  * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS
21941b3855SMatthias Ringwald  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22941b3855SMatthias Ringwald  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23941b3855SMatthias Ringwald  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS
24941b3855SMatthias Ringwald  * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25941b3855SMatthias Ringwald  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26941b3855SMatthias Ringwald  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
27941b3855SMatthias Ringwald  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28941b3855SMatthias Ringwald  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29941b3855SMatthias Ringwald  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
30941b3855SMatthias Ringwald  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31941b3855SMatthias Ringwald  * SUCH DAMAGE.
32941b3855SMatthias Ringwald  *
33941b3855SMatthias Ringwald  * Please inquire about commercial licensing options at
34941b3855SMatthias Ringwald  * [email protected]
35941b3855SMatthias Ringwald  *
36941b3855SMatthias Ringwald  */
37941b3855SMatthias Ringwald 
38941b3855SMatthias Ringwald /*
39941b3855SMatthias Ringwald  * btstack-defines.h
40941b3855SMatthias Ringwald  *
41941b3855SMatthias Ringwald  * BTstack definitions, events, and error codes */
42941b3855SMatthias Ringwald 
43941b3855SMatthias Ringwald #ifndef __BTSTACK_DEFINES_H
44941b3855SMatthias Ringwald #define __BTSTACK_DEFINES_H
45941b3855SMatthias Ringwald 
468974fcd6SMatthias Ringwald #include <stdint.h>
478974fcd6SMatthias Ringwald #include "btstack_linked_list.h"
488974fcd6SMatthias Ringwald 
49f3963406SMatthias Ringwald 
50f3963406SMatthias Ringwald // UNUSED macro
51f3963406SMatthias Ringwald #define UNUSED(x) (void)(sizeof(x))
52f3963406SMatthias Ringwald 
538974fcd6SMatthias Ringwald // TYPES
548974fcd6SMatthias Ringwald 
558974fcd6SMatthias Ringwald // packet handler
568974fcd6SMatthias Ringwald typedef void (*btstack_packet_handler_t) (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size);
578974fcd6SMatthias Ringwald 
588974fcd6SMatthias Ringwald // packet callback supporting multiple registrations
598974fcd6SMatthias Ringwald typedef struct {
608974fcd6SMatthias Ringwald     btstack_linked_item_t    item;
618974fcd6SMatthias Ringwald     btstack_packet_handler_t callback;
628974fcd6SMatthias Ringwald } btstack_packet_callback_registration_t;
638974fcd6SMatthias Ringwald 
64bb38f057SMatthias Ringwald // context callback supporting multiple registrations
65bb38f057SMatthias Ringwald typedef struct {
66bb38f057SMatthias Ringwald   btstack_linked_item_t * item;
67bb38f057SMatthias Ringwald   void (*callback)(void * context);
68bb38f057SMatthias Ringwald   void * context;
69bb38f057SMatthias Ringwald } btstack_context_callback_registration_t;
70bb38f057SMatthias Ringwald 
71f7a05cdaSMatthias Ringwald /**
728974fcd6SMatthias Ringwald  * @brief 128 bit key used with AES128 in Security Manager
73f7a05cdaSMatthias Ringwald  */
748974fcd6SMatthias Ringwald typedef uint8_t sm_key_t[16];
75f7a05cdaSMatthias Ringwald 
76941b3855SMatthias Ringwald // DEFINES
77941b3855SMatthias Ringwald 
78941b3855SMatthias Ringwald #define DAEMON_EVENT_PACKET     0x05
79941b3855SMatthias Ringwald 
80941b3855SMatthias Ringwald // L2CAP data
81941b3855SMatthias Ringwald #define L2CAP_DATA_PACKET       0x06
82941b3855SMatthias Ringwald 
83941b3855SMatthias Ringwald // RFCOMM data
84941b3855SMatthias Ringwald #define RFCOMM_DATA_PACKET      0x07
85941b3855SMatthias Ringwald 
86941b3855SMatthias Ringwald // Attribute protocol data
87941b3855SMatthias Ringwald #define ATT_DATA_PACKET         0x08
88941b3855SMatthias Ringwald 
89941b3855SMatthias Ringwald // Security Manager protocol data
90941b3855SMatthias Ringwald #define SM_DATA_PACKET          0x09
91941b3855SMatthias Ringwald 
92941b3855SMatthias Ringwald // SDP query result
93941b3855SMatthias Ringwald // format: type (8), record_id (16), attribute_id (16), attribute_length (16), attribute_value (max 1k)
94941b3855SMatthias Ringwald #define SDP_CLIENT_PACKET       0x0a
95941b3855SMatthias Ringwald 
96941b3855SMatthias Ringwald // BNEP data
97941b3855SMatthias Ringwald #define BNEP_DATA_PACKET        0x0b
98941b3855SMatthias Ringwald 
99941b3855SMatthias Ringwald // Unicast Connectionless Data
100941b3855SMatthias Ringwald #define UCD_DATA_PACKET         0x0c
101941b3855SMatthias Ringwald 
102941b3855SMatthias Ringwald // debug log messages
103941b3855SMatthias Ringwald #define LOG_MESSAGE_PACKET      0xfc
104941b3855SMatthias Ringwald 
105941b3855SMatthias Ringwald 
106941b3855SMatthias Ringwald // ERRORS
107941b3855SMatthias Ringwald 
108941b3855SMatthias Ringwald // last error code in 2.1 is 0x38 - we start with 0x50 for BTstack errors
109941b3855SMatthias Ringwald #define BTSTACK_CONNECTION_TO_BTDAEMON_FAILED              0x50
110941b3855SMatthias Ringwald #define BTSTACK_ACTIVATION_FAILED_SYSTEM_BLUETOOTH         0x51
111941b3855SMatthias Ringwald #define BTSTACK_ACTIVATION_POWERON_FAILED                  0x52
112941b3855SMatthias Ringwald #define BTSTACK_ACTIVATION_FAILED_UNKNOWN                  0x53
113941b3855SMatthias Ringwald #define BTSTACK_NOT_ACTIVATED                              0x54
114941b3855SMatthias Ringwald #define BTSTACK_BUSY                                       0x55
115941b3855SMatthias Ringwald #define BTSTACK_MEMORY_ALLOC_FAILED                        0x56
116941b3855SMatthias Ringwald #define BTSTACK_ACL_BUFFERS_FULL                           0x57
117941b3855SMatthias Ringwald 
118941b3855SMatthias Ringwald // l2cap errors - enumeration by the command that created them
119941b3855SMatthias Ringwald #define L2CAP_COMMAND_REJECT_REASON_COMMAND_NOT_UNDERSTOOD 0x60
120941b3855SMatthias Ringwald #define L2CAP_COMMAND_REJECT_REASON_SIGNALING_MTU_EXCEEDED 0x61
121941b3855SMatthias Ringwald #define L2CAP_COMMAND_REJECT_REASON_INVALID_CID_IN_REQUEST 0x62
122941b3855SMatthias Ringwald 
123941b3855SMatthias Ringwald #define L2CAP_CONNECTION_RESPONSE_RESULT_SUCCESSFUL        0x63
124941b3855SMatthias Ringwald #define L2CAP_CONNECTION_RESPONSE_RESULT_PENDING           0x64
125941b3855SMatthias Ringwald #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_PSM       0x65
126941b3855SMatthias Ringwald #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_SECURITY  0x66
127941b3855SMatthias Ringwald #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_RESOURCES 0x67
128941b3855SMatthias Ringwald #define L2CAP_CONNECTION_RESPONSE_RESULT_RTX_TIMEOUT       0x68
129941b3855SMatthias Ringwald 
130941b3855SMatthias Ringwald #define L2CAP_SERVICE_ALREADY_REGISTERED                   0x69
131941b3855SMatthias Ringwald #define L2CAP_DATA_LEN_EXCEEDS_REMOTE_MTU                  0x6A
1327e8856ebSMatthias Ringwald #define L2CAP_SERVICE_DOES_NOT_EXIST                       0x6B
13394530c77SMatthias Ringwald #define L2CAP_LOCAL_CID_DOES_NOT_EXIST                     0x6C
134941b3855SMatthias Ringwald 
135941b3855SMatthias Ringwald #define RFCOMM_MULTIPLEXER_STOPPED                         0x70
136941b3855SMatthias Ringwald #define RFCOMM_CHANNEL_ALREADY_REGISTERED                  0x71
137941b3855SMatthias Ringwald #define RFCOMM_NO_OUTGOING_CREDITS                         0x72
138941b3855SMatthias Ringwald #define RFCOMM_AGGREGATE_FLOW_OFF                          0x73
139941b3855SMatthias Ringwald #define RFCOMM_DATA_LEN_EXCEEDS_MTU                        0x74
140941b3855SMatthias Ringwald 
141941b3855SMatthias Ringwald #define SDP_HANDLE_ALREADY_REGISTERED                      0x80
142941b3855SMatthias Ringwald #define SDP_QUERY_INCOMPLETE                               0x81
143941b3855SMatthias Ringwald #define SDP_SERVICE_NOT_FOUND                              0x82
144941b3855SMatthias Ringwald #define SDP_HANDLE_INVALID                                 0x83
145e5057641SMatthias Ringwald #define SDP_QUERY_BUSY                                     0x84
146941b3855SMatthias Ringwald 
147941b3855SMatthias Ringwald #define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS            0x90
148941b3855SMatthias Ringwald #define ATT_HANDLE_VALUE_INDICATION_TIMEOUT                0x91
149941b3855SMatthias Ringwald 
150941b3855SMatthias Ringwald #define GATT_CLIENT_NOT_CONNECTED                          0x93
151941b3855SMatthias Ringwald #define GATT_CLIENT_BUSY                                   0x94
152616edd56SMatthias Ringwald #define GATT_CLIENT_IN_WRONG_STATE                         0x95
153616edd56SMatthias Ringwald #define GATT_CLIENT_DIFFERENT_CONTEXT_FOR_ADDRESS_ALREADY_EXISTS 0x96
154616edd56SMatthias Ringwald #define GATT_CLIENT_VALUE_TOO_LONG                         0x97
155616edd56SMatthias Ringwald #define GATT_CLIENT_CHARACTERISTIC_NOTIFICATION_NOT_SUPPORTED 0x98
156616edd56SMatthias Ringwald #define GATT_CLIENT_CHARACTERISTIC_INDICATION_NOT_SUPPORTED   0x99
157941b3855SMatthias Ringwald 
158941b3855SMatthias Ringwald #define BNEP_SERVICE_ALREADY_REGISTERED                    0xA0
159941b3855SMatthias Ringwald #define BNEP_CHANNEL_NOT_CONNECTED                         0xA1
160941b3855SMatthias Ringwald #define BNEP_DATA_LEN_EXCEEDS_MTU                          0xA2
161941b3855SMatthias Ringwald 
16262c64df1SMatthias Ringwald 
16362c64df1SMatthias Ringwald 
16462c64df1SMatthias Ringwald // DAEMON COMMANDS
165b3f90e25SMatthias Ringwald 
166b3f90e25SMatthias Ringwald #define OGF_BTSTACK 0x3d
167b3f90e25SMatthias Ringwald 
168b3f90e25SMatthias Ringwald // cmds for BTstack
169b3f90e25SMatthias Ringwald // get state: @returns HCI_STATE
170b3f90e25SMatthias Ringwald #define BTSTACK_GET_STATE                                  0x01
171b3f90e25SMatthias Ringwald 
172045013feSMatthias Ringwald // set power mode: param HCI_POWER_MODE
173b3f90e25SMatthias Ringwald #define BTSTACK_SET_POWER_MODE                             0x02
174b3f90e25SMatthias Ringwald 
175045013feSMatthias Ringwald // set capture mode: param on
176b3f90e25SMatthias Ringwald #define BTSTACK_SET_ACL_CAPTURE_MODE                       0x03
177b3f90e25SMatthias Ringwald 
178b3f90e25SMatthias Ringwald // get BTstack version
179b3f90e25SMatthias Ringwald #define BTSTACK_GET_VERSION                                0x04
180b3f90e25SMatthias Ringwald 
181b3f90e25SMatthias Ringwald // get system Bluetooth state
182b3f90e25SMatthias Ringwald #define BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED               0x05
183b3f90e25SMatthias Ringwald 
184b3f90e25SMatthias Ringwald // set system Bluetooth state
185b3f90e25SMatthias Ringwald #define BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED               0x06
186b3f90e25SMatthias Ringwald 
187b3f90e25SMatthias Ringwald // enable inquiry scan for this client
188b3f90e25SMatthias Ringwald #define BTSTACK_SET_DISCOVERABLE                           0x07
189b3f90e25SMatthias Ringwald 
190b3f90e25SMatthias Ringwald // set global Bluetooth state
191b3f90e25SMatthias Ringwald #define BTSTACK_SET_BLUETOOTH_ENABLED                      0x08
192b3f90e25SMatthias Ringwald 
193045013feSMatthias Ringwald // create l2cap channel: param bd_addr(48), psm (16)
194b3f90e25SMatthias Ringwald #define L2CAP_CREATE_CHANNEL                               0x20
195b3f90e25SMatthias Ringwald 
196045013feSMatthias Ringwald // disconnect l2cap disconnect, param channel(16), reason(8)
197b3f90e25SMatthias Ringwald #define L2CAP_DISCONNECT                                   0x21
198b3f90e25SMatthias Ringwald 
199045013feSMatthias Ringwald // register l2cap service: param psm(16), mtu (16)
200b3f90e25SMatthias Ringwald #define L2CAP_REGISTER_SERVICE                             0x22
201b3f90e25SMatthias Ringwald 
202045013feSMatthias Ringwald // unregister l2cap disconnect, param psm(16)
203b3f90e25SMatthias Ringwald #define L2CAP_UNREGISTER_SERVICE                           0x23
204b3f90e25SMatthias Ringwald 
205045013feSMatthias Ringwald // accept connection param bd_addr(48), dest cid (16)
206b3f90e25SMatthias Ringwald #define L2CAP_ACCEPT_CONNECTION                            0x24
207b3f90e25SMatthias Ringwald 
208045013feSMatthias Ringwald // decline l2cap disconnect,param bd_addr(48), dest cid (16), reason(8)
209b3f90e25SMatthias Ringwald #define L2CAP_DECLINE_CONNECTION                           0x25
210b3f90e25SMatthias Ringwald 
211045013feSMatthias Ringwald // create l2cap channel: param bd_addr(48), psm (16), mtu (16)
212b3f90e25SMatthias Ringwald #define L2CAP_CREATE_CHANNEL_MTU                           0x26
213b3f90e25SMatthias Ringwald 
214b3f90e25SMatthias Ringwald // register SDP Service Record: service record (size)
215b3f90e25SMatthias Ringwald #define SDP_REGISTER_SERVICE_RECORD                        0x30
216b3f90e25SMatthias Ringwald 
217b3f90e25SMatthias Ringwald // unregister SDP Service Record
218b3f90e25SMatthias Ringwald #define SDP_UNREGISTER_SERVICE_RECORD                      0x31
219b3f90e25SMatthias Ringwald 
220b3f90e25SMatthias Ringwald // Get remote RFCOMM services
221b3f90e25SMatthias Ringwald #define SDP_CLIENT_QUERY_RFCOMM_SERVICES                   0x32
222b3f90e25SMatthias Ringwald 
223b3f90e25SMatthias Ringwald // Get remote SDP services
224b3f90e25SMatthias Ringwald #define SDP_CLIENT_QUERY_SERVICES                          0x33
225b3f90e25SMatthias Ringwald 
226b3f90e25SMatthias Ringwald // RFCOMM "HCI" Commands
227b3f90e25SMatthias Ringwald #define RFCOMM_CREATE_CHANNEL       0x40
228b3f90e25SMatthias Ringwald #define RFCOMM_DISCONNECT     0x41
229b3f90e25SMatthias Ringwald #define RFCOMM_REGISTER_SERVICE     0x42
230b3f90e25SMatthias Ringwald #define RFCOMM_UNREGISTER_SERVICE   0x43
231b3f90e25SMatthias Ringwald #define RFCOMM_ACCEPT_CONNECTION    0x44
232b3f90e25SMatthias Ringwald #define RFCOMM_DECLINE_CONNECTION   0x45
233b3f90e25SMatthias Ringwald #define RFCOMM_PERSISTENT_CHANNEL   0x46
234b3f90e25SMatthias Ringwald #define RFCOMM_CREATE_CHANNEL_WITH_CREDITS   0x47
235b3f90e25SMatthias Ringwald #define RFCOMM_REGISTER_SERVICE_WITH_CREDITS 0x48
236b3f90e25SMatthias Ringwald #define RFCOMM_GRANT_CREDITS                 0x49
237b3f90e25SMatthias Ringwald 
238b3f90e25SMatthias Ringwald // GAP Classic 0x50
239b3f90e25SMatthias Ringwald #define GAP_DISCONNECT              0x50
240b3f90e25SMatthias Ringwald 
241b3f90e25SMatthias Ringwald // GAP LE      0x60
242b3f90e25SMatthias Ringwald #define GAP_LE_SCAN_START           0x60
243b3f90e25SMatthias Ringwald #define GAP_LE_SCAN_STOP            0x61
244b3f90e25SMatthias Ringwald #define GAP_LE_CONNECT              0x62
245b3f90e25SMatthias Ringwald #define GAP_LE_CONNECT_CANCEL       0x63
246b3f90e25SMatthias Ringwald #define GAP_LE_SET_SCAN_PARAMETERS  0x64
247b3f90e25SMatthias Ringwald 
248b3f90e25SMatthias Ringwald // GATT (Client) 0x70
249b3f90e25SMatthias Ringwald #define GATT_DISCOVER_ALL_PRIMARY_SERVICES                       0x70
250b3f90e25SMatthias Ringwald #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID16                 0x71
251b3f90e25SMatthias Ringwald #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID128                0x72
252b3f90e25SMatthias Ringwald #define GATT_FIND_INCLUDED_SERVICES_FOR_SERVICE                  0x73
253b3f90e25SMatthias Ringwald #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE                0x74
254b3f90e25SMatthias Ringwald #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID128     0x75
255b3f90e25SMatthias Ringwald #define GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS                 0x76
256b3f90e25SMatthias Ringwald #define GATT_READ_VALUE_OF_CHARACTERISTIC                        0x77
257b3f90e25SMatthias Ringwald #define GATT_READ_LONG_VALUE_OF_CHARACTERISTIC                   0x78
258b3f90e25SMatthias Ringwald #define GATT_WRITE_VALUE_OF_CHARACTERISTIC_WITHOUT_RESPONSE      0x79
259b3f90e25SMatthias Ringwald #define GATT_WRITE_VALUE_OF_CHARACTERISTIC                       0x7A
260b3f90e25SMatthias Ringwald #define GATT_WRITE_LONG_VALUE_OF_CHARACTERISTIC                  0x7B
261b3f90e25SMatthias Ringwald #define GATT_RELIABLE_WRITE_LONG_VALUE_OF_CHARACTERISTIC         0x7C
262b3f90e25SMatthias Ringwald #define GATT_READ_CHARACTERISTIC_DESCRIPTOR                      0X7D
263b3f90e25SMatthias Ringwald #define GATT_READ_LONG_CHARACTERISTIC_DESCRIPTOR                 0X7E
264b3f90e25SMatthias Ringwald #define GATT_WRITE_CHARACTERISTIC_DESCRIPTOR                     0X7F
265b3f90e25SMatthias Ringwald #define GATT_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR                0X80
266b3f90e25SMatthias Ringwald #define GATT_WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION           0X81
267b3f90e25SMatthias Ringwald #define GATT_GET_MTU                                             0x82
268b3f90e25SMatthias Ringwald 
269941b3855SMatthias Ringwald 
27062c64df1SMatthias Ringwald 
271941b3855SMatthias Ringwald // EVENTS
272941b3855SMatthias Ringwald 
273941b3855SMatthias Ringwald /**
274941b3855SMatthias Ringwald  * @format 1
275941b3855SMatthias Ringwald  * @param state
276941b3855SMatthias Ringwald  */
277941b3855SMatthias Ringwald #define BTSTACK_EVENT_STATE                                0x60
278941b3855SMatthias Ringwald 
279941b3855SMatthias Ringwald // data: event(8), len(8), nr hci connections
280941b3855SMatthias Ringwald #define BTSTACK_EVENT_NR_CONNECTIONS_CHANGED               0x61
281941b3855SMatthias Ringwald 
282941b3855SMatthias Ringwald /**
283941b3855SMatthias Ringwald  * @format
284941b3855SMatthias Ringwald  */
285941b3855SMatthias Ringwald #define BTSTACK_EVENT_POWERON_FAILED                       0x62
286941b3855SMatthias Ringwald 
287941b3855SMatthias Ringwald /**
288827b1c43SMatthias Ringwald  * @format 1
289827b1c43SMatthias Ringwald  * @param discoverable
290827b1c43SMatthias Ringwald  */
291827b1c43SMatthias Ringwald #define BTSTACK_EVENT_DISCOVERABLE_ENABLED                 0x66
292827b1c43SMatthias Ringwald 
293827b1c43SMatthias Ringwald // Daemon Events
294827b1c43SMatthias Ringwald 
295827b1c43SMatthias Ringwald /**
296941b3855SMatthias Ringwald  * @format 112
297941b3855SMatthias Ringwald  * @param major
298941b3855SMatthias Ringwald  * @param minor
299941b3855SMatthias Ringwald  @ @param revision
300941b3855SMatthias Ringwald  */
301827b1c43SMatthias Ringwald #define DAEMON_EVENT_VERSION                               0x63
302941b3855SMatthias Ringwald 
303941b3855SMatthias Ringwald // data: system bluetooth on/off (bool)
304e2334cdcSMatthias Ringwald /**
305e2334cdcSMatthias Ringwald  * @format 1
306e2334cdcSMatthias Ringwald  * param system_bluetooth_enabled
307e2334cdcSMatthias Ringwald  */
308827b1c43SMatthias Ringwald #define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED              0x64
309941b3855SMatthias Ringwald 
310941b3855SMatthias Ringwald // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes)
311e2334cdcSMatthias Ringwald 
312e2334cdcSMatthias Ringwald /*
313e2334cdcSMatthias Ringwald  * @format 1BT
314e2334cdcSMatthias Ringwald  * @param status == 0 to match read_remote_name_request
315e2334cdcSMatthias Ringwald  * @param address
316e2334cdcSMatthias Ringwald  * @param name
317e2334cdcSMatthias Ringwald  */
318827b1c43SMatthias Ringwald #define DAEMON_EVENT_REMOTE_NAME_CACHED                    0x65
319941b3855SMatthias Ringwald 
32062c64df1SMatthias Ringwald // internal - data: event(8)
321e2334cdcSMatthias Ringwald #define DAEMON_EVENT_CONNECTION_OPENED                     0x67
322941b3855SMatthias Ringwald 
32362c64df1SMatthias Ringwald // internal - data: event(8)
324e2334cdcSMatthias Ringwald #define DAEMON_EVENT_CONNECTION_CLOSED                     0x68
325941b3855SMatthias Ringwald 
32662c64df1SMatthias Ringwald // data: event(8), len(8), local_cid(16), credits(8)
32762c64df1SMatthias Ringwald #define DAEMON_EVENT_L2CAP_CREDITS                         0x74
32862c64df1SMatthias Ringwald 
32962c64df1SMatthias Ringwald /**
33062c64df1SMatthias Ringwald  * @format 12
33162c64df1SMatthias Ringwald  * @param status
33262c64df1SMatthias Ringwald  * @param psm
33362c64df1SMatthias Ringwald  */
33462c64df1SMatthias Ringwald #define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED              0x75
33562c64df1SMatthias Ringwald 
33662c64df1SMatthias Ringwald /**
33762c64df1SMatthias Ringwald  * @format 21
33862c64df1SMatthias Ringwald  * @param rfcomm_cid
33962c64df1SMatthias Ringwald  * @param credits
34062c64df1SMatthias Ringwald  */
34162c64df1SMatthias Ringwald #define DAEMON_EVENT_RFCOMM_CREDITS                        0x84
34262c64df1SMatthias Ringwald 
34362c64df1SMatthias Ringwald /**
34462c64df1SMatthias Ringwald  * @format 11
34562c64df1SMatthias Ringwald  * @param status
34662c64df1SMatthias Ringwald  * @param channel_id
34762c64df1SMatthias Ringwald  */
348fea5a680SMatthias Ringwald #define DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED             0x85
349fea5a680SMatthias Ringwald 
35062c64df1SMatthias Ringwald /**
35162c64df1SMatthias Ringwald  * @format 11
35262c64df1SMatthias Ringwald  * @param status
35362c64df1SMatthias Ringwald  * @param server_channel_id
35462c64df1SMatthias Ringwald  */
35562c64df1SMatthias Ringwald #define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL             0x86
35662c64df1SMatthias Ringwald 
35762c64df1SMatthias Ringwald /**
35862c64df1SMatthias Ringwald   * @format 14
35962c64df1SMatthias Ringwald   * @param status
36062c64df1SMatthias Ringwald   * @param service_record_handle
36162c64df1SMatthias Ringwald   */
36262c64df1SMatthias Ringwald #define DAEMON_EVENT_SDP_SERVICE_REGISTERED                0x90
36362c64df1SMatthias Ringwald 
36462c64df1SMatthias Ringwald 
365827b1c43SMatthias Ringwald 
3663bc639ceSMatthias Ringwald // additional HCI events
36763fa3374SMatthias Ringwald 
36863fa3374SMatthias Ringwald /**
36963fa3374SMatthias Ringwald  * @brief Outgoing packet
37063fa3374SMatthias Ringwald  */
37163fa3374SMatthias Ringwald #define HCI_EVENT_TRANSPORT_PACKET_SENT                    0x6E
37263fa3374SMatthias Ringwald 
3733bc639ceSMatthias Ringwald /**
3743bc639ceSMatthias Ringwald  * @format B
3753bc639ceSMatthias Ringwald  * @param handle
3763bc639ceSMatthias Ringwald  */
3773bc639ceSMatthias Ringwald #define HCI_EVENT_SCO_CAN_SEND_NOW                         0x6F
3783bc639ceSMatthias Ringwald 
37962c64df1SMatthias Ringwald 
380941b3855SMatthias Ringwald // L2CAP EVENTS
381941b3855SMatthias Ringwald 
382b072ba33SMatthias Ringwald /**
383bab5f4f0SMatthias Ringwald  * @format 1BH2222221
384b072ba33SMatthias Ringwald  * @param status
385b072ba33SMatthias Ringwald  * @param address
386b072ba33SMatthias Ringwald  * @param handle
387b072ba33SMatthias Ringwald  * @param psm
388b072ba33SMatthias Ringwald  * @param local_cid
389b072ba33SMatthias Ringwald  * @param remote_cid
390b072ba33SMatthias Ringwald  * @param local_mtu
391b072ba33SMatthias Ringwald  * @param remote_mtu
392b072ba33SMatthias Ringwald  * @param flush_timeout
393bab5f4f0SMatthias Ringwald  * @param incoming
394b072ba33SMatthias Ringwald  */
395941b3855SMatthias Ringwald #define L2CAP_EVENT_CHANNEL_OPENED                         0x70
396941b3855SMatthias Ringwald 
397b072ba33SMatthias Ringwald /*
398b072ba33SMatthias Ringwald  * @format 2
399b072ba33SMatthias Ringwald  * @param local_cid
400b072ba33SMatthias Ringwald  */
401941b3855SMatthias Ringwald #define L2CAP_EVENT_CHANNEL_CLOSED                         0x71
402941b3855SMatthias Ringwald 
403b072ba33SMatthias Ringwald /**
4046d4269d3SMilanka Ringwald  * @format BH222
405b072ba33SMatthias Ringwald  * @param address
406b072ba33SMatthias Ringwald  * @param handle
407b072ba33SMatthias Ringwald  * @param psm
408b072ba33SMatthias Ringwald  * @param local_cid
409b072ba33SMatthias Ringwald  * @param remote_cid
410b072ba33SMatthias Ringwald  */
411941b3855SMatthias Ringwald #define L2CAP_EVENT_INCOMING_CONNECTION                    0x72
412941b3855SMatthias Ringwald 
413b072ba33SMatthias Ringwald // ??
414941b3855SMatthias Ringwald // data: event(8), len(8), handle(16)
415941b3855SMatthias Ringwald #define L2CAP_EVENT_TIMEOUT_CHECK                          0x73
416941b3855SMatthias Ringwald 
417b072ba33SMatthias Ringwald /**
418b072ba33SMatthias Ringwald  * @format H2222
419b072ba33SMatthias Ringwald  * @param handle
420b072ba33SMatthias Ringwald  * @param interval_min
421b072ba33SMatthias Ringwald  * @param interval_max
422b072ba33SMatthias Ringwald  * @param latencey
423b072ba33SMatthias Ringwald  * @param timeout_multiplier
424b072ba33SMatthias Ringwald  */
425941b3855SMatthias Ringwald #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST    0x76
426941b3855SMatthias Ringwald 
427941b3855SMatthias Ringwald // data: event(8), len(8), handle(16), result (16) (0 == ok, 1 == fail)
428b072ba33SMatthias Ringwald  /**
429b072ba33SMatthias Ringwald   * @format H2
430b072ba33SMatthias Ringwald   * @param handle
431*2c737695SMatthias Ringwald   * @param result
432b072ba33SMatthias Ringwald   */
433941b3855SMatthias Ringwald #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE   0x77
434941b3855SMatthias Ringwald 
435b072ba33SMatthias Ringwald /**
436b072ba33SMatthias Ringwald  * @format 2
437b072ba33SMatthias Ringwald  * @param local_cid
438b072ba33SMatthias Ringwald  */
439b072ba33SMatthias Ringwald #define L2CAP_EVENT_CAN_SEND_NOW                           0x78
440b072ba33SMatthias Ringwald 
44144276248SMatthias Ringwald // LE Data Channels
44244276248SMatthias Ringwald 
44344276248SMatthias Ringwald /**
44444276248SMatthias Ringwald  * @format 1BH2222
44544276248SMatthias Ringwald  * @param address_type
44644276248SMatthias Ringwald  * @param address
44744276248SMatthias Ringwald  * @param handle
44844276248SMatthias Ringwald  * @param psm
44944276248SMatthias Ringwald  * @param local_cid
45044276248SMatthias Ringwald  * @param remote_cid
45144276248SMatthias Ringwald  * @param remote_mtu
45244276248SMatthias Ringwald  */
45344276248SMatthias Ringwald #define L2CAP_EVENT_LE_INCOMING_CONNECTION                 0x79
45444276248SMatthias Ringwald 
45544276248SMatthias Ringwald /**
45612242deaSMatthias Ringwald  * @format 11BH122222
45744276248SMatthias Ringwald  * @param status
45844276248SMatthias Ringwald  * @param address_type
45944276248SMatthias Ringwald  * @param address
46044276248SMatthias Ringwald  * @param handle
46112242deaSMatthias Ringwald  * @param incoming
46244276248SMatthias Ringwald  * @param psm
46344276248SMatthias Ringwald  * @param local_cid
46444276248SMatthias Ringwald  * @param remote_cid
46544276248SMatthias Ringwald  * @param local_mtu
46644276248SMatthias Ringwald  * @param remote_mtu
46744276248SMatthias Ringwald  */
46844276248SMatthias Ringwald #define L2CAP_EVENT_LE_CHANNEL_OPENED                      0x7a
46944276248SMatthias Ringwald 
47044276248SMatthias Ringwald /*
47144276248SMatthias Ringwald  * @format 2
47244276248SMatthias Ringwald  * @param local_cid
47344276248SMatthias Ringwald  */
47444276248SMatthias Ringwald #define L2CAP_EVENT_LE_CHANNEL_CLOSED                      0x7b
47544276248SMatthias Ringwald 
47644276248SMatthias Ringwald /*
47744276248SMatthias Ringwald  * @format 2
47844276248SMatthias Ringwald  * @param local_cid
47944276248SMatthias Ringwald  */
48044276248SMatthias Ringwald #define L2CAP_EVENT_LE_CAN_SEND_NOW                        0x7c
48144276248SMatthias Ringwald 
48244276248SMatthias Ringwald /*
48344276248SMatthias Ringwald  * @format 2
48444276248SMatthias Ringwald  * @param local_cid
48544276248SMatthias Ringwald  */
48644276248SMatthias Ringwald #define L2CAP_EVENT_LE_PACKET_SENT                         0x7d
48744276248SMatthias Ringwald 
48844276248SMatthias Ringwald 
489941b3855SMatthias Ringwald // RFCOMM EVENTS
490b072ba33SMatthias Ringwald 
491941b3855SMatthias Ringwald /**
492bab5f4f0SMatthias Ringwald  * @format 1B21221
493941b3855SMatthias Ringwald  * @param status
494941b3855SMatthias Ringwald  * @param bd_addr
495941b3855SMatthias Ringwald  * @param con_handle
496941b3855SMatthias Ringwald  * @param server_channel
497941b3855SMatthias Ringwald  * @param rfcomm_cid
498941b3855SMatthias Ringwald  * @param max_frame_size
499bab5f4f0SMatthias Ringwald  * @param incoming
500941b3855SMatthias Ringwald  */
501f8f6a918SMatthias Ringwald #define RFCOMM_EVENT_CHANNEL_OPENED                        0x80
502941b3855SMatthias Ringwald 
503941b3855SMatthias Ringwald /**
504941b3855SMatthias Ringwald  * @format 2
505941b3855SMatthias Ringwald  * @param rfcomm_cid
506941b3855SMatthias Ringwald  */
507941b3855SMatthias Ringwald #define RFCOMM_EVENT_CHANNEL_CLOSED                        0x81
508941b3855SMatthias Ringwald 
509941b3855SMatthias Ringwald /**
510941b3855SMatthias Ringwald  * @format B12
511941b3855SMatthias Ringwald  * @param bd_addr
512941b3855SMatthias Ringwald  * @param server_channel
513941b3855SMatthias Ringwald  * @param rfcomm_cid
514941b3855SMatthias Ringwald  */
515941b3855SMatthias Ringwald #define RFCOMM_EVENT_INCOMING_CONNECTION                   0x82
516941b3855SMatthias Ringwald 
517941b3855SMatthias Ringwald /**
518941b3855SMatthias Ringwald  * @format 21
519941b3855SMatthias Ringwald  * @param rfcomm_cid
520941b3855SMatthias Ringwald  * @param line_status
521941b3855SMatthias Ringwald  */
522941b3855SMatthias Ringwald #define RFCOMM_EVENT_REMOTE_LINE_STATUS                    0x83
523941b3855SMatthias Ringwald 
524941b3855SMatthias Ringwald /**
525941b3855SMatthias Ringwald  * @format 21
526941b3855SMatthias Ringwald  * @param rfcomm_cid
527941b3855SMatthias Ringwald  * @param modem_status
528941b3855SMatthias Ringwald  */
529941b3855SMatthias Ringwald #define RFCOMM_EVENT_REMOTE_MODEM_STATUS                   0x87
530941b3855SMatthias Ringwald 
531941b3855SMatthias Ringwald  /**
5327bd8e93bSMatthias Ringwald   * TODO: format for variable data 2?
533045013feSMatthias Ringwald   * param rfcomm_cid
534045013feSMatthias Ringwald   * param rpn_data
535941b3855SMatthias Ringwald   */
536941b3855SMatthias Ringwald #define RFCOMM_EVENT_PORT_CONFIGURATION                    0x88
537941b3855SMatthias Ringwald 
538941b3855SMatthias Ringwald /**
539b072ba33SMatthias Ringwald  * @format 2
54062c468cbSMatthias Ringwald  * @param rfcomm_cid
541b072ba33SMatthias Ringwald  */
542b072ba33SMatthias Ringwald #define RFCOMM_EVENT_CAN_SEND_NOW                          0x89
543b072ba33SMatthias Ringwald 
544b072ba33SMatthias Ringwald 
545b072ba33SMatthias Ringwald /**
546941b3855SMatthias Ringwald  * @format 1
547941b3855SMatthias Ringwald  * @param status
548941b3855SMatthias Ringwald  */
5495611a760SMatthias Ringwald #define SDP_EVENT_QUERY_COMPLETE                                 0x91
550941b3855SMatthias Ringwald 
551941b3855SMatthias Ringwald /**
552941b3855SMatthias Ringwald  * @format 1T
553941b3855SMatthias Ringwald  * @param rfcomm_channel
554941b3855SMatthias Ringwald  * @param name
555941b3855SMatthias Ringwald  */
5565611a760SMatthias Ringwald #define SDP_EVENT_QUERY_RFCOMM_SERVICE                           0x92
557941b3855SMatthias Ringwald 
558941b3855SMatthias Ringwald /**
5594225393cSMatthias Ringwald  * @format 22221
5604225393cSMatthias Ringwald  * @param record_id
561941b3855SMatthias Ringwald  * @param attribute_id
5624225393cSMatthias Ringwald  * @param attribute_length
5634225393cSMatthias Ringwald  * @param data_offset
5644225393cSMatthias Ringwald  * @param data
565941b3855SMatthias Ringwald  */
5665611a760SMatthias Ringwald #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE                           0x93
567941b3855SMatthias Ringwald 
5684de250b4SMatthias Ringwald /**
5694de250b4SMatthias Ringwald  * @format 22LV
5704de250b4SMatthias Ringwald  * @param record_id
5714de250b4SMatthias Ringwald  * @param attribute_id
5724de250b4SMatthias Ringwald  * @param attribute_length
5734de250b4SMatthias Ringwald  * @param attribute_value
5744de250b4SMatthias Ringwald  */
5755611a760SMatthias Ringwald #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE                          0x94
5764225393cSMatthias Ringwald 
5774225393cSMatthias Ringwald /**
5784225393cSMatthias Ringwald  * @format 224
5794225393cSMatthias Ringwald  * @param total_count
5804225393cSMatthias Ringwald  * @param record_index
5814225393cSMatthias Ringwald  * @param record_handle
5824225393cSMatthias Ringwald  * @note Not provided by daemon, only used for internal testing
5834225393cSMatthias Ringwald  */
5845611a760SMatthias Ringwald #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE                    0x95
585941b3855SMatthias Ringwald 
586941b3855SMatthias Ringwald /**
587941b3855SMatthias Ringwald  * @format H1
588941b3855SMatthias Ringwald  * @param handle
589941b3855SMatthias Ringwald  * @param status
590941b3855SMatthias Ringwald  */
5915611a760SMatthias Ringwald #define GATT_EVENT_QUERY_COMPLETE                                0xA0
592941b3855SMatthias Ringwald 
593941b3855SMatthias Ringwald /**
594941b3855SMatthias Ringwald  * @format HX
595941b3855SMatthias Ringwald  * @param handle
596941b3855SMatthias Ringwald  * @param service
597941b3855SMatthias Ringwald  */
5985611a760SMatthias Ringwald #define GATT_EVENT_SERVICE_QUERY_RESULT                          0xA1
599941b3855SMatthias Ringwald 
600941b3855SMatthias Ringwald /**
601941b3855SMatthias Ringwald  * @format HY
602941b3855SMatthias Ringwald  * @param handle
603941b3855SMatthias Ringwald  * @param characteristic
604941b3855SMatthias Ringwald  */
6055611a760SMatthias Ringwald #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT                   0xA2
606941b3855SMatthias Ringwald 
607941b3855SMatthias Ringwald /**
608941b3855SMatthias Ringwald  * @format H2X
609941b3855SMatthias Ringwald  * @param handle
610941b3855SMatthias Ringwald  * @param include_handle
611941b3855SMatthias Ringwald  * @param service
612941b3855SMatthias Ringwald  */
6135611a760SMatthias Ringwald #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT                 0xA3
614941b3855SMatthias Ringwald 
615941b3855SMatthias Ringwald /**
616941b3855SMatthias Ringwald  * @format HZ
617941b3855SMatthias Ringwald  * @param handle
618941b3855SMatthias Ringwald  * @param characteristic_descriptor
619941b3855SMatthias Ringwald  */
6205611a760SMatthias Ringwald #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT   0xA4
621941b3855SMatthias Ringwald 
622941b3855SMatthias Ringwald /**
623941b3855SMatthias Ringwald  * @format H2LV
624941b3855SMatthias Ringwald  * @param handle
625941b3855SMatthias Ringwald  * @param value_handle
626941b3855SMatthias Ringwald  * @param value_length
627941b3855SMatthias Ringwald  * @param value
628941b3855SMatthias Ringwald  */
6295611a760SMatthias Ringwald #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT             0xA5
630941b3855SMatthias Ringwald 
631941b3855SMatthias Ringwald /**
632941b3855SMatthias Ringwald  * @format H22LV
633941b3855SMatthias Ringwald  * @param handle
634941b3855SMatthias Ringwald  * @param value_handle
635941b3855SMatthias Ringwald  * @param value_offset
636941b3855SMatthias Ringwald  * @param value_length
637941b3855SMatthias Ringwald  * @param value
638941b3855SMatthias Ringwald  */
6395611a760SMatthias Ringwald #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT        0xA6
640941b3855SMatthias Ringwald 
641941b3855SMatthias Ringwald /**
642941b3855SMatthias Ringwald  * @format H2LV
643941b3855SMatthias Ringwald  * @param handle
644941b3855SMatthias Ringwald  * @param value_handle
645941b3855SMatthias Ringwald  * @param value_length
646941b3855SMatthias Ringwald  * @param value
647941b3855SMatthias Ringwald  */
6485611a760SMatthias Ringwald #define GATT_EVENT_NOTIFICATION                                  0xA7
649941b3855SMatthias Ringwald 
650941b3855SMatthias Ringwald /**
651941b3855SMatthias Ringwald  * @format H2LV
652941b3855SMatthias Ringwald  * @param handle
653941b3855SMatthias Ringwald  * @param value_handle
654941b3855SMatthias Ringwald  * @param value_length
655941b3855SMatthias Ringwald  * @param value
656941b3855SMatthias Ringwald  */
6575611a760SMatthias Ringwald #define GATT_EVENT_INDICATION                                    0xA8
658941b3855SMatthias Ringwald 
659941b3855SMatthias Ringwald /**
660941b3855SMatthias Ringwald  * @format H2LV
661*2c737695SMatthias Ringwald  * @param handle
662941b3855SMatthias Ringwald  * @param descriptor_handle
663941b3855SMatthias Ringwald  * @param descriptor_length
664941b3855SMatthias Ringwald  * @param descriptor
665941b3855SMatthias Ringwald  */
6665611a760SMatthias Ringwald #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT        0xA9
667941b3855SMatthias Ringwald 
668941b3855SMatthias Ringwald /**
669941b3855SMatthias Ringwald  * @format H2LV
670941b3855SMatthias Ringwald  * @param handle
671941b3855SMatthias Ringwald  * @param descriptor_offset
672941b3855SMatthias Ringwald  * @param descriptor_length
673941b3855SMatthias Ringwald  * @param descriptor
674941b3855SMatthias Ringwald  */
6755611a760SMatthias Ringwald #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT   0xAA
676941b3855SMatthias Ringwald 
677941b3855SMatthias Ringwald /**
678941b3855SMatthias Ringwald  * @format H2
679941b3855SMatthias Ringwald  * @param handle
680941b3855SMatthias Ringwald  * @param MTU
681941b3855SMatthias Ringwald  */
6825611a760SMatthias Ringwald #define GATT_EVENT_MTU                                           0xAB
683941b3855SMatthias Ringwald 
684941b3855SMatthias Ringwald /**
685941b3855SMatthias Ringwald  * @format H2
686941b3855SMatthias Ringwald  * @param handle
687941b3855SMatthias Ringwald  * @param MTU
688941b3855SMatthias Ringwald  */
6895611a760SMatthias Ringwald #define ATT_EVENT_MTU_EXCHANGE_COMPLETE                          0xB5
690941b3855SMatthias Ringwald 
69149d18261SMatthias Ringwald  /**
69249d18261SMatthias Ringwald   * @format 1H2
69349d18261SMatthias Ringwald   * @param status
69449d18261SMatthias Ringwald   * @param conn_handle
69549d18261SMatthias Ringwald   * @param attribute_handle
69649d18261SMatthias Ringwald   */
6975611a760SMatthias Ringwald #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE               0xB6
698941b3855SMatthias Ringwald 
69949d18261SMatthias Ringwald /**
70049d18261SMatthias Ringwald  * @format
70149d18261SMatthias Ringwald  */
70249d18261SMatthias Ringwald #define ATT_EVENT_CAN_SEND_NOW                                   0xB7
703941b3855SMatthias Ringwald 
70449d18261SMatthias Ringwald // TODO: daemon only event
70549d18261SMatthias Ringwald 
70649d18261SMatthias Ringwald /**
70749d18261SMatthias Ringwald  * @format 12
70849d18261SMatthias Ringwald  * @param status
70949d18261SMatthias Ringwald  * @param service_uuid
71049d18261SMatthias Ringwald  */
711941b3855SMatthias Ringwald  #define BNEP_EVENT_SERVICE_REGISTERED                      0xC0
712941b3855SMatthias Ringwald 
71349d18261SMatthias Ringwald /**
714423c667cSMatthias Ringwald  * @format 12222B
71549d18261SMatthias Ringwald  * @param status
716423c667cSMatthias Ringwald  * @param bnep_cid
71749d18261SMatthias Ringwald  * @param source_uuid
71849d18261SMatthias Ringwald  * @param destination_uuid
71949d18261SMatthias Ringwald  * @param mtu
72049d18261SMatthias Ringwald  * @param remote_address
72149d18261SMatthias Ringwald  */
722423c667cSMatthias Ringwald  #define BNEP_EVENT_CHANNEL_OPENED                   0xC1
723941b3855SMatthias Ringwald 
72449d18261SMatthias Ringwald /**
725423c667cSMatthias Ringwald  * @format 222B
726423c667cSMatthias Ringwald  * @param bnep_cid
72749d18261SMatthias Ringwald  * @param source_uuid
72849d18261SMatthias Ringwald  * @param destination_uuid
72949d18261SMatthias Ringwald  * @param remote_address
73049d18261SMatthias Ringwald  */
731941b3855SMatthias Ringwald  #define BNEP_EVENT_CHANNEL_CLOSED                          0xC2
732941b3855SMatthias Ringwald 
73349d18261SMatthias Ringwald /**
734423c667cSMatthias Ringwald  * @format 222B1
735423c667cSMatthias Ringwald  * @param bnep_cid
73649d18261SMatthias Ringwald  * @param source_uuid
73749d18261SMatthias Ringwald  * @param destination_uuid
73849d18261SMatthias Ringwald  * @param remote_address
73949d18261SMatthias Ringwald  * @param channel_state
74049d18261SMatthias Ringwald  */
741941b3855SMatthias Ringwald #define BNEP_EVENT_CHANNEL_TIMEOUT                         0xC3
742941b3855SMatthias Ringwald 
74349d18261SMatthias Ringwald /**
744423c667cSMatthias Ringwald  * @format 222B
745423c667cSMatthias Ringwald  * @param bnep_cid
74649d18261SMatthias Ringwald  * @param source_uuid
74749d18261SMatthias Ringwald  * @param destination_uuid
74849d18261SMatthias Ringwald  * @param remote_address
74949d18261SMatthias Ringwald  */
7502d4c8c04SMatthias Ringwald  #define BNEP_EVENT_CAN_SEND_NOW                           0xC4
751941b3855SMatthias Ringwald 
752941b3855SMatthias Ringwald  /**
753941b3855SMatthias Ringwald   * @format H1B
754941b3855SMatthias Ringwald   * @param handle
755941b3855SMatthias Ringwald   * @param addr_type
756941b3855SMatthias Ringwald   * @param address
757941b3855SMatthias Ringwald   */
7585611a760SMatthias Ringwald #define SM_EVENT_JUST_WORKS_REQUEST                              0xD0
759941b3855SMatthias Ringwald 
760941b3855SMatthias Ringwald  /**
761941b3855SMatthias Ringwald   * @format H1B
762941b3855SMatthias Ringwald   * @param handle
763941b3855SMatthias Ringwald   * @param addr_type
764941b3855SMatthias Ringwald   * @param address
765941b3855SMatthias Ringwald   */
7665611a760SMatthias Ringwald #define SM_EVENT_JUST_WORKS_CANCEL                               0xD1
767941b3855SMatthias Ringwald 
768941b3855SMatthias Ringwald  /**
769941b3855SMatthias Ringwald   * @format H1B4
770941b3855SMatthias Ringwald   * @param handle
771941b3855SMatthias Ringwald   * @param addr_type
772941b3855SMatthias Ringwald   * @param address
773941b3855SMatthias Ringwald   * @param passkey
774941b3855SMatthias Ringwald   */
7755611a760SMatthias Ringwald #define SM_EVENT_PASSKEY_DISPLAY_NUMBER                          0xD2
776941b3855SMatthias Ringwald 
777941b3855SMatthias Ringwald  /**
778941b3855SMatthias Ringwald   * @format H1B
779941b3855SMatthias Ringwald   * @param handle
780941b3855SMatthias Ringwald   * @param addr_type
781941b3855SMatthias Ringwald   * @param address
782941b3855SMatthias Ringwald   */
7835611a760SMatthias Ringwald #define SM_EVENT_PASSKEY_DISPLAY_CANCEL                          0xD3
784941b3855SMatthias Ringwald 
785941b3855SMatthias Ringwald  /**
786*2c737695SMatthias Ringwald   * @format H1B
787941b3855SMatthias Ringwald   * @param handle
788941b3855SMatthias Ringwald   * @param addr_type
789941b3855SMatthias Ringwald   * @param address
790941b3855SMatthias Ringwald   */
7915611a760SMatthias Ringwald #define SM_EVENT_PASSKEY_INPUT_NUMBER                            0xD4
792941b3855SMatthias Ringwald 
793941b3855SMatthias Ringwald  /**
794941b3855SMatthias Ringwald   * @format H1B
795941b3855SMatthias Ringwald   * @param handle
796941b3855SMatthias Ringwald   * @param addr_type
797941b3855SMatthias Ringwald   * @param address
798941b3855SMatthias Ringwald   */
7995611a760SMatthias Ringwald #define SM_EVENT_PASSKEY_INPUT_CANCEL                            0xD5
800941b3855SMatthias Ringwald 
801941b3855SMatthias Ringwald  /**
8028362d86aSMatthias Ringwald   * @format H1B4
8038362d86aSMatthias Ringwald   * @param handle
8048362d86aSMatthias Ringwald   * @param addr_type
8058362d86aSMatthias Ringwald   * @param address
8068362d86aSMatthias Ringwald   * @param passkey
8078362d86aSMatthias Ringwald   */
8088362d86aSMatthias Ringwald #define SM_EVENT_NUMERIC_COMPARISON_REQUEST                      0xD6
8098362d86aSMatthias Ringwald 
8108362d86aSMatthias Ringwald  /**
811*2c737695SMatthias Ringwald   * @format H1B
812941b3855SMatthias Ringwald   * @param handle
813941b3855SMatthias Ringwald   * @param addr_type
814941b3855SMatthias Ringwald   * @param address
815941b3855SMatthias Ringwald   */
8168362d86aSMatthias Ringwald #define SM_EVENT_NUMERIC_COMPARISON_CANCEL                       0xD7
817941b3855SMatthias Ringwald 
818941b3855SMatthias Ringwald  /**
819941b3855SMatthias Ringwald   * @format H1B
820941b3855SMatthias Ringwald   * @param handle
821941b3855SMatthias Ringwald   * @param addr_type
822941b3855SMatthias Ringwald   * @param address
823941b3855SMatthias Ringwald   */
8248362d86aSMatthias Ringwald #define SM_EVENT_IDENTITY_RESOLVING_STARTED                      0xD8
8258362d86aSMatthias Ringwald 
8268362d86aSMatthias Ringwald  /**
8278362d86aSMatthias Ringwald   * @format H1B
8288362d86aSMatthias Ringwald   * @param handle
8298362d86aSMatthias Ringwald   * @param addr_type
8308362d86aSMatthias Ringwald   * @param address
8318362d86aSMatthias Ringwald   */
8328362d86aSMatthias Ringwald #define SM_EVENT_IDENTITY_RESOLVING_FAILED                       0xD9
833941b3855SMatthias Ringwald 
834941b3855SMatthias Ringwald  /**
83584182ed9SMatthias Ringwald   * @brief Identify resolving succeeded
83684182ed9SMatthias Ringwald   *
837334126b3SMatthias Ringwald   * @format H1B1B2
838941b3855SMatthias Ringwald   * @param handle
839941b3855SMatthias Ringwald   * @param addr_type
840941b3855SMatthias Ringwald   * @param address
84184182ed9SMatthias Ringwald   * @param identity_addr_type
84284182ed9SMatthias Ringwald   * @param identity_address
843334126b3SMatthias Ringwald   * @param index_internal
84484182ed9SMatthias Ringwald   *
845941b3855SMatthias Ringwald   */
8468362d86aSMatthias Ringwald #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED                    0xDA
847941b3855SMatthias Ringwald 
848941b3855SMatthias Ringwald  /**
849941b3855SMatthias Ringwald   * @format H1B
850941b3855SMatthias Ringwald   * @param handle
851941b3855SMatthias Ringwald   * @param addr_type
852941b3855SMatthias Ringwald   * @param address
853941b3855SMatthias Ringwald   */
8548362d86aSMatthias Ringwald #define SM_EVENT_AUTHORIZATION_REQUEST                           0xDB
855941b3855SMatthias Ringwald 
856941b3855SMatthias Ringwald  /**
857941b3855SMatthias Ringwald   * @format H1B1
858941b3855SMatthias Ringwald   * @param handle
859941b3855SMatthias Ringwald   * @param addr_type
860941b3855SMatthias Ringwald   * @param address
861941b3855SMatthias Ringwald   * @param authorization_result
862941b3855SMatthias Ringwald   */
8638362d86aSMatthias Ringwald #define SM_EVENT_AUTHORIZATION_RESULT                            0xDC
864941b3855SMatthias Ringwald 
8653d7fe1e9SMatthias Ringwald  /**
8663d7fe1e9SMatthias Ringwald   * @format H1
8673d7fe1e9SMatthias Ringwald   * @param handle
8683d7fe1e9SMatthias Ringwald   * @param action see SM_KEYPRESS_*
8693d7fe1e9SMatthias Ringwald   */
8703d7fe1e9SMatthias Ringwald #define SM_EVENT_KEYPRESS_NOTIFICATION                           0xDD
8713d7fe1e9SMatthias Ringwald 
87284182ed9SMatthias Ringwald  /**
87384182ed9SMatthias Ringwald   * @brief Emitted during pairing to inform app about address used as identity
87484182ed9SMatthias Ringwald   *
87584182ed9SMatthias Ringwald   * @format H1B1B
87684182ed9SMatthias Ringwald   * @param handle
87784182ed9SMatthias Ringwald   * @param addr_type
87884182ed9SMatthias Ringwald   * @param address
87984182ed9SMatthias Ringwald   * @param identity_addr_type
88084182ed9SMatthias Ringwald   * @param identity_address
88184182ed9SMatthias Ringwald   */
88284182ed9SMatthias Ringwald #define SM_EVENT_IDENTITY_CREATED                                0xDE
8833d7fe1e9SMatthias Ringwald 
884941b3855SMatthias Ringwald // GAP
885941b3855SMatthias Ringwald 
88646bc5396SMilanka Ringwald /**
88746bc5396SMilanka Ringwald  * @format H1
88846bc5396SMilanka Ringwald  * @param handle
88946bc5396SMilanka Ringwald  * @param security_level
89046bc5396SMilanka Ringwald  */
8915611a760SMatthias Ringwald #define GAP_EVENT_SECURITY_LEVEL                                 0xE0
892941b3855SMatthias Ringwald 
89346bc5396SMilanka Ringwald /**
89446bc5396SMilanka Ringwald  * @format 1B
89546bc5396SMilanka Ringwald  * @param status
89646bc5396SMilanka Ringwald  * @param address
89746bc5396SMilanka Ringwald  */
8985611a760SMatthias Ringwald #define GAP_EVENT_DEDICATED_BONDING_COMPLETED                    0xE1
899941b3855SMatthias Ringwald 
900941b3855SMatthias Ringwald /**
901941b3855SMatthias Ringwald  * @format 11B1JV
902941b3855SMatthias Ringwald  * @param advertising_event_type
903941b3855SMatthias Ringwald  * @param address_type
904941b3855SMatthias Ringwald  * @param address
905941b3855SMatthias Ringwald  * @param rssi
906941b3855SMatthias Ringwald  * @param data_length
907941b3855SMatthias Ringwald  * @param data
908941b3855SMatthias Ringwald  */
909045013feSMatthias Ringwald #define GAP_EVENT_ADVERTISING_REPORT                          0xE2
910941b3855SMatthias Ringwald 
911827b1c43SMatthias Ringwald 
912e10ce426SMatthias Ringwald // Meta Events, see below for sub events
913941b3855SMatthias Ringwald #define HCI_EVENT_HSP_META                                 0xE8
91439d235cbSMatthias Ringwald #define HCI_EVENT_HFP_META                                 0xE9
915e10ce426SMatthias Ringwald #define HCI_EVENT_ANCS_META                                0xEA
916beaf082cSMatthias Ringwald #define HCI_EVENT_AVDTP_META                               0xEB
917decc740cSMilanka Ringwald #define HCI_EVENT_AVRCP_META                               0xEC
91839d235cbSMatthias Ringwald 
919e10ce426SMatthias Ringwald // Potential other meta groups
920e10ce426SMatthias Ringwald  // #define HCI_EVENT_BNEP_META                                0xxx
921e10ce426SMatthias Ringwald // #define HCI_EVENT_GAP_META                                 0xxx
922e10ce426SMatthias Ringwald // #define HCI_EVENT_GATT_META                                0xxx
923e10ce426SMatthias Ringwald // #define HCI_EVENT_PAN_META                                 0xxx
924e10ce426SMatthias Ringwald // #define HCI_EVENT_SDP_META                                 0xxx
925e10ce426SMatthias Ringwald // #define HCI_EVENT_SM_META                                  0xxx
92639d235cbSMatthias Ringwald 
927d63c37a1SMatthias Ringwald 
928d63c37a1SMatthias Ringwald /** HSP Subevent */
929d63c37a1SMatthias Ringwald 
930827b1c43SMatthias Ringwald /**
93199a10067SMatthias Ringwald  * @format 11
932827b1c43SMatthias Ringwald  * @param subevent_code
933827b1c43SMatthias Ringwald  * @param status 0 == OK
934827b1c43SMatthias Ringwald  */
93599a10067SMatthias Ringwald #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE             0x01
93699a10067SMatthias Ringwald 
93799a10067SMatthias Ringwald /**
93899a10067SMatthias Ringwald  * @format 11
93999a10067SMatthias Ringwald  * @param subevent_code
94099a10067SMatthias Ringwald  * @param status 0 == OK
94199a10067SMatthias Ringwald  */
94299a10067SMatthias Ringwald #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE           0x02
94399a10067SMatthias Ringwald 
94499a10067SMatthias Ringwald 
94599a10067SMatthias Ringwald /**
94662c468cbSMatthias Ringwald  * @format 11H
94799a10067SMatthias Ringwald  * @param subevent_code
94899a10067SMatthias Ringwald  * @param status 0 == OK
94962c468cbSMatthias Ringwald  * @param handle
95099a10067SMatthias Ringwald  */
95199a10067SMatthias Ringwald #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE             0x03
952827b1c43SMatthias Ringwald 
953827b1c43SMatthias Ringwald /**
954827b1c43SMatthias Ringwald  * @format 11
955827b1c43SMatthias Ringwald  * @param subevent_code
956827b1c43SMatthias Ringwald  * @param status 0 == OK
957827b1c43SMatthias Ringwald  */
95899a10067SMatthias Ringwald #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE          0x04
959827b1c43SMatthias Ringwald 
960827b1c43SMatthias Ringwald /**
961827b1c43SMatthias Ringwald  * @format 1
962827b1c43SMatthias Ringwald  * @param subevent_code
963827b1c43SMatthias Ringwald  */
96499a10067SMatthias Ringwald #define HSP_SUBEVENT_RING                                  0x05
965827b1c43SMatthias Ringwald 
966827b1c43SMatthias Ringwald /**
967827b1c43SMatthias Ringwald  * @format 11
968827b1c43SMatthias Ringwald  * @param subevent_code
969827b1c43SMatthias Ringwald  * @param gain Valid range: [0,15]
970827b1c43SMatthias Ringwald  */
97199a10067SMatthias Ringwald #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED               0x06
972827b1c43SMatthias Ringwald 
973827b1c43SMatthias Ringwald /**
974827b1c43SMatthias Ringwald  * @format 11
975827b1c43SMatthias Ringwald  * @param subevent_code
976827b1c43SMatthias Ringwald  * @param gain Valid range: [0,15]
977827b1c43SMatthias Ringwald  */
97899a10067SMatthias Ringwald #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED                  0x07
979827b1c43SMatthias Ringwald 
980827b1c43SMatthias Ringwald /**
981827b1c43SMatthias Ringwald  * @format 1JV
982827b1c43SMatthias Ringwald  * @param subevent_code
983827b1c43SMatthias Ringwald  * @param value_length
984827b1c43SMatthias Ringwald  * @param value
985827b1c43SMatthias Ringwald  */
98699a10067SMatthias Ringwald #define HSP_SUBEVENT_HS_COMMAND                            0x08
987827b1c43SMatthias Ringwald 
988827b1c43SMatthias Ringwald /**
989827b1c43SMatthias Ringwald  * @format 1JV
990827b1c43SMatthias Ringwald  * @param subevent_code
991827b1c43SMatthias Ringwald  * @param value_length
992827b1c43SMatthias Ringwald  * @param value
993827b1c43SMatthias Ringwald  */
99499a10067SMatthias Ringwald #define HSP_SUBEVENT_AG_INDICATION                         0x09
995827b1c43SMatthias Ringwald 
996941b3855SMatthias Ringwald 
997d63c37a1SMatthias Ringwald /** HFP Subevent */
998941b3855SMatthias Ringwald 
999d63c37a1SMatthias Ringwald /**
1000a23045e2SMilanka Ringwald  * @format 11HB
1001d63c37a1SMatthias Ringwald  * @param subevent_code
1002d63c37a1SMatthias Ringwald  * @param status 0 == OK
1003a0653c3bSMilanka Ringwald  * @param con_handle
10046a7f44bdSMilanka Ringwald  * @param bd_addr
1005d63c37a1SMatthias Ringwald  */
1006941b3855SMatthias Ringwald #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED  0x01
1007d63c37a1SMatthias Ringwald 
1008d63c37a1SMatthias Ringwald /**
1009d63c37a1SMatthias Ringwald  * @format 1
1010d63c37a1SMatthias Ringwald  * @param subevent_code
1011d63c37a1SMatthias Ringwald  */
1012941b3855SMatthias Ringwald #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED     0x02
1013d63c37a1SMatthias Ringwald 
1014d63c37a1SMatthias Ringwald /**
1015a23045e2SMilanka Ringwald  * @format 11HB1
1016d63c37a1SMatthias Ringwald  * @param subevent_code
1017d63c37a1SMatthias Ringwald  * @param status 0 == OK
10186ff51cfdSMatthias Ringwald  * @param handle
10196a7f44bdSMilanka Ringwald  * @param bd_addr
1020d0c4aea6SMilanka Ringwald  * @param negotiated_codec
1021d63c37a1SMatthias Ringwald  */
1022941b3855SMatthias Ringwald #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED          0x03
1023d63c37a1SMatthias Ringwald 
1024d63c37a1SMatthias Ringwald /**
1025d63c37a1SMatthias Ringwald  * @format 1
1026d63c37a1SMatthias Ringwald  * @param subevent_code
1027d63c37a1SMatthias Ringwald  */
1028941b3855SMatthias Ringwald #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED             0x04
1029d63c37a1SMatthias Ringwald 
1030d63c37a1SMatthias Ringwald /**
1031d63c37a1SMatthias Ringwald  * @format 11
1032d63c37a1SMatthias Ringwald  * @param subevent_code
1033d63c37a1SMatthias Ringwald  * @param status 0 == OK
1034d63c37a1SMatthias Ringwald  */
1035941b3855SMatthias Ringwald #define HFP_SUBEVENT_COMPLETE                              0x05
1036d63c37a1SMatthias Ringwald 
1037d63c37a1SMatthias Ringwald /**
1038d63c37a1SMatthias Ringwald  * @format 111T
1039d63c37a1SMatthias Ringwald  * @param subevent_code
1040d63c37a1SMatthias Ringwald  * @param indicator_index
1041d63c37a1SMatthias Ringwald  * @param indicator_status
1042d63c37a1SMatthias Ringwald  * @param indicator_name
1043d63c37a1SMatthias Ringwald  */
1044941b3855SMatthias Ringwald #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED           0x06
1045d63c37a1SMatthias Ringwald 
1046d63c37a1SMatthias Ringwald /**
1047*2c737695SMatthias Ringwald  * @format 111T
1048d63c37a1SMatthias Ringwald  * @param subevent_code
1049d63c37a1SMatthias Ringwald  * @param network_operator_mode
1050d63c37a1SMatthias Ringwald  * @param network_operator_format
1051d63c37a1SMatthias Ringwald  * @param network_operator_name
1052d63c37a1SMatthias Ringwald  */
1053941b3855SMatthias Ringwald #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED              0x07
1054d63c37a1SMatthias Ringwald 
1055d63c37a1SMatthias Ringwald /**
1056d63c37a1SMatthias Ringwald  * @format 11
1057d63c37a1SMatthias Ringwald  * @param subevent_code
1058d63c37a1SMatthias Ringwald  * @param error
1059d63c37a1SMatthias Ringwald  */
1060941b3855SMatthias Ringwald #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR             0x08
1061d63c37a1SMatthias Ringwald 
1062d63c37a1SMatthias Ringwald /**
1063d63c37a1SMatthias Ringwald  * @format 1
1064d63c37a1SMatthias Ringwald  * @param subevent_code
1065d63c37a1SMatthias Ringwald  */
1066aa4dd815SMatthias Ringwald #define HFP_SUBEVENT_START_RINGINIG                           0x0A
1067d63c37a1SMatthias Ringwald 
1068d63c37a1SMatthias Ringwald /**
1069d63c37a1SMatthias Ringwald  * @format 1
1070d63c37a1SMatthias Ringwald  * @param subevent_code
1071d63c37a1SMatthias Ringwald  */
1072aa4dd815SMatthias Ringwald #define HFP_SUBEVENT_STOP_RINGINIG                            0x0B
1073d63c37a1SMatthias Ringwald 
1074d63c37a1SMatthias Ringwald /**
1075d63c37a1SMatthias Ringwald  * @format 1
1076d63c37a1SMatthias Ringwald  * @param subevent_code
1077d63c37a1SMatthias Ringwald  */
1078aa4dd815SMatthias Ringwald #define HFP_SUBEVENT_CALL_TERMINATED                          0x0C
1079d63c37a1SMatthias Ringwald 
1080d63c37a1SMatthias Ringwald /**
1081d63c37a1SMatthias Ringwald  * @format 1T
1082d63c37a1SMatthias Ringwald  * @param subevent_code
1083d63c37a1SMatthias Ringwald  * @param number
1084d63c37a1SMatthias Ringwald  */
1085aa4dd815SMatthias Ringwald #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER                   0x0D
1086d63c37a1SMatthias Ringwald 
1087d63c37a1SMatthias Ringwald /**
1088d63c37a1SMatthias Ringwald  * @format 1
1089d63c37a1SMatthias Ringwald  * @param subevent_code
1090d63c37a1SMatthias Ringwald  */
1091d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG               0x0E
1092d63c37a1SMatthias Ringwald 
1093d63c37a1SMatthias Ringwald /**
1094d63c37a1SMatthias Ringwald  * @format 1T
1095d63c37a1SMatthias Ringwald  * @param subevent_code
1096d63c37a1SMatthias Ringwald  * @param number
1097d63c37a1SMatthias Ringwald  */
1098d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG                     0x0F
1099d63c37a1SMatthias Ringwald 
1100d63c37a1SMatthias Ringwald /**
1101d63c37a1SMatthias Ringwald  * @format 1T
1102d63c37a1SMatthias Ringwald  * @param subevent_code
1103d63c37a1SMatthias Ringwald  * @param dtmf code
1104d63c37a1SMatthias Ringwald  */
1105d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES                      0x10
1106d63c37a1SMatthias Ringwald 
1107d63c37a1SMatthias Ringwald /**
1108d63c37a1SMatthias Ringwald  * @format 1
1109d63c37a1SMatthias Ringwald  * @param subevent_code
1110d63c37a1SMatthias Ringwald  */
1111d63c37a1SMatthias Ringwald  #define HFP_SUBEVENT_CALL_ANSWERED                            0x11
1112d63c37a1SMatthias Ringwald 
1113d63c37a1SMatthias Ringwald /**
1114d63c37a1SMatthias Ringwald  * @format 1
1115d63c37a1SMatthias Ringwald  * @param subevent_code
1116d63c37a1SMatthias Ringwald  */
1117d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_CONFERENCE_CALL                          0x12
1118d63c37a1SMatthias Ringwald 
1119d63c37a1SMatthias Ringwald /**
1120d63c37a1SMatthias Ringwald  * @format 1
1121d63c37a1SMatthias Ringwald  * @param subevent_code
1122d63c37a1SMatthias Ringwald  */
1123d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_RING                                     0x13
1124d63c37a1SMatthias Ringwald 
1125d63c37a1SMatthias Ringwald /**
1126d63c37a1SMatthias Ringwald  * @format 111
1127d63c37a1SMatthias Ringwald  * @param subevent_code
1128d63c37a1SMatthias Ringwald  * @param status
1129d63c37a1SMatthias Ringwald  * @param gain
1130d63c37a1SMatthias Ringwald  */
1131d63c37a1SMatthias Ringwald  #define HFP_SUBEVENT_SPEAKER_VOLUME                           0x14
1132d63c37a1SMatthias Ringwald 
1133d63c37a1SMatthias Ringwald /**
1134d63c37a1SMatthias Ringwald  * @format 111
1135d63c37a1SMatthias Ringwald  * @param subevent_code
1136d63c37a1SMatthias Ringwald  * @param status
1137d63c37a1SMatthias Ringwald  * @param gain
1138d63c37a1SMatthias Ringwald  */
1139d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_MICROPHONE_VOLUME                        0x15
1140d63c37a1SMatthias Ringwald 
1141d63c37a1SMatthias Ringwald /**
1142d63c37a1SMatthias Ringwald  * @format 11T
1143d63c37a1SMatthias Ringwald  * @param subevent_code
1144d63c37a1SMatthias Ringwald  * @param type
1145d63c37a1SMatthias Ringwald  * @param number
1146d63c37a1SMatthias Ringwald  */
1147d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION                0x16
1148d63c37a1SMatthias Ringwald 
1149d63c37a1SMatthias Ringwald /**
1150d63c37a1SMatthias Ringwald  * @format 11T
1151d63c37a1SMatthias Ringwald  * @param subevent_code
1152d63c37a1SMatthias Ringwald  * @param type
1153d63c37a1SMatthias Ringwald  * @param number
1154d63c37a1SMatthias Ringwald  */
1155d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_CALLING_LINE_INDETIFICATION_NOTIFICATION 0x17
1156d63c37a1SMatthias Ringwald 
1157d63c37a1SMatthias Ringwald /**
1158d63c37a1SMatthias Ringwald  * @format 111111T
1159d63c37a1SMatthias Ringwald  * @param subevent_code
1160d63c37a1SMatthias Ringwald  * @param clcc_idx
1161d63c37a1SMatthias Ringwald  * @param clcc_dir
1162d63c37a1SMatthias Ringwald  * @param clcc_status
1163d63c37a1SMatthias Ringwald  * @param clcc_mpty
1164d63c37a1SMatthias Ringwald  * @param bnip_type
1165d63c37a1SMatthias Ringwald  * @param bnip_number
1166d63c37a1SMatthias Ringwald  */
1167d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_ENHANCED_CALL_STATUS                     0x18
1168d63c37a1SMatthias Ringwald 
1169d63c37a1SMatthias Ringwald /**
1170d63c37a1SMatthias Ringwald  * @format 111T
1171d63c37a1SMatthias Ringwald  * @param subevent_code
1172d63c37a1SMatthias Ringwald  * @param status
1173d63c37a1SMatthias Ringwald  * @param bnip_type
1174d63c37a1SMatthias Ringwald  * @param bnip_number
1175d63c37a1SMatthias Ringwald  */
1176d63c37a1SMatthias Ringwald  #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION            0x19
1177d63c37a1SMatthias Ringwald 
1178d63c37a1SMatthias Ringwald /**
1179d63c37a1SMatthias Ringwald  * @format 1T
1180d63c37a1SMatthias Ringwald  * @param subevent_code
1181d63c37a1SMatthias Ringwald  * @param value
1182d63c37a1SMatthias Ringwald  */
1183d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS                 0x1A
1184941b3855SMatthias Ringwald 
1185941b3855SMatthias Ringwald // ANCS Client
1186a4815874SMatthias Ringwald 
1187a4815874SMatthias Ringwald /**
1188e10ce426SMatthias Ringwald  * @format 1H
1189e10ce426SMatthias Ringwald  * @param subevent_code
1190a4815874SMatthias Ringwald  * @param handle
1191a4815874SMatthias Ringwald  */
1192e10ce426SMatthias Ringwald #define ANCS_SUBEVENT_CLIENT_CONNECTED                              0xF0
1193a4815874SMatthias Ringwald 
1194a4815874SMatthias Ringwald /**
1195e10ce426SMatthias Ringwald  * @format 1H2T
1196e10ce426SMatthias Ringwald  * @param subevent_code
1197a4815874SMatthias Ringwald  * @param handle
1198a4815874SMatthias Ringwald  * @param attribute_id
1199a4815874SMatthias Ringwald  * @param text
1200a4815874SMatthias Ringwald  */
1201e10ce426SMatthias Ringwald #define ANCS_SUBEVENT_CLIENT_NOTIFICATION                           0xF1
1202a4815874SMatthias Ringwald 
1203a4815874SMatthias Ringwald /**
1204e10ce426SMatthias Ringwald  * @format 1H
1205e10ce426SMatthias Ringwald  * @param subevent_code
1206a4815874SMatthias Ringwald  * @param handle
1207a4815874SMatthias Ringwald  */
1208e10ce426SMatthias Ringwald #define ANCS_SUBEVENT_CLIENT_DISCONNECTED                           0xF2
1209941b3855SMatthias Ringwald 
1210a23045e2SMilanka Ringwald 
1211a23045e2SMilanka Ringwald /** AVDTP Subevent */
1212a23045e2SMilanka Ringwald 
12133338b9aeSMilanka Ringwald /**
1214*2c737695SMatthias Ringwald  * @format 1H11
12152c708e8aSMilanka Ringwald  * @param subevent_code
12162c708e8aSMilanka Ringwald  * @param con_handle
12172c708e8aSMilanka Ringwald  * @param signal_identifier
12182c708e8aSMilanka Ringwald  * @param status 0 == OK
12192c708e8aSMilanka Ringwald  */
12202c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_ACCEPT                     0x01
12212c708e8aSMilanka Ringwald 
12222c708e8aSMilanka Ringwald /**
12232c708e8aSMilanka Ringwald  * @format 1H1
12242c708e8aSMilanka Ringwald  * @param subevent_code
12252c708e8aSMilanka Ringwald  * @param con_handle
12262c708e8aSMilanka Ringwald  * @param signal_identifier
12272c708e8aSMilanka Ringwald  */
12282c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_REJECT                     0x02
12292c708e8aSMilanka Ringwald 
12302c708e8aSMilanka Ringwald /**
12312c708e8aSMilanka Ringwald  * @format 1H1
12322c708e8aSMilanka Ringwald  * @param subevent_code
12332c708e8aSMilanka Ringwald  * @param con_handle
12342c708e8aSMilanka Ringwald  * @param signal_identifier
12352c708e8aSMilanka Ringwald  */
12362c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT             0x03
12372c708e8aSMilanka Ringwald 
12382c708e8aSMilanka Ringwald /**
12393338b9aeSMilanka Ringwald  * @format 1HB1
12403338b9aeSMilanka Ringwald  * @param subevent_code
12413338b9aeSMilanka Ringwald  * @param con_handle
12423338b9aeSMilanka Ringwald  * @param bd_addr
12433338b9aeSMilanka Ringwald  * @param status 0 == OK
12443338b9aeSMilanka Ringwald  */
12452c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED     0x04
1246a23045e2SMilanka Ringwald 
12473338b9aeSMilanka Ringwald /**
12483338b9aeSMilanka Ringwald  * @format 1
12493338b9aeSMilanka Ringwald  * @param subevent_code
12503338b9aeSMilanka Ringwald  */
12512c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED        0x05
12523338b9aeSMilanka Ringwald 
12533338b9aeSMilanka Ringwald /**
12543338b9aeSMilanka Ringwald  * @format 1H1111
12553338b9aeSMilanka Ringwald  * @param subevent_code
12563338b9aeSMilanka Ringwald  * @param handle
12573338b9aeSMilanka Ringwald  * @param seid        0x01 – 0x3E
12583338b9aeSMilanka Ringwald  * @param in_use      0-not in use, 1-in use
12593338b9aeSMilanka Ringwald  * @param media_type  0-audio, 1-video, 2-multimedia
12603338b9aeSMilanka Ringwald  * @param sep_type    0-source, 1-sink
12613338b9aeSMilanka Ringwald  */
12622c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND                  0x06
12633338b9aeSMilanka Ringwald 
12643338b9aeSMilanka Ringwald /**
12653338b9aeSMilanka Ringwald  * @format 1H11111111
12663338b9aeSMilanka Ringwald  * @param subevent_code
12673338b9aeSMilanka Ringwald  * @param con_handle
12683338b9aeSMilanka Ringwald  * @param media_type
1269ea7bd529SMilanka Ringwald  * @param sampling_frequency_bitmap
1270ea7bd529SMilanka Ringwald  * @param channel_mode_bitmap
1271ea7bd529SMilanka Ringwald  * @param block_length_bitmap
1272ea7bd529SMilanka Ringwald  * @param subbands_bitmap
1273ea7bd529SMilanka Ringwald  * @param allocation_method_bitmap
12743338b9aeSMilanka Ringwald  * @param min_bitpool_value
12753338b9aeSMilanka Ringwald  * @param max_bitpool_value
12763338b9aeSMilanka Ringwald  */
12772c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY          0x07
12783338b9aeSMilanka Ringwald 
12793338b9aeSMilanka Ringwald /**
1280*2c737695SMatthias Ringwald  * @format 1H12LV
12813338b9aeSMilanka Ringwald  * @param subevent_code
12823338b9aeSMilanka Ringwald  * @param con_handle
12833338b9aeSMilanka Ringwald  * @param media_type
12843338b9aeSMilanka Ringwald  * @param media_codec_type
12853338b9aeSMilanka Ringwald  * @param media_codec_information_len
12863338b9aeSMilanka Ringwald  * @param media_codec_information
12873338b9aeSMilanka Ringwald  */
12882c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY        0x08
1289a23045e2SMilanka Ringwald 
1290ea7bd529SMilanka Ringwald /**
129160099f8bSMilanka Ringwald  * @format 1H1121111111
1292ea7bd529SMilanka Ringwald  * @param subevent_code
1293ea7bd529SMilanka Ringwald  * @param con_handle
1294ea7bd529SMilanka Ringwald  * @param reconfigure
1295ea7bd529SMilanka Ringwald  * @param media_type
1296ea7bd529SMilanka Ringwald  * @param sampling_frequency
1297ea7bd529SMilanka Ringwald  * @param channel_mode
1298ea7bd529SMilanka Ringwald  * @param num_channels
1299ea7bd529SMilanka Ringwald  * @param block_length
1300ea7bd529SMilanka Ringwald  * @param subbands
1301ea7bd529SMilanka Ringwald  * @param allocation_method
1302ea7bd529SMilanka Ringwald  * @param min_bitpool_value
1303ea7bd529SMilanka Ringwald  * @param max_bitpool_value
1304ea7bd529SMilanka Ringwald  */
13052c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION        0x09
1306ea7bd529SMilanka Ringwald 
1307ea7bd529SMilanka Ringwald /**
1308*2c737695SMatthias Ringwald  * @format 1H112LV
1309ea7bd529SMilanka Ringwald  * @param subevent_code
1310ea7bd529SMilanka Ringwald  * @param con_handle
1311ea7bd529SMilanka Ringwald  * @param reconfigure
1312ea7bd529SMilanka Ringwald  * @param media_type
1313ea7bd529SMilanka Ringwald  * @param media_codec_type
1314ea7bd529SMilanka Ringwald  * @param media_codec_information_len
1315ea7bd529SMilanka Ringwald  * @param media_codec_information
1316ea7bd529SMilanka Ringwald  */
13172c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION      0x0A
1318decc740cSMilanka Ringwald 
1319decc740cSMilanka Ringwald 
1320decc740cSMilanka Ringwald /** AVRCP Subevent */
1321decc740cSMilanka Ringwald 
1322decc740cSMilanka Ringwald /**
1323decc740cSMilanka Ringwald  * @format 1H2B1
1324decc740cSMilanka Ringwald  * @param subevent_code
1325decc740cSMilanka Ringwald  * @param con_handle
1326decc740cSMilanka Ringwald  * @param local_cid
1327decc740cSMilanka Ringwald  * @param bd_addr
1328decc740cSMilanka Ringwald  * @param status 0 == OK
1329decc740cSMilanka Ringwald  */
1330decc740cSMilanka Ringwald #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED     0x01
1331decc740cSMilanka Ringwald 
1332decc740cSMilanka Ringwald /**
1333decc740cSMilanka Ringwald  * @format 1H
1334decc740cSMilanka Ringwald  * @param subevent_code
1335decc740cSMilanka Ringwald  * @param con_handle
1336decc740cSMilanka Ringwald  */
1337decc740cSMilanka Ringwald #define AVRCP_SUBEVENT_CONNECTION_CLOSED        0x02
1338decc740cSMilanka Ringwald 
1339cd41da7eSMilanka Ringwald #define AVRCP_NOW_PLAYING_INFO                  0x03
1340cd41da7eSMilanka Ringwald /**
1341cd41da7eSMilanka Ringwald  * @format 1HJVJVJVJV114
1342cd41da7eSMilanka Ringwald  * @param subevent_code
1343cd41da7eSMilanka Ringwald  * @param con_handle
1344cd41da7eSMilanka Ringwald  * @param title_len
1345cd41da7eSMilanka Ringwald  * @param title
1346cd41da7eSMilanka Ringwald  * @param artist_len
1347cd41da7eSMilanka Ringwald  * @param artist
1348cd41da7eSMilanka Ringwald  * @param album_len
1349cd41da7eSMilanka Ringwald  * @param album
1350cd41da7eSMilanka Ringwald  * @param genre_len
1351cd41da7eSMilanka Ringwald  * @param genre
1352cd41da7eSMilanka Ringwald  * @param track
1353cd41da7eSMilanka Ringwald  * @param total_tracks
1354cd41da7eSMilanka Ringwald  * @param song_length in ms
1355cd41da7eSMilanka Ringwald  */
1356cd41da7eSMilanka Ringwald 
1357cd41da7eSMilanka Ringwald 
1358941b3855SMatthias Ringwald #endif
1359