2 * Open Adaptation Layer (OAL)
4 * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd.
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
10 * http://www.apache.org/licenses/LICENSE-2.0
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.
26 #include <sys/types.h>
28 #include <oal-manager.h>
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*/\
213 #define GENERATE_ENUM(ENUM) ENUM,
214 #define GENERATE_STRING(STRING) #STRING,
216 typedef enum EVENT_ENUM {
217 FOREACH_EVENT(GENERATE_ENUM)
220 #ifdef _OAL_EVENT_DISPATCHER_C_
221 const char *str_event[] = {
222 FOREACH_EVENT(GENERATE_STRING)
225 extern const char *str_event[];
228 /*********Datastructures for Local Adapter events ******************/
231 bt_address_t devices[0];
232 } event_device_list_t;
235 remote_device_t device_info;
236 uint8_t adv_data[62];
238 } event_ble_dev_found_t;
241 remote_device_t device_info;
246 service_uuid_t service_list[0];
247 } event_adapter_services_t;
251 bt_address_t addr_list[10];
252 } event_adapter_profile_connected_devices;
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;
267 remote_device_t device_info;
268 uint8_t adv_data[62];
270 } event_dev_properties_t;
272 /*********Datastructures for Remote Device events ******************/
274 bt_address_t address;
276 service_uuid_t service_list[0];
277 } event_dev_services_t;
280 remote_device_t device_info;
282 } event_dev_passkey_t;
285 bt_address_t address;
286 oal_service_t service_id;
287 } event_dev_authorize_req_t;
290 bt_address_t address;
295 } event_socket_authorize_req_t;
298 bt_address_t address;
303 bt_address_t address;
305 } event_dev_conn_status_t;
307 typedef event_dev_conn_status_t event_dev_bond_failed_t;
310 bt_address_t address;
311 unsigned int trust_val;
312 } event_device_trusted_profiles_t;
315 bt_address_t address;
319 } event_dev_rssi_info_t;
325 } event_dev_dbfw_plus_info_t;
327 /*********Datastructures for HID callback******************/
328 /* HID :: connection state callback response data */
330 bt_address_t address;
334 /********* Datastructures for Socket event ******************/
335 /* SOCKET:: socket outgoing client connection event data */
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;
342 /*********Datastructures for HDP callback******************/
343 /* HDP: App registration event data */
347 } event_hdp_app_reg_t;
349 /* HDP: Channel connection event data */
355 bt_address_t address;
356 } event_hdp_channel_conn_t;
360 oal_uuid_t server_uuid;
361 } event_gatts_register_t;
366 } event_gatts_mtu_changed_t;
373 } event_gatts_phy_updated_t;
380 } event_gatts_phy_read_t;
387 } event_gattc_phy_updated_t;
394 } event_gattc_phy_read_t;
398 } event_ble_adv_status;
403 } event_ble_multiadv_status;
405 /*GATT:: connection state callback response data*/
409 bt_address_t address;
411 } event_gatts_conn_t;
417 } event_gatts_srvc_t;
420 event_gatts_srvc_t gatt_srvc_stat;
421 oal_gatt_srvc_id_t gatt_srvc_id;
422 } event_gatts_srvc_prm_t;
425 event_gatts_srvc_t gatt_srvc_stat;
427 } event_gatts_incld_srvc_t;
430 event_gatts_srvc_t gatt_srvc_stat;
432 oal_uuid_t descrptr_uuid;
433 } event_gatts_srvc_descr_t;
436 event_gatts_srvc_t gatt_srvc_stat;
438 oal_uuid_t charctr_uuid;
439 } event_gatts_srvc_charctr_t;
446 } gatts_trans_attr_t;
449 gatts_trans_attr_t attr_trans;
450 bt_address_t address;
452 } event_gatts_srvc_read_attr_t;
455 gatts_trans_attr_t attr_trans;
458 bt_address_t address;
459 } event_gatts_srvc_acquire_attr_t ;
462 gatts_trans_attr_t attr_trans;
464 bt_address_t address;
465 uint8_t value[OAL_GATT_MAX_ATTR_LEN];
468 } event_gatts_srvc_write_attr_t;
470 #ifdef TIZEN_BLUEDROID_PORTING
472 bt_address_t address;
476 } event_gatts_srvc_exec_write_attr_t;
482 } event_gatts_respons_t;
488 bt_address_t address;
489 } event_gatts_ind_cnfrm_t;
496 bt_address_t address;
497 } event_gatts_notif_t;
499 /* BLE: Scan Result Callback data */
503 bt_address_t address;
507 uint8_t secondary_phy;
508 uint8_t advertising_sid;
510 uint16_t periodic_adv_int;
511 uint8_t adv_data[BLE_ADV_DATA_LENGTH];
513 uint8_t scan_rsp_data[BLE_ADV_DATA_LENGTH];
514 int scan_rsp_data_len;
515 } event_ble_scan_result_info;
520 oal_uuid_t client_uuid;
521 } event_gattc_register_t;
527 bt_address_t address;
528 } event_gattc_conn_t;
533 } event_gattc_conn_status_t;
536 event_gattc_conn_status_t conn_status;
537 oal_gatt_srvc_id_t srvc_id;
538 } event_gattc_service_result_t;
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;
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;
557 oal_gatt_id_t char_id;
558 oal_gatt_srvc_id_t srvc_id;
559 } event_gattc_regdereg_notify_t;
562 #define BLE_READ_NOTIFY_DATA_LENGTH 600
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;
574 bt_address_t address;
579 } event_gattc_service_changed_data;
584 uint8_t data[BLE_READ_NOTIFY_DATA_LENGTH];
585 event_gattc_descriptor_result_t uuid_status;
586 } event_gattc_read_data;
588 typedef event_gattc_descriptor_result_t event_gattc_write_data;
594 } event_gattc_mtu_configured_t;
597 /********* AVRCP CT role callback data structures ******************/
598 #define MEDIA_ATTIRBUTE_STRING_LENGTH 100
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;
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;
618 #define BTRCC_UID_SIZE 8
619 typedef uint8_t notif_event_avrcp_ct_track_id[BTRCC_UID_SIZE];
621 typedef uint32_t notif_event_avrcp_ct_song_pos;
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;
632 notif_event_avrcp_ct_play_status_t play_status;
633 } event_avrcp_ct_play_status_t;
635 #define TDS_ACTIVATION_DATA_LENGTH 100
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;
645 #endif /* __cplusplus */
646 #endif /*_OAL_EVENT_H_*/