Merge branch 'tizen' into tizen_5.5
[platform/core/connectivity/bluetooth-frwk.git] / bt-oal / oal-device-mgr.c
index f95c325..d3da0d3 100755 (executable)
@@ -31,9 +31,6 @@
 #include "oal-device-mgr.h"
 
 static const bt_interface_t * blued_api;
-#ifdef TIZEN_BT_HAL
-static int dbfw_rssi;
-#endif
 
 void device_mgr_init(const bt_interface_t * stack_if)
 {
@@ -182,6 +179,25 @@ oal_status_t device_stop_bond(bt_address_t * addr)
        return OAL_STATUS_SUCCESS;
 }
 
+oal_status_t device_get_ida(bt_address_t *device_address, bt_address_t *id_address)
+{
+       int res;
+
+       CHECK_OAL_INITIALIZED();
+
+       OAL_CHECK_PARAMETER(device_address, return);
+
+       API_TRACE();
+
+       res = blued_api->get_device_ida((bt_bdaddr_t*) device_address, (bt_bdaddr_t*) id_address);
+
+       if (res != BT_STATUS_SUCCESS)
+               BT_ERR("get_device_IDA failed: [%s]",status2string(res));
+
+       res = convert_to_oal_status(res);
+       return res;
+}
+
 oal_status_t device_accept_pin_request(bt_address_t * addr, const char * pin)
 {
        int res;
@@ -756,7 +772,6 @@ void cb_device_acl_state_changed(bt_status_t status, bt_bdaddr_t *bd_addr,
 
 #ifdef TIZEN_BT_HAL
        conn_status->status = convert_to_oal_status(status);
-       conn_status->rssi = dbfw_rssi;
 #else
        if (BT_STATUS_SUCCESS != status) {
                /* At present only timeout will cause non-success status, later we can add more */
@@ -800,7 +815,6 @@ void cb_device_le_conn_state_changed(bt_status_t status, bt_bdaddr_t *bd_addr,
        BT_DBG("LE conn status:%d, state: %d", status, state);
        memcpy(conn_status->address.addr, bd_addr->address, 6);
        conn_status->status = convert_to_oal_status(status);
-       conn_status->rssi = dbfw_rssi;
 
        switch (state) {
        case BT_LE_CONN_STATE_CONNECTED:
@@ -1004,70 +1018,20 @@ void cb_raw_rssi_received(bt_bdaddr_t *bd_addr, int32_t link_type, int32_t rssi)
        BT_DBG("-");
 }
 
-static gboolean __device_init_dbfw_rssi_cb(gpointer user_data)
+void cb_dbfw_plus_info_received(unsigned char *data, uint32_t length, uint8_t event_code)
 {
-       dbfw_rssi = 0;
-       return FALSE;
-}
+       event_dev_dbfw_plus_info_t *dbfw_info;
+       int len = (length > 512)?512:length;
 
-static void __device_parse_dbfw_set_rssi(unsigned char *data, uint32_t length)
-{
-       ret_if(length < 5);
-       dbfw_rssi = 0xFFFFFF00 | data[4];
-       BT_INFO("dbfw_rssi = %d", dbfw_rssi);
-       g_timeout_add(1000, __device_init_dbfw_rssi_cb, NULL);
-}
+       ret_if(data == NULL || length == 0);
 
-void cb_dbfw_plus_info_received(unsigned char *data, uint32_t length, uint8_t event_code)
-{
-       char evt_str[18];
-       char *data_str = NULL;
-       int i;
-
-       ret_if(data == NULL);
-
-       data_str = g_malloc0(length * 2 + 1);
-       for (i = 0; i < length; i++)
-               snprintf(&data_str[i * 2], 3, "%02X", data[i]);
-       data_str[i * 2] = '\0';
-
-       switch(event_code) {
-               case BT_DBFW_PLUS_EVENT_CODE_LINK_LOSS_INFO:
-                       BT_DBG("## Event Code: Linkloss Debug Info");
-                       snprintf(evt_str, 18, "[DBFW]Linkloss(D)");
-                       __device_parse_dbfw_set_rssi(data, length);
-                       break;
-               case BT_DBFW_PLUS_EVENT_CODE_LINK_LOSS_CLOCK_INFO:
-                       BT_DBG("## Event Code: Linkloss Clock Info");
-                       snprintf(evt_str, 18, "[DBFW]Linkloss(C)");
-                       break;
-               case BT_DBFW_PLUS_EVENT_CODE_LINK_LOSS_PAGE_SLOTS:
-                       BT_DBG("## Event Code: Linkloss Page slots");
-                       snprintf(evt_str, 18, "[DBFW]Linkloss(P)");
-                       break;
-               case BT_DBFW_PLUS_EVENT_CODE_LINK_LOSS_LMP_TRACE:
-                       BT_DBG("## Event Code: Linkloss LMP trace");
-                       snprintf(evt_str, 18, "[DBFW]Linkloss(L)");
-                       break;
-               case BT_DBFW_PLUS_EVENT_CODE_A2DP_INFO:
-                       BT_DBG("## Event Code: A2DP Info");
-                       snprintf(evt_str, 18, "[DBFW]A2DP");
-                       break;
-               case BT_DBFW_PLUS_EVENT_CODE_HFP_INFO:
-                       BT_DBG("## Event Code: HFP Info");
-                       snprintf(evt_str, 18, "[DBFW]HFP");
-                       break;
-               case BT_DBFW_PLUS_EVENT_CODE_HFP_SCO_PACKET_TYPE_INFO:
-                       BT_DBG("## Event Code: HFP SCO Packet Type");
-                       snprintf(evt_str, 18, "[DBFW]SCO");
-                       break;
-               default:
-                       BT_DBG("## Unknown event code (0x%02x)", event_code);
-                       snprintf(evt_str, 18, "[DBFW]0x%02X", event_code);
-                       break;
-       }
+       dbfw_info = g_new0(event_dev_dbfw_plus_info_t, 1);
+       dbfw_info->event_code = event_code;
+       memcpy(dbfw_info->data, data, len);
+       dbfw_info->length = len;
 
-       g_free(data_str);
+       send_event(OAL_EVENT_DEVICE_DBFW_PLUS_INFO,
+               dbfw_info, sizeof(event_dev_dbfw_plus_info_t));
 }
 
 #endif