BT 5.0: Add APIs to support set/read PHYs
[platform/core/connectivity/bluetooth-frwk.git] / bt-oal / include / oal-event.h
1 /*
2  * Open Adaptation Layer (OAL)
3  *
4  * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *              http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19
20 #include <stdint.h>
21
22 #ifndef _OAL_EVENT_H_
23 #define _OAL_EVENT_H_
24
25 #include <glib.h>
26 #include <sys/types.h>
27
28 #include <oal-manager.h>
29 #include <oal-gatt.h>
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 #define FOREACH_EVENT(EVENT) \
36         EVENT(OAL_EVENT_ADAPTER_ENABLED)        \
37         EVENT(OAL_EVENT_ADAPTER_DISABLED)       \
38         EVENT(OAL_EVENT_ADAPTER_HARDWARE_ERROR) \
39         EVENT(OAL_EVENT_ADAPTER_PROPERTY_ADDRESS)                       /* bt_address_t */      \
40         EVENT(OAL_EVENT_ADAPTER_PROPERTY_NAME)                          /* char string */\
41         EVENT(OAL_EVENT_ADAPTER_PROPERTY_VERSION)                       /* char string */\
42         EVENT(OAL_EVENT_ADAPTER_PROPERTY_SERVICES)                      /* event_adapter_services_t */\
43         EVENT(OAL_EVENT_ADAPTER_PROPERTY_A2DP_ROLE)                     /* uint32_t */\
44         EVENT(OAL_EVENT_ADAPTER_MODE_NON_CONNECTABLE)   \
45         EVENT(OAL_EVENT_ADAPTER_MODE_CONNECTABLE)       \
46         EVENT(OAL_EVENT_ADAPTER_MODE_DISCOVERABLE)      \
47         EVENT(OAL_EVENT_ADAPTER_MODE_DISCOVERABLE_TIMEOUT)      /* uint32_t */\
48         EVENT(OAL_EVENT_ADAPTER_BONDED_DEVICE_LIST)             /* event_device_list_t */\
49         EVENT(OAL_EVENT_ADAPTER_INQUIRY_STARTED)        \
50         EVENT(OAL_EVENT_ADAPTER_INQUIRY_RESULT_BREDR_ONLY)      /* event_dev_found_t */\
51         EVENT(OAL_EVENT_ADAPTER_INQUIRY_RESULT_BLE)             /* event_ble_dev_found_t */\
52         EVENT(OAL_EVENT_ADAPTER_INQUIRY_FINISHED)       \
53         EVENT(OAL_EVENT_ADAPTER_PROFILE_CONNECTED_DEVICES)      \
54         EVENT(OAL_EVENT_CONTROLLER_ERROR_RECEIVED)              /* */\
55         EVENT(OAL_EVENT_DEVICE_PROPERTIES)                                      /* remote_device_t */\
56         EVENT(OAL_EVENT_DEVICE_NAME)                                            /* remote_device_t */\
57         EVENT(OAL_EVENT_DEVICE_VIDPID)                                          /* remote_device_t */\
58         EVENT(OAL_EVENT_DEVICE_SERVICES)                                        /* event_dev_services_t */\
59         EVENT(OAL_EVENT_DEVICE_PIN_REQUEST)                             /* remote_device_t */\
60         EVENT(OAL_EVENT_DEVICE_PASSKEY_ENTRY_REQUEST)           /* remote_device_t */\
61         EVENT(OAL_EVENT_DEVICE_PASSKEY_CONFIRMATION_REQUEST)/* event_dev_passkey_t */\
62         EVENT(OAL_EVENT_DEVICE_PASSKEY_DISPLAY)                 /* event_dev_passkey_t */\
63         EVENT(OAL_EVENT_DEVICE_SSP_CONSENT_REQUEST)             /* remote_device_t */\
64         EVENT(OAL_EVENT_DEVICE_BONDING_SUCCESS)                 /* bt_address_t */\
65         EVENT(OAL_EVENT_DEVICE_BONDING_REMOVED)                 /* bt_address_t */\
66         EVENT(OAL_EVENT_DEVICE_BONDING_FAILED)                          /* event_dev_bond_failed_t */\
67         EVENT(OAL_EVENT_DEVICE_AUTHORIZE_REQUEST)                       /* event_dev_authorize_req_t */\
68         EVENT(OAL_EVENT_SOCKET_AUTHORIZE_REQUEST)                       /* event_socket_authorize_req_t */\
69         EVENT(OAL_EVENT_DEVICE_ACL_CONNECTED)                           /* bt_address_t */\
70         EVENT(OAL_EVENT_DEVICE_ACL_DISCONNECTED)                        /* bt_address_t */\
71         EVENT(OAL_EVENT_DEVICE_LE_CONNECTED)                            /* bt_address_t */\
72         EVENT(OAL_EVENT_DEVICE_LE_DISCONNECTED)                 /* bt_address_t */\
73         EVENT(OAL_EVENT_DEVICE_TRUSTED)                 /* Remote Device is Trusted */\
74         EVENT(OAL_EVENT_DEVICE_UNTRUSTED)                       /* Remote Device is UnTrusted */\
75         EVENT(OAL_EVENT_DEVICE_TRUSTED_PROFILES_CHANGED)                /* event_device_trusted_profiles_t */\
76         EVENT(OAL_EVENT_RSSI_MONITORING_ENABLED)        /* event_dev_rssi_info_t */\
77         EVENT(OAL_EVENT_RSSI_MONITORING_DISABLED)       /* event_dev_rssi_info_t */\
78         EVENT(OAL_EVENT_RSSI_ALERT_RECEIVED)            /* event_dev_rssi_info_t */\
79         EVENT(OAL_EVENT_RAW_RSSI_RECEIVED)              /* */\
80         EVENT(OAL_EVENT_DEVICE_DBFW_PLUS_INFO)          /* event_dev_dbfw_plus_info_t */\
81         EVENT(OAL_EVENT_OAL_INITIALISED_SUCCESS)                /* OAL Initialisation event */  \
82         EVENT(OAL_EVENT_OAL_INITIALISED_FAILED)                 /* OAL Initialisation event */  \
83         EVENT(OAL_EVENT_HID_CONNECTED)                                          /* event_hid_conn_t */\
84         EVENT(OAL_EVENT_HID_DISCONNECTED)                                       /* event_hid_conn_t */\
85         EVENT(OAL_EVENT_HID_DEVICE_CONNECTED)                           /* event_hid_conn_t */\
86         EVENT(OAL_EVENT_HID_DEVICE_DISCONNECTED)                        /* event_hid_conn_t */\
87         EVENT(OAL_EVENT_SOCKET_OUTGOING_CONNECTED)                 /* RFCOMM */  \
88         EVENT(OAL_EVENT_SOCKET_DISCONNECTED)            /* RFCOMM */  \
89         EVENT(OAL_EVENT_AUDIO_CONNECTING)                   /* bt_address_t */ \
90         EVENT(OAL_EVENT_AUDIO_DISCONNECTING)                /* bt_address_t*/ \
91         EVENT(OAL_EVENT_AUDIO_CONNECTED)                                        /* bt_address_t*/ \
92         EVENT(OAL_EVENT_AUDIO_DISCONNECTED)                             /* bt_address_t*/  \
93         EVENT(OAL_EVENT_AUDIO_STOPPED)                                          /* bt_address_t*/  \
94         EVENT(OAL_EVENT_AUDIO_STARTED)                                          /* bt_address_t*/  \
95         EVENT(OAL_EVENT_A2DP_SINK_DISCONNECTED)                                 /* bt_address_t*/  \
96         EVENT(OAL_EVENT_A2DP_SINK_CONNECTED)                                    /* bt_address_t*/  \
97         EVENT(OAL_EVENT_A2DP_SINK_DISCONNECTING)                                /* bt_address_t*/  \
98         EVENT(OAL_EVENT_A2DP_SINK_CONNECTING)                                   /* bt_address_t*/ \
99         EVENT(OAL_EVENT_HFP_DISCONNECTED)                /* bt_address_t*/ \
100         EVENT(OAL_EVENT_HFP_CONNECTING)                /* bt_address_t*/ \
101         EVENT(OAL_EVENT_HFP_CONNECTED)                /* bt_address_t*/ \
102         EVENT(OAL_EVENT_HFP_DISCONNECTING)                /* bt_address_t*/ \
103         EVENT(OAL_EVENT_HFP_AUDIO_DISCONNECTED)                /* bt_address_t*/ \
104         EVENT(OAL_EVENT_HFP_AUDIO_CONNECTING)                /* bt_address_t*/ \
105         EVENT(OAL_EVENT_HFP_AUDIO_CONNECTED)                /* bt_address_t*/ \
106         EVENT(OAL_EVENT_HFP_AUDIO_DISCONNECTING)                /* bt_address_t*/ \
107         EVENT(OAL_EVENT_HF_CLIENT_DISCONNECTED)       /* bt_address_t*/ \
108         EVENT(OAL_EVENT_HF_CLIENT_CONNECTING)         /* bt_address_t*/ \
109         EVENT(OAL_EVENT_HF_CLIENT_CONNECTED)          /* bt_address_t*/ \
110         EVENT(OAL_EVENT_HF_CLIENT_DISCONNECTING)     /* bt_address_t*/ \
111         EVENT(OAL_EVENT_AVRCP_CONNECTED)                        /* AVRCP Target connected */ \
112         EVENT(OAL_EVENT_AVRCP_DISCONNECTED)                     /* AVRCP Target disconnected */ \
113         EVENT(OAL_EVENT_AVRCP_REMOTE_FEATURES)                  /* AVRCP FATURE INFO*/  \
114         EVENT(OAL_EVENT_AVRCP_SETTING_EQUALIZER_STATUS)         /* bt_address_t*/  \
115         EVENT(OAL_EVENT_AVRCP_SETTING_REPEAT_STATUS)            /* bt_address_t*/  \
116         EVENT(OAL_EVENT_AVRCP_SETTING_SHUFFLE_STATUS)           /* bt_address_t*/  \
117         EVENT(OAL_EVENT_AVRCP_SETTING_SCAN_STATUS)                      /* bt_address_t*/  \
118         EVENT(OAL_EVENT_AVRCP_VOLUME_MUTE_CHANGED)\
119         EVENT(OAL_EVENT_AVRCP_DELAY_CHANGED)\
120         EVENT(OAL_EVENT_AVRCP_CT_CONNECTED)                   /* bt_address_t*/ \
121         EVENT(OAL_EVENT_AVRCP_CT_DISCONNECTED)                /* bt_address_t*/ \
122         EVENT(OAL_EVENT_AVRCP_CT_EQUALIZER_STATUS)            /* property_value*/ \
123         EVENT(OAL_EVENT_AVRCP_CT_REPEAT_STATUS)               /* property_value*/ \
124         EVENT(OAL_EVENT_AVRCP_CT_SHUFFLE_STATUS)              /* property_value*/ \
125         EVENT(OAL_EVENT_AVRCP_CT_SCAN_STATUS)                 /* property_value*/ \
126         EVENT(OAL_EVENT_AVRCP_CT_NOTIF_PLAY_STATUS_CHANGED)   /* property_value*/ \
127         EVENT(OAL_EVENT_AVRCP_CT_NOTIF_PLAY_POS_CHANGED)         /* property_value*/ \
128         EVENT(OAL_EVENT_AVRCP_CT_NOTIF_TRACK_CHANGE)          /* trak_info*/ \
129         EVENT(OAL_EVENT_AVRCP_CT_MEDIA_INFO)                    /* trak_info response*/ \
130         EVENT(OAL_EVENT_AVRCP_CT_PLAY_STATUS)                                           \
131         EVENT(OAL_EVENT_AVRCP_CT_PASS_CMD_RES)          /* pass through command response*/ \
132         EVENT(OAL_EVENT_AVRCP_CT_PLAYER_SETTING_RES)            /* palyer setting response*/ \
133         EVENT(OAL_EVENT_AVRCP_CT_GET_PROPERTY_RES)            /* get propery response*/ \
134         EVENT(OAL_EVENT_HDP_APP_REGISTERED)                     /* HDP APP registered */ \
135         EVENT(OAL_EVENT_HDP_APP_UNREGISTERED)                   /* HDP APP un-registered */ \
136         EVENT(OAL_EVENT_HDP_CHANNEL_CONNECTED)                  /* HDP channel connected */ \
137         EVENT(OAL_EVENT_HDP_CHANNEL_DESTROYED)                  /* HDP channel destroyed */ \
138         EVENT(OAL_EVENT_BLE_SERVER_INSTANCE_INITIALISED)    /*event_ble_adv_status */ \
139                 EVENT(OAL_EVENT_BLE_ENABLED)                    /*ble adapter enable */ \
140                 EVENT(OAL_EVENT_BLE_DISABLED)                   /*ble adapter disable */ \
141         EVENT(OAL_EVENT_BLE_ADVERTISING_STARTED)                        /* NULL */\
142         EVENT(OAL_EVENT_BLE_ADVERTISING_STOPPED)                        /* NULL*/\
143         EVENT(OAL_EVENT_BLE_MULTI_ADVERTISING_ENABLE)           /* NULL*/\
144         EVENT(OAL_EVENT_BLE_MULTI_ADVERTISING_DISABLE)          /* NULL*/\
145         EVENT(OAL_EVENT_BLE_MULTI_ADVERTISING_SET_INST_DATA)            /* NULL*/\
146         EVENT(OAL_EVENT_BLE_MULTI_ADVERTISING_UPDATE)           /* NULL*/\
147         EVENT(OAL_EVENT_BLE_DISCOVERY_STARTED)                          /* NULL */\
148         EVENT(OAL_EVENT_BLE_DISCOVERY_STOPPED)                          /* NULL */\
149         EVENT(OAL_EVENT_BLE_DISCOVERY_FINISHED)                          /* NULL */\
150         EVENT(OAL_EVENT_BLE_REMOTE_DEVICE_FOUND)                /* event_ble_scan_result_info */\
151         EVENT(OAL_EVENT_BLE_LOCAL_FEATURES)                     /* adapter le features */\
152         EVENT(OAL_EVENT_GATTS_SERVICE_ADDED)                /* gatts Service Added */\
153         EVENT(OAL_EVENT_GATTS_INCLUDED_SERVICE_ADDED)       /* gatts Included Service Added */\
154         EVENT(OAL_EVENT_GATTS_SERVICE_STARTED)              /* gatts Service Started */\
155         EVENT(OAL_EVENT_GATTS_SERVICE_STOPED)               /* gatts Service Stoped */\
156         EVENT(OAL_EVENT_GATTS_SERVICE_DELETED)              /* gatts Service Deleted  */\
157         EVENT(OAL_EVENT_GATTS_CHARACTERISTIC_ADDED)         /* gatts Characteristic Added*/\
158         EVENT(OAL_EVENT_GATTS_DESCRIPTOR_ADDED)             /* gatts Descriptor added */\
159         EVENT(OAL_EVENT_GATTS_CONNECTION_COMPLETED)         /* gatts Connection completed */\
160         EVENT(OAL_EVENT_GATTS_DISCONNECTION_COMPLETED)      /* gatts DisConnection completed */\
161         EVENT(OAL_EVENT_GATTS_REQUEST_READ)                 /* gatts Request Read from client */\
162         EVENT(OAL_EVENT_GATTS_REQUEST_WRITE)                /* gatts Request Write from client */\
163         EVENT(OAL_EVENT_GATTS_EXEC_REQUEST_WRITE)                /* gatts Exec Request Write from client */\
164         EVENT(OAL_EVENT_GATTS_RESPONSE_CONFIRMED)           /* gatts Response confirmation */\
165         EVENT(OAL_EVENT_GATTS_IND_CONFIRM)                  /* gatts Indiction confirmation from remote client */\
166         EVENT(OAL_EVENT_GATTS_NOTIFICATION)                 /* gatts Notification from remote client */\
167         EVENT(OAL_EVENT_GATTS_MTU_CHANGED)                  /* gatts MTU changed */\
168         EVENT(OAL_EVENT_GATTS_PHY_UPDATED)                      /* gatts PHY UPDATED event */\
169         EVENT(OAL_EVENT_GATTS_PHY_READ)                         /* gatts PHY READ event */\
170         EVENT(OAL_EVENT_GATTC_PHY_UPDATED)                      /* gattc PHY UPDATED event */\
171         EVENT(OAL_EVENT_GATTC_PHY_READ)                         /* gattc PHY READ event */\
172         EVENT(OAL_EVENT_GATTC_REGISTRATION)     /* gattc Registration Confirmed */\
173         EVENT(OAL_EVENT_GATTC_CONNECTION_COMPLETED)     /* gattc connection completed */\
174         EVENT(OAL_EVENT_GATTC_DISCONNECTION_COMPLETED)  /* gattc disconnection */\
175         EVENT(OAL_EVENT_GATTC_NOTIFICATION_REGISTERED)  /* gattc notification register */\
176         EVENT(OAL_EVENT_GATTC_NOTIFICATION_DEREGISTERED)        /* gattc notification deregister */\
177         EVENT(OAL_EVENT_GATTC_SERVICE_SEARCH_RESULT)    /* gattc service search result info */\
178         EVENT(OAL_EVENT_GATTC_SERVICE_SEARCH_DONE)      /* gattc service search complete */\
179         EVENT(OAL_EVENT_GATTC_CHARAC_SERACH_RESULT)     /* gattc characteristic search result info */\
180         EVENT(OAL_EVENT_GATTC_DESC_SERACH_RESULT)       /* gattc descriptor search result info */\
181         EVENT(OAL_EVENT_GATTC_INCL_SRVC_SERACH_RESULT)  /* gattc included service search result info */\
182         EVENT(OAL_EVENT_GATTC_REMOTE_RSSI)      /* remote device rssi */\
183         EVENT(OAL_EVENT_GATTC_NOTIFY_DATA)      /* gattc notify data */\
184         EVENT(OAL_EVENT_GATTC_READ_CHARAC)      /* gattc read characteristics */\
185         EVENT(OAL_EVENT_GATTC_WRITE_CHARAC)     /* gattc write characteristics */\
186         EVENT(OAL_EVENT_GATTC_READ_DESCR)       /* gattc read descriptor */\
187         EVENT(OAL_EVENT_GATTC_WRITE_DESCR)      /* gattc write descriptor */\
188         EVENT(OAL_EVENT_GATTC_MTU_EXCHANGE_COMPLETED)   /* gattc mtu configure complete */\
189         EVENT(OAL_EVENT_GATTC_SERVICE_CHANGED_IND)      /* gattc service changed indication */\
190         EVENT(OAL_EVENT_GATTC_PREPARE_WRITE)    /* gattc prepare write */\
191         EVENT(OAL_EVENT_GATTC_EXECUTE_WRITE)    /* gattc execute write */\
192         EVENT(OAL_EVENT_GATTS_REQUEST_ACQUIRE_WRITE)    /* gattc acquire write */\
193         EVENT(OAL_EVENT_GATTS_REQUEST_ACQUIRE_NOTIFY)    /* gattc acquire notify */\
194         EVENT(OAL_EVENT_MESH_NETWORK_PROXY_ADDED)    /* mesh network proxy_added */\
195         EVENT(OAL_EVENT_MESH_NETWORK_ATTACHED)    /* mesh network attached */\
196         EVENT(OAL_EVENT_MESH_NETWORK_DESTROYED)    /* mesh network destroyed */\
197         EVENT(OAL_EVENT_MESH_SCAN_STARTED)    /* mesh network scan start status */\
198         EVENT(OAL_EVENT_MESH_SCAN_FINISHED)    /* mesh network scan stop status*/\
199         EVENT(OAL_EVENT_MESH_SCAN_RESULT)    /* mesh Scan Result */\
200         EVENT(OAL_EVENT_MESH_PROVISIONING_STARTED)  /* Provisioning started successfully */\
201         EVENT(OAL_EVENT_MESH_PROVISIONING_FAILED)  /* Provisioning Failed */\
202         EVENT(OAL_EVENT_MESH_PROVISIONING_DATA_REQUESTED)  /* Provisioning Data Requested */\
203         EVENT(OAL_EVENT_MESH_AUTHENTICATION_REQUESTED)  /* Authentication requsted */\
204         EVENT(OAL_EVENT_MESH_PROVISIONING_FINISHED)  /* Provisioning Completed Event */\
205         EVENT(OAL_EVENT_MESH_NETKEY_EXECUTE_EVENT)  /* Subnet Operations (Add/Update/Delete) Event */\
206         EVENT(OAL_EVENT_MESH_APPKEY_EXECUTE_EVENT)  /* AppKey Operations (Add/Update/Delete) Event */\
207         EVENT(OAL_EVENT_MESH_DEVKEY_MESSAGE_RECEIVED)  /* DevKey message received Event */\
208         EVENT(OAL_EVENT_MESH_MODEL_MESSAGE_RECEIVED)  /* Message received Event */\
209         EVENT(OAL_EVENT_TDS_ACTIVATION_REQUESTED)  /* Message received Event */\
210         EVENT(OAL_EVENT_END)                                /* End of event*/\
211
212
213 #define GENERATE_ENUM(ENUM) ENUM,
214 #define GENERATE_STRING(STRING) #STRING,
215
216 typedef enum EVENT_ENUM {
217         FOREACH_EVENT(GENERATE_ENUM)
218 } oal_event_t;
219
220 #ifdef _OAL_EVENT_DISPATCHER_C_
221 const char *str_event[] = {
222         FOREACH_EVENT(GENERATE_STRING)
223 };
224 #else
225 extern const char *str_event[];
226 #endif
227
228 /*********Datastructures for Local Adapter events ******************/
229 typedef struct {
230         int num;
231         bt_address_t devices[0];
232 } event_device_list_t;
233
234 typedef struct {
235         remote_device_t device_info;
236         uint8_t adv_data[62];
237         int adv_len;
238 } event_ble_dev_found_t;
239
240 typedef struct {
241         remote_device_t device_info;
242 } event_dev_found_t;
243
244 typedef struct {
245         int num;
246         service_uuid_t service_list[0];
247 } event_adapter_services_t;
248
249 typedef struct {
250         uint8_t count;
251         bt_address_t addr_list[10];
252 } event_adapter_profile_connected_devices;
253
254 typedef struct {
255         /* TODO Add more features */
256         uint8_t  max_adv_instance;
257         uint8_t rpa_offloading;
258         uint8_t max_adv_filter;
259         uint8_t le_2m_phy_support;
260         uint8_t le_coded_phy_support;
261         uint8_t le_extended_advertising_support;
262         uint8_t le_extended_scan_support;
263         uint16_t le_maximum_advertising_data_length;
264 } event_adapter_le_features_t;
265
266 typedef struct {
267         remote_device_t device_info;
268         uint8_t adv_data[62];
269         int adv_len;
270 } event_dev_properties_t;
271
272 /*********Datastructures for Remote Device events ******************/
273 typedef struct {
274         bt_address_t address;
275         int num;
276         service_uuid_t service_list[0];
277 } event_dev_services_t;
278
279 typedef struct {
280         remote_device_t device_info;
281         uint32_t pass_key;
282 } event_dev_passkey_t;
283
284 typedef struct {
285         bt_address_t address;
286         oal_service_t service_id;
287 } event_dev_authorize_req_t;
288
289 typedef struct {
290         bt_address_t address;
291         oal_uuid_t uuid;
292         uint8_t name[249];
293         uint8_t path[249];
294         uint32_t fd;
295 } event_socket_authorize_req_t;
296
297 typedef struct {
298         bt_address_t address;
299         oal_status_t status;
300 } event_dev_trust_t;
301
302 typedef struct {
303         bt_address_t address;
304         oal_status_t status;
305 } event_dev_conn_status_t;
306
307 typedef event_dev_conn_status_t event_dev_bond_failed_t;
308
309 typedef struct {
310         bt_address_t address;
311         unsigned int trust_val;
312 } event_device_trusted_profiles_t;
313
314 typedef struct {
315         bt_address_t address;
316         int link_type;
317         int alert_type;
318         int rssi;
319 } event_dev_rssi_info_t;
320
321 typedef struct {
322         uint8_t event_code;
323         uint8_t data[512];
324         int length;
325 } event_dev_dbfw_plus_info_t;
326
327 /*********Datastructures for HID callback******************/
328 /* HID :: connection state callback response data */
329 typedef struct {
330         bt_address_t address;
331         oal_status_t status;
332 } event_hid_conn_t;
333
334 /********* Datastructures for Socket event ******************/
335 /* SOCKET:: socket outgoing client connection event data */
336 typedef struct {
337         int fd;                 /**< FD of Outgoing client */
338         int sock_type;          /**< Type of socket */
339         bt_address_t address;   /**< Address of remote server */
340 } event_socket_client_conn_t;
341
342 /*********Datastructures for HDP callback******************/
343 /* HDP: App registration event data */
344 typedef struct {
345         int app_id;
346         oal_status_t status;
347 } event_hdp_app_reg_t;
348
349 /* HDP: Channel connection event data */
350 typedef struct {
351         int fd;
352         int app_id;
353         int channel_id;
354         int ch_type;
355         bt_address_t address;
356 } event_hdp_channel_conn_t;
357
358 typedef struct {
359         int server_inst;
360         oal_uuid_t server_uuid;
361 } event_gatts_register_t;
362
363 typedef struct {
364         int conn_id;
365         int mtu_size;
366 } event_gatts_mtu_changed_t;
367
368 typedef struct{
369         int conn_id;
370         int tx_phy;
371         int rx_phy;
372         int status;
373 } event_gatts_phy_updated_t;
374
375 typedef struct{
376         int conn_id;
377         int tx_phy;
378         int rx_phy;
379         int status;
380 } event_gatts_phy_read_t;
381
382 typedef struct{
383         int conn_id;
384         int tx_phy;
385         int rx_phy;
386         int status;
387 } event_gattc_phy_updated_t;
388
389 typedef struct{
390         int conn_id;
391         int tx_phy;
392         int rx_phy;
393         int status;
394 } event_gattc_phy_read_t;
395
396 typedef struct {
397         int server_inst;
398 } event_ble_adv_status;
399
400 typedef struct {
401         int server_inst;
402         int status;
403 } event_ble_multiadv_status;
404
405 /*GATT:: connection state callback response data*/
406 typedef struct {
407         int server_inst;
408         int conn_id;
409         bt_address_t address;
410         int status;
411 } event_gatts_conn_t;
412
413 typedef struct {
414         int server_inst;
415         int servic_hndl;
416         oal_status_t status;
417 } event_gatts_srvc_t;
418
419 typedef struct {
420         event_gatts_srvc_t gatt_srvc_stat;
421         oal_gatt_srvc_id_t gatt_srvc_id;
422 } event_gatts_srvc_prm_t;
423
424 typedef struct {
425         event_gatts_srvc_t gatt_srvc_stat;
426         int incl_srvc_hndl;
427 } event_gatts_incld_srvc_t;
428
429 typedef struct {
430         event_gatts_srvc_t gatt_srvc_stat;
431         int descrptr_hndl;
432         oal_uuid_t descrptr_uuid;
433 } event_gatts_srvc_descr_t;
434
435 typedef struct {
436         event_gatts_srvc_t gatt_srvc_stat;
437         int charctr_hndl;
438         oal_uuid_t charctr_uuid;
439 } event_gatts_srvc_charctr_t;
440
441 typedef struct {
442         int conn_id;
443         int trans_id;
444         int attr_handle;
445         int offset;
446 } gatts_trans_attr_t;
447
448 typedef struct {
449         gatts_trans_attr_t attr_trans;
450         bt_address_t address;
451         uint8_t is_long;
452 } event_gatts_srvc_read_attr_t;
453
454 typedef struct {
455         gatts_trans_attr_t attr_trans;
456         int mtu;
457         char *path;
458         bt_address_t address;
459 } event_gatts_srvc_acquire_attr_t  ;
460
461 typedef struct {
462         gatts_trans_attr_t attr_trans;
463         int length;
464         bt_address_t address;
465         uint8_t value[OAL_GATT_MAX_ATTR_LEN];
466         uint8_t need_rsp;
467         uint8_t is_prep;
468 } event_gatts_srvc_write_attr_t;
469
470 #ifdef TIZEN_BLUEDROID_PORTING
471 typedef struct {
472         bt_address_t address;
473         int conn_id;
474         int trans_id;
475         int exec_write;
476 } event_gatts_srvc_exec_write_attr_t;
477 #endif
478
479 typedef struct {
480         int hndl;
481         oal_status_t status;
482 } event_gatts_respons_t;
483
484 typedef struct {
485         int conn_id;
486         int trans_id;
487         int attr_handle;
488         bt_address_t address;
489 } event_gatts_ind_cnfrm_t;
490
491 typedef struct {
492         int conn_id;
493         int trans_id;
494         int attr_handle;
495         uint8_t notify;
496         bt_address_t address;
497 } event_gatts_notif_t;
498
499 /* BLE: Scan Result Callback data */
500 typedef struct {
501         int rssi;
502         uint8_t addr_type;
503         bt_address_t address;
504         uint8_t is_extended;
505         uint16_t event_type;
506         uint8_t primary_phy;
507         uint8_t secondary_phy;
508         uint8_t advertising_sid;
509         int8_t tx_power;
510         uint16_t periodic_adv_int;
511         uint8_t adv_data[BLE_ADV_DATA_LENGTH];
512         int adv_data_len;
513         uint8_t scan_rsp_data[BLE_ADV_DATA_LENGTH];
514         int scan_rsp_data_len;
515 } event_ble_scan_result_info;
516
517 typedef struct {
518         oal_status_t status;
519         int client_if;
520         oal_uuid_t client_uuid;
521 } event_gattc_register_t;
522
523 typedef struct {
524         oal_status_t status;
525         int client_if;
526         int conn_id;
527         bt_address_t address;
528 } event_gattc_conn_t;
529
530 typedef struct {
531         oal_status_t status;
532         int conn_id;
533 } event_gattc_conn_status_t;
534
535 typedef struct {
536         event_gattc_conn_status_t conn_status;
537         oal_gatt_srvc_id_t srvc_id;
538 } event_gattc_service_result_t;
539
540 typedef struct {
541         int char_prop;
542         event_gattc_conn_status_t conn_status;
543         oal_gatt_id_t char_id;
544         oal_gatt_srvc_id_t srvc_id;
545 } event_gattc_characteristic_result_t;
546
547 typedef struct {
548         event_gattc_conn_status_t conn_status;
549         oal_gatt_id_t char_id;
550         oal_gatt_id_t descr_id;
551         oal_gatt_srvc_id_t srvc_id;
552 } event_gattc_descriptor_result_t;
553
554 typedef struct {
555         oal_status_t status;
556         int conn_id;
557         oal_gatt_id_t char_id;
558         oal_gatt_srvc_id_t srvc_id;
559 } event_gattc_regdereg_notify_t;
560
561
562 #define BLE_READ_NOTIFY_DATA_LENGTH     600
563
564 typedef struct {
565         int is_notify;
566         uint16_t data_len;
567         uint8_t data[BLE_READ_NOTIFY_DATA_LENGTH];
568         bt_address_t address;
569         oal_gatt_id_t char_id;
570         oal_gatt_srvc_id_t srvc_id;
571 } event_gattc_notify_data;
572
573 typedef struct {
574         bt_address_t address;
575         uint8_t change_type;
576         oal_uuid_t uuid;
577         int conn_id;
578         int inst_id;
579 } event_gattc_service_changed_data;
580
581 typedef struct {
582         uint16_t value_type;
583         uint16_t data_len;
584         uint8_t data[BLE_READ_NOTIFY_DATA_LENGTH];
585         event_gattc_descriptor_result_t uuid_status;
586 } event_gattc_read_data;
587
588 typedef event_gattc_descriptor_result_t event_gattc_write_data;
589
590 typedef struct {
591         oal_status_t status;
592         int conn_id;
593         int mtu;
594 } event_gattc_mtu_configured_t;
595
596
597 /********* AVRCP CT role callback data structures ******************/
598 #define MEDIA_ATTIRBUTE_STRING_LENGTH 100
599 typedef struct {
600         uint8_t title_info[MEDIA_ATTIRBUTE_STRING_LENGTH];
601         uint8_t artist_info[MEDIA_ATTIRBUTE_STRING_LENGTH];
602         uint8_t album_info[MEDIA_ATTIRBUTE_STRING_LENGTH];
603         uint64_t playing_time;
604         uint8_t genre_info[MEDIA_ATTIRBUTE_STRING_LENGTH];
605         uint64_t total_track;
606         uint64_t track_number;
607 } event_avrcp_ct_media_info_t;
608
609 typedef enum {
610         OAL_PLAY_STATUS_STOPPED = 0x00,
611         OAL_PLAY_STATUS_PLAYING = 0x01,
612         OAL_PLAY_STATUS_PAUSED = 0x02,
613         OAL_PLAY_STATUS_FWD_SEEK = 0x03,
614         OAL_PLAY_STATUS_REV_SEEK = 0x04,
615         OAL_PLAY_STATUS_ERROR = 0xFF,
616 } notif_event_avrcp_ct_play_status_t;
617
618 #define BTRCC_UID_SIZE  8
619 typedef uint8_t notif_event_avrcp_ct_track_id[BTRCC_UID_SIZE];
620
621 typedef uint32_t notif_event_avrcp_ct_song_pos;
622
623 typedef union {
624         notif_event_avrcp_ct_play_status_t play_status;
625         notif_event_avrcp_ct_track_id track_id;
626         notif_event_avrcp_ct_song_pos song_pos;
627 } event_notif_avrcp_ct_notif_info_t;
628
629 typedef struct {
630         uint8_t song_len;
631         uint8_t song_pos;
632         notif_event_avrcp_ct_play_status_t play_status;
633 } event_avrcp_ct_play_status_t;
634
635 #define TDS_ACTIVATION_DATA_LENGTH 100
636 typedef struct {
637         char address[BT_ADDRESS_STR_LEN];
638         unsigned char org_id;
639         unsigned char tds_data[TDS_ACTIVATION_DATA_LENGTH];
640         unsigned int data_len;
641 } event_tds_activation_requested_t;
642
643 #ifdef __cplusplus
644 }
645 #endif /* __cplusplus */
646 #endif /*_OAL_EVENT_H_*/