Code optimize
[platform/core/connectivity/bluetooth-frwk.git] / bt-service / bt-request-handler.c
index 5c88efb..99613bc 100644 (file)
@@ -43,6 +43,7 @@
 #include "bt-service-pbap.h"
 #include "bt-service-dpm.h"
 #include "bt-service-agent.h"
+#include "bt-service-proximity.h"
 
 static GDBusConnection *bt_service_conn;
 static guint owner_id = 0;
@@ -201,8 +202,8 @@ static void __bt_service_method(GDBusConnection *connection,
                        }
                }
 
-               BT_DBG("SERVICE TYPE [%d] SERVICE FUNC [%d]",
-                               service_type, service_function);
+               BT_DBG("Service type = %s, fn = %s (0x%x)", __bt_convert_service_type_to_string(service_type),
+                               _bt_convert_service_function_to_string(service_function), service_function);
                switch (service_type) {
                case BT_BLUEZ_SERVICE:
                        result = __bt_bluez_request(service_function,
@@ -272,7 +273,7 @@ static void __bt_service_method(GDBusConnection *connection,
                FN_END;
                return;
 fail:
-               BT_ERR_C("Request is failed [%s] [%x]",
+               BT_ERR_C("Request is failed [%s] [0x%x]",
                                _bt_convert_error_to_string(result), result);
 
                out_var = g_variant_new_from_data((const GVariantType *)"ay",
@@ -1319,6 +1320,17 @@ int __bt_bluez_request(int function_name,
                meta_data.number = data.number;
                meta_data.duration = (int64_t) data.duration;
 
+               if (meta_data.title)
+                       BT_INFO("title [%s]", meta_data.title);
+               if (meta_data.artist)
+                       BT_INFO("artist [%s]", meta_data.artist);
+               if (meta_data.album)
+                       BT_INFO("album [%s]", meta_data.album);
+               if (meta_data.genre)
+                       BT_INFO("genre [%s]", meta_data.genre);
+               BT_INFO("total_tracks[%d], number[%d], duration[%d]",
+                               meta_data.total_tracks, meta_data.number, meta_data.duration);
+
                result = _bt_avrcp_set_track_info(&meta_data);
 
                g_free((gpointer)meta_data.title);
@@ -1452,7 +1464,7 @@ int __bt_bluez_request(int function_name,
                break;
        }
        case BT_RFCOMM_CLIENT_CONNECT: {
-#ifdef RFCOMM_DIRECT
+#ifdef TIZEN_FEATURE_BT_RFCOMM_DIRECT
                result = BLUETOOTH_ERROR_NONE;
 #else
                bluetooth_device_address_t address = { {0} };
@@ -1492,7 +1504,7 @@ int __bt_bluez_request(int function_name,
                break;
        }
        case BT_RFCOMM_SOCKET_DISCONNECT: {
-#ifdef RFCOMM_DIRECT
+#ifdef TIZEN_FEATURE_BT_RFCOMM_DIRECT
                result = BLUETOOTH_ERROR_NONE;
 #else
                int socket_fd;
@@ -1504,7 +1516,7 @@ int __bt_bluez_request(int function_name,
                break;
        }
        case BT_RFCOMM_SOCKET_WRITE: {
-#ifdef RFCOMM_DIRECT
+#ifdef TIZEN_FEATURE_BT_RFCOMM_DIRECT
                result = BLUETOOTH_ERROR_NONE;
 #else
                int socket_fd;
@@ -1520,7 +1532,7 @@ int __bt_bluez_request(int function_name,
                break;
        }
        case BT_RFCOMM_CREATE_SOCKET: {
-#ifdef RFCOMM_DIRECT
+#ifdef TIZEN_FEATURE_BT_RFCOMM_DIRECT
                result = BLUETOOTH_ERROR_NONE;
 #else
                char *sender;
@@ -1544,7 +1556,7 @@ int __bt_bluez_request(int function_name,
                break;
        }
        case BT_RFCOMM_REMOVE_SOCKET: {
-#ifdef RFCOMM_DIRECT
+#ifdef TIZEN_FEATURE_BT_RFCOMM_DIRECT
                result = BLUETOOTH_ERROR_NONE;
 #else
                int socket_fd;
@@ -2107,6 +2119,60 @@ int __bt_bluez_request(int function_name,
 
                break;
        }
+       case BT_PXP_SET_PROPERTY: {
+               bluetooth_device_address_t address = { {0} };
+               unsigned int property = 0;
+               unsigned int value = 0;
+
+               __bt_service_get_parameters(in_param1,
+                               &address, sizeof(bluetooth_device_address_t));
+               __bt_service_get_parameters(in_param2,
+                               &property, sizeof(int));
+               __bt_service_get_parameters(in_param3,
+                               &value, sizeof(int));
+
+               result = bt_set_proximity_property(&address, property, value);
+               break;
+       }
+       case BT_PXP_GET_PROPERTY: {
+               bluetooth_device_address_t address = { {0} };
+               unsigned int property = 0;
+               int value = 0;
+
+               __bt_service_get_parameters(in_param1,
+                               &address, sizeof(bluetooth_device_address_t));
+               __bt_service_get_parameters(in_param2,
+                               &property, sizeof(unsigned int));
+
+               result = bt_get_proximity_property(&address, property, &value);
+               if (result == BLUETOOTH_ERROR_NONE) {
+                       g_array_append_vals(*out_param1, &value,
+                                               sizeof(int));
+               }
+               break;
+       }
+       case BT_PXP_GET_SUPPORTED_SERIVCES: {
+               bluetooth_device_address_t address = { {0} };
+               unsigned int property = 0;
+
+               __bt_service_get_parameters(in_param1,
+                               &address, sizeof(bluetooth_device_address_t));
+
+               result = bt_get_proximity_supported_services(&address, &property);
+               if (result == BLUETOOTH_ERROR_NONE) {
+                       g_array_append_vals(*out_param1, &property,
+                                               sizeof(int));
+               }
+               break;
+       }
+       case BT_PXP_REGISTER_REPORTER: {
+               result = bt_register_proximity_reporter();
+               break;
+       }
+       case BT_PXP_UNREGISTER_REPORTER: {
+               result = bt_unregister_proximity_reporter();
+               break;
+       }
        default:
                result = BLUETOOTH_ERROR_INTERNAL;
                break;
@@ -2571,9 +2637,6 @@ gboolean __bt_service_check_privilege(int function_name,
        char err_msg[256] = {0, };
 
        retv_if(unique_name == NULL, FALSE);
-
-       BT_DBG("unique_name: %s", unique_name);
-
        retv_if(bt_service_conn == NULL, FALSE);
 
        ret_val = cynara_creds_get_default_client_method(&client_creds_method);
@@ -2597,8 +2660,6 @@ gboolean __bt_service_check_privilege(int function_name,
                return FALSE;
        }
 
-       BT_DBG("client_creds: %s", client_creds);
-
        ret_val = cynara_creds_gdbus_get_user(bt_service_conn, unique_name, user_creds_method, &user_creds);
        if (ret_val != CYNARA_API_SUCCESS) {
                cynara_strerror(ret_val, err_msg, sizeof(err_msg));
@@ -2608,7 +2669,7 @@ gboolean __bt_service_check_privilege(int function_name,
                return FALSE;
        }
 
-       BT_DBG("user_creds: %s", user_creds);
+       BT_DBG("%s, %s, %s", unique_name, client_creds, user_creds);
 
        switch (function_name) {
        case BT_SET_LOCAL_NAME:
@@ -2813,6 +2874,11 @@ gboolean __bt_service_check_privilege(int function_name,
        case BT_LE_IPSP_DEINIT:
        case BT_LE_IPSP_CONNECT:
        case BT_LE_IPSP_DISCONNECT:
+       case BT_PXP_SET_PROPERTY:
+       case BT_PXP_GET_PROPERTY:
+       case BT_PXP_GET_SUPPORTED_SERIVCES:
+       case BT_PXP_REGISTER_REPORTER:
+       case BT_PXP_UNREGISTER_REPORTER:
        ret_val = cynara_check(p_cynara, client_creds, client_session, user_creds,
                                BT_PRIVILEGE_PLATFORM);