extern void cb_device_authorize_request(bt_bdaddr_t *remote_bd_addr, bt_service_id_t service_d);
extern void cb_device_trust_state_changed(bt_bdaddr_t *remote_bd_addr, bt_device_trust_state_t trusted);
#ifdef TIZEN_BT_HAL
-extern void cb_socket_conn_authorize_request(bt_bdaddr_t *remote_bd_addr, bt_uuid_t *uuid);
+extern void cb_socket_conn_authorize_request(bt_bdaddr_t *remote_bd_addr, bt_uuid_t *uuid, uint8_t *name, uint8_t *path, uint32_t fd);
static void cb_ble_state_change(bt_state_t status);
extern void cb_device_le_conn_state_changed(bt_status_t status, bt_bdaddr_t *bd_addr,
bt_le_conn_state_t state);
extern void cb_rssi_monitor_state_changed(bt_bdaddr_t *bd_addr, int32_t link_type, uint8_t state);
extern void cb_rssi_alert(bt_bdaddr_t *bd_addr, int32_t link_type, int32_t alert_type, int32_t rssi);
extern void cb_raw_rssi_received(bt_bdaddr_t *bd_addr, int32_t link_type, int32_t rssi);
+extern void cb_dbfw_plus_info_received(unsigned char *data, uint32_t length, uint8_t event_code);
+extern void cb_controller_error_received(uint8_t error_code);
#endif
static bt_callbacks_t callbacks = {
.rssi_monitor_state_changed_cb = cb_rssi_monitor_state_changed,
.rssi_alert_cb = cb_rssi_alert,
.raw_rssi_received_cb = cb_raw_rssi_received,
+ .dbfw_plus_info_received_cb = cb_dbfw_plus_info_received,
+ .controller_error_received_cb = cb_controller_error_received,
#endif
};
int ret = BT_STATUS_SUCCESS;
API_TRACE();
- CHECK_OAL_INITIALIZED();
+
+ if (blued_api == NULL) {
+ BT_INFO("Stack is initializing, so pending enable");
+ g_timeout_add(200, retry_enable_adapter, NULL);
+ return OAL_STATUS_PENDING;
+ }
+
if (OAL_STATUS_SUCCESS != hw_is_module_ready()) {
g_timeout_add(200, retry_enable_adapter, NULL);
return OAL_STATUS_PENDING;
return ret;
}
+oal_status_t adapter_recover(void)
+{
+ int result;
+
+ API_TRACE();
+
+ CHECK_OAL_INITIALIZED();
+ BT_INFO("Adapter Recover");
+
+ result = blued_api->recover();
+ if (result != BT_STATUS_SUCCESS) {
+ BT_ERR("Adapter Recover Failed: [%s]", status2string(result));
+ return convert_to_oal_status(result);
+ }
+
+ return result;
+}
+
oal_status_t adapter_start_inquiry(unsigned short duration)
{
int ret;
return OAL_STATUS_SUCCESS;
}
+oal_status_t adapter_get_connectable(void)
+{
+ int ret;
+
+ CHECK_OAL_INITIALIZED();
+
+ API_TRACE();
+
+ ret = blued_api->get_adapter_property(BT_PROPERTY_ADAPTER_SCAN_MODE);
+ if (ret != BT_STATUS_SUCCESS) {
+ BT_ERR("get_adapter_property failed: [%s]", status2string(ret));
+ return convert_to_oal_status(ret);
+ }
+
+ return OAL_STATUS_SUCCESS;
+}
+
oal_status_t adapter_set_name(char * name)
{
int ret;
return OAL_STATUS_SUCCESS;
}
+oal_status_t adapter_ble_set_filter_policy(int filter_policy)
+{
+ int ret = OAL_STATUS_SUCCESS;
+
+ CHECK_OAL_INITIALIZED();
+ API_TRACE();
+
+ BT_DBG("Filter policy applied is [%d]", filter_policy);
+
+ ret = gatts_set_filter_policy(filter_policy);
+
+ if (ret != OAL_STATUS_SUCCESS) {
+ BT_ERR("gatts_set_filter_policy: [%d]", ret);
+ return ret;
+ }
+
+ return OAL_STATUS_SUCCESS;
+}
+
oal_status_t adapter_ble_multi_adv_update(int Ins_id, int min_intv, int max_intv,
int adv_type, int chnl_map, int tx_power, int timeout_s)
{
event_data, (sizeof(event_device_list_t) + num_bonded * sizeof(bt_bdaddr_t)));
break;
}
+ case BT_PROPERTY_A2DP_ROLE: {
+ unsigned int a2dp_role;
+
+ a2dp_role = *((uint32_t*)properties[i].val);
+
+ BT_INFO("A2DP role: %u", a2dp_role);
+
+ send_event(OAL_EVENT_ADAPTER_PROPERTY_A2DP_ROLE,
+ g_memdup(properties[i].val, sizeof(uint32_t)),
+ sizeof(uint32_t));
+ break;
+ }
case BT_PROPERTY_LOCAL_LE_FEATURES: {
event_adapter_le_features_t *le_features;
BT_DBG("-");
}
+
+void cb_controller_error_received(uint8_t error_code)
+{
+ uint8_t *event_data;
+
+ BT_DBG("+");
+
+ event_data = g_new0(uint8_t, 1);
+ *event_data = error_code;
+
+ send_event(OAL_EVENT_CONTROLLER_ERROR_RECEIVED,
+ (gpointer)event_data, sizeof(uint8_t));
+
+ BT_DBG("-");
+}
\ No newline at end of file