Providing bluetooth usage data for battery monitor framework
[platform/core/connectivity/bluetooth-frwk.git] / bt-service-adaptation / services / bt-request-handler.c
index b9c11bd..62d80b3 100644 (file)
@@ -54,6 +54,8 @@
 #include "bt-service-pbap.h"
 #include "bt-service-oob.h"
 
+#include "bt-service-battery-monitor.h"
+
 #ifdef TIZEN_FEATURE_BT_PAN_NAP
 #include "bt-service-network.h"
 #endif
@@ -69,7 +71,6 @@ static guint owner_id = 0;
 static guint owner_sig_id = 0;
 static gboolean is_le_intended = FALSE;
 
-
 static cynara *p_cynara;
 static cynara_configuration *conf;
 
@@ -155,7 +156,6 @@ void _bt_free_info_from_invocation_list(invocation_info_t *req_info)
 {
        GSList *l;
        invocation_info_t *info;
-
        ret_if(NULL == req_info);
        ret_if(NULL == req_info->sender);
 
@@ -254,6 +254,18 @@ void _bt_save_invocation_context(GDBusMethodInvocation *invocation, int result,
 
 }
 
+static int __bt_bm_request_data(_bt_battery_data_t *latest)
+{
+        int ret = _bt_bm_read_data(latest);
+       if (ret == BLUETOOTH_ERROR_NONE)
+               BT_DBG("Received data from battery monitor plugin: %ld %ld %d %d",
+                       latest->session_start_time, latest->session_end_time,
+                               latest->session_scan_time, latest->session_connected_time);
+       else
+               BT_ERR("Error encountered");
+        return ret;
+}
+
 static void __bt_service_method(GDBusConnection *connection,
                const gchar *sender,
                const gchar *object_path,
@@ -444,6 +456,12 @@ int __bt_bluez_request(int function_name,
        case BT_RESET_ADAPTER:
                result = _bt_reset_adapter();
                break;
+       case BT_BATTERY_READ_DATA: {
+               _bt_battery_data_t data;
+               result = __bt_bm_request_data(&data);
+               g_array_append_vals(*out_param1, &data, sizeof(_bt_battery_data_t));
+               break;
+       }
        case BT_CHECK_ADAPTER: {
                int enabled = BT_ADAPTER_DISABLED;
                result = _bt_check_adapter(&enabled);
@@ -3449,7 +3467,7 @@ int __bt_core_request(int function_name,
        case BT_ENABLE_ADAPTER:
        {
                bt_status_t status;
-               set_adapter_request_state(TRUE);
+               _bt_set_adapter_request_state(TRUE);
                status = _bt_adapter_get_status();
 
                if (status == BT_ACTIVATING) {
@@ -3468,7 +3486,6 @@ int __bt_core_request(int function_name,
        case BT_DISABLE_ADAPTER:
        {
                bt_status_t status;
-               set_le_request_state(TRUE);
                status = _bt_adapter_get_status();
                if (status == BT_DEACTIVATING) {
                                BT_DBG("Disabling in progress");
@@ -3486,7 +3503,7 @@ int __bt_core_request(int function_name,
        case BT_ENABLE_ADAPTER_LE:
        {
                bt_le_status_t le_status;
-
+               _bt_set_le_request_state(TRUE);
                le_status = _bt_adapter_get_le_status();
                if (le_status == BT_LE_ACTIVATING) {
                        BT_DBG("Enabling in progress");
@@ -3782,6 +3799,7 @@ gboolean __bt_service_check_privilege(int function_name,
        case BT_DISABLE_ADAPTER:
        case BT_RESET_ADAPTER:
        case BT_RECOVER_ADAPTER:
+       case BT_BATTERY_READ_DATA:
        case BT_ENABLE_ADAPTER_LE:
        case BT_DISABLE_ADAPTER_LE:
        case BT_SET_CONNECTABLE: