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.
20 #ifndef _OAL_MANAGER_H_
21 #define _OAL_MANAGER_H_
25 #include <sys/types.h>
31 #define BT_VERSION_STR_LEN_MAX 30 /**< This specifies maximum adapter version string length */
33 #define BT_DEVICE_NAME_LENGTH_MAX 248 /**< This specifies maximum device name length */
35 #define BT_ADDRESS_BYTES_NUM 6 /**< This specifies bluetooth device address length */
37 #define OAL_UUID_MAX_LENGTH 16/**< This specifies ble service UUID Length */
39 #define BLE_ADV_DATA_LENGTH 31 /**< This specifies Advertising Data Length */
41 #define BT_ADDRESS_STR_LEN 18 /**< BT address String length> */
43 #define BT_MAX_SERVICES_FOR_DEVICE 60 /**< This specifies the Maximum UUID Id mentioned in bta_api.h>*/
45 #define BLUETOOTH_UUID_STRING_MAX 50
47 #define BT_DEVICE_MANUFACTURER_DATA_LEN_MAX 240 /**<This specifies the Maximum manufacturer data Length>*/
49 typedef void (*oal_event_callback)(int event, gpointer event_data, gsize size);
52 unsigned char addr[BT_ADDRESS_BYTES_NUM];
56 char name[BT_DEVICE_NAME_LENGTH_MAX + 1];
60 int data_len; /**< manafacturer specific data length */
61 char data[BT_DEVICE_MANUFACTURER_DATA_LEN_MAX];
62 } oal_manufacturer_data_t;
67 OAL_STATUS_INTERNAL_ERROR,
70 OAL_STATUS_INVALID_PARAM,
71 OAL_STATUS_RMT_DEVICE_DOWN,
72 OAL_STATUS_AUTH_FAILED,
73 OAL_STATUS_NOT_SUPPORT, //For APIs not supported
74 OAL_STATUS_NOT_PAIRED,
75 OAL_STATUS_ALREADY_DONE,
77 OAL_STATUS_CONN_TIMEOUT,
79 OAL_STATUS_HID_FAILED_MOUSE,
84 OAL_STATUS_CONN_TERM_LOCAL_HOST,
85 OAL_STATUS_CONN_TERM_RMT_HOST,
86 OAL_STATUS_ALREADY_CONNECT,
92 /* NOTE: If anything changes in bt_service_id_t enum definition of Bluedroid header, change here too */
94 A2DP_SRC_SERVICE_ID = 3,
98 AVRCP_CT_SERVICE_ID = 9,
100 A2DP_SERVICE_ID = 18,
101 AVRCP_SERVICE_ID = 19,
103 HSP_HS_SERVICE_ID = 23,
104 HFP_HS_SERVICE_ID = 24,
106 IOTIVITY_SERVICE_ID = 29,
110 /** Bluetooth 128-bit UUID */
115 typedef oal_uuid_t service_uuid_t;
124 BT_DISC_TYPE_BREDR = 0x01,
130 char name[BT_DEVICE_NAME_LENGTH_MAX + 1];
131 char alias[BT_DEVICE_NAME_LENGTH_MAX + 1];
132 bt_address_t address;
141 oal_uuid_t uuid[BT_MAX_SERVICES_FOR_DEVICE];
144 char manufacturer_data[BT_DEVICE_MANUFACTURER_DATA_LEN_MAX];
145 int manufacturer_data_len;
148 /** GATT ID adding instance id tracking to the UUID */
154 /** GATT Service ID also identifies the service type (primary/secondary) */
158 } oal_gatt_srvc_id_t;
161 * @brief Initializes OAL layer
163 * @remarks Other API can only be used after successful return. \n
165 * @details EVENT: N/A
167 * @return OAL_STATUS_SUCCESS on success, otherwise a non-zero error value.
168 * @retval #OAL_STATUS_SUCCESS Successful
172 * @see oal_bt_deinit()
174 oal_status_t oal_bt_init(oal_event_callback cb);
177 * @brief Deinitializes OAL Layer
179 * @remarks Other API can only be used after oal_bt_init done again. \n
181 * @details EVENT: N/A
190 void oal_bt_deinit(void);
193 * @brief Initialize Stack lib based on chip
195 * @remarks Other API can only be used after oal_lib_init done. \n
197 * @details EVENT: OAL_EVENT_OAL_INITIALISED_SUCCESS, OAL_EVENT_OAL_INITIALISED_FAILED
206 gboolean oal_lib_init(gpointer data);
209 * @brief Set Debug Mode Flag to TRUE
211 * @remarks OAL will run in exclusive mode, no processing of api-call and no event sending. \n
213 * @details EVENT: N/A
220 * @see oal_get_debug_mode()
222 void oal_set_debug_mode(gboolean mode);
225 * @brief Set Debug Mode Flag
227 * @remarks To check whether Debug mode is running. \n
229 * @details EVENT: N/A
231 * @return TRUE if debug mode is on, otherwise FALSE
232 * @retval #TRUE Successful
236 * @see oal_set_debug_mode()
238 gboolean oal_get_debug_mode(void);
242 * @brief Register the debug mode event catcher
244 * @remarks handles the incoming events and passes to debug handler. \n
246 * @details EVENT: N/A
255 void server_event_catch_register(oal_event_callback dbg_cb);
259 * @brief Get stack name
263 * @pre OAL API must be initialized with oal_bt_init().
265 const char *oal_get_stack_name(void);
269 #endif /* __cplusplus */
270 #endif /*_OAL_HARDWARE_H_*/
273 * @brief calls function to set the is_activating variable in HAL to true
275 * @remarks It is required to let adapter switched on event propagate upwards
277 * @details EVENT: N/A
279 * @return sucess if variable set in HAL
280 * @retval BT_STATUS_SUCCESS
286 int oal_set_adapter_request_state(int enable);
289 * @brief calls function to set the is_activating variable in HAL to true
291 * @remarks It is required to let le adapter switched on event propagate upwards
293 * @details EVENT: N/A
295 * @return sucess if variable set in HAL
296 * @retval BT_STATUS_SUCCESS
302 int oal_set_le_request_state(int enable);