Revert BT enable / disable calling method to async call
[platform/core/connectivity/bluetooth-frwk.git] / bt-service-adaptation / services / bt-request-handler.c
index 9ff9746..87f79bb 100644 (file)
@@ -193,9 +193,7 @@ static void __bt_service_get_parameters(GVariant *in_param,
 static gboolean __bt_is_sync_function(int service_function)
 {
        /*TODO: Keep adding sync methods with expect replies from bluetooth service */
-       if (service_function == BT_ENABLE_ADAPTER
-                       || service_function == BT_DISABLE_ADAPTER
-                       || service_function == BT_GET_LOCAL_ADDRESS
+       if (service_function == BT_GET_LOCAL_ADDRESS
                        || service_function == BT_GET_LOCAL_NAME
                        || service_function == BT_GET_LOCAL_VERSION
                        || service_function == BT_GET_BONDED_DEVICES
@@ -256,7 +254,7 @@ 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);
+       int ret = _bt_bm_read_data(latest);
        if (ret == BLUETOOTH_ERROR_NONE) {
                BT_DBG("Received data from bluetooth battery monitor: %ld %ld %d %d",
                        latest->session_start_time, latest->session_end_time,
@@ -441,24 +439,10 @@ int __bt_bluez_request(int function_name,
        switch (function_name) {
        case BT_ENABLE_ADAPTER: {
                result = _bt_enable_adapter();
-               /* Save invocation */
-               if (result == BLUETOOTH_ERROR_NONE) {
-                       BT_DBG("_bt_enable_adapter scheduled successfully! save invocation context");
-                       sender = (char*)g_dbus_method_invocation_get_sender(context);
-                       _bt_save_invocation_context(context, result, sender,
-                                       function_name, NULL);
-               }
                break;
        }
        case BT_DISABLE_ADAPTER: {
                result = _bt_disable_adapter();
-               /* Save invocation */
-               if (result == BLUETOOTH_ERROR_NONE) {
-                       BT_DBG("_bt_disable_adapter scheduled successfully! save invocation context");
-                       sender = (char*)g_dbus_method_invocation_get_sender(context);
-                       _bt_save_invocation_context(context, result, sender,
-                                       function_name, NULL);
-               }
                break;
        }
        case BT_RECOVER_ADAPTER:
@@ -900,6 +884,39 @@ int __bt_bluez_request(int function_name,
                result = _bt_set_white_list(&address, address_type, is_add);
                break;
         }
+       case BT_UPDATE_LE_CONNECTION_MODE: {
+               char *sender = NULL;
+               bluetooth_device_address_t remote_address = { { 0 } };
+               bluetooth_le_connection_param_t parameters = { 0 };
+               bluetooth_le_connection_mode_t mode = BLUETOOTH_LE_CONNECTION_MODE_BALANCED;
+
+               __bt_service_get_parameters(in_param1, &remote_address,
+                               sizeof(bluetooth_device_address_t));
+               __bt_service_get_parameters(in_param2, &mode,
+                               sizeof(bluetooth_le_connection_mode_t));
+
+               result = _bt_get_le_connection_parameter(mode, &parameters);
+               if (result != BLUETOOTH_ERROR_NONE)
+                       break;
+
+               sender = (char *)g_dbus_method_invocation_get_sender(context);
+
+               result = _bt_le_connection_update(sender,
+                               remote_address.addr,
+                               parameters.interval_min,
+                               parameters.interval_max,
+                               parameters.latency,
+                               parameters.timeout);
+               break;
+       }
+       case BT_SET_MANUFACTURER_DATA: {
+               bluetooth_manufacturer_data_t m_data = { 0 };
+               __bt_service_get_parameters(in_param1,
+                               &m_data, sizeof(bluetooth_manufacturer_data_t));
+               result = _bt_set_manufacturer_data(&m_data);
+               break;
+       }
+
        case BT_IS_DEVICE_CONNECTED: {
                bluetooth_device_address_t address = { {0} };
                gboolean connected = FALSE;
@@ -943,6 +960,17 @@ int __bt_bluez_request(int function_name,
                }
                break;
        }
+       case BT_IS_SCAN_FILTER_SUPPORTED:{
+               int is_supported = 0;
+
+               if (_bt_is_scan_filter_supported() == TRUE)
+                       is_supported = 1;
+
+               g_array_append_vals(*out_param1,
+                               &is_supported, sizeof(int));
+
+               break;
+       }
        case BT_ENABLE_RSSI: {
                bluetooth_device_address_t bd_addr;
                int link_type;
@@ -3137,6 +3165,20 @@ normal:
                result = _bt_disconnect_device(&address);
                break;
        }
+       case BT_REGISTER_SCAN_FILTER: {
+               bluetooth_le_scan_filter_t scan_filter;
+
+               sender = (char*)g_dbus_method_invocation_get_sender(context);
+               __bt_service_get_parameters(in_param1, &scan_filter,
+                               sizeof(bluetooth_le_scan_filter_t));
+
+               BT_DBG("bluetooth_le_scan_filter_t [features : 0x%.2x]",
+                               scan_filter.added_features);
+
+               result = _bt_register_scan_filter(sender, &scan_filter);
+
+               break;
+       }
        default:
                BT_INFO("UnSupported function [%d]", function_name);
                result = BLUETOOTH_ERROR_NOT_SUPPORT;
@@ -4091,8 +4133,6 @@ gboolean __bt_service_check_privilege(int function_name,
        case BT_IS_LE_2M_PHY_SUPPORTED:
        case BT_IS_LE_CODED_PHY_SUPPORTED:
        case BT_REGISTER_SCAN_FILTER:
-       case BT_UNREGISTER_SCAN_FILTER:
-       case BT_UNREGISTER_ALL_SCAN_FILTERS:
        case BT_IS_SCAN_FILTER_SUPPORTED:
        case BT_GET_ATT_MTU: