Apply tizen 3.0 based product patchsets
[platform/core/connectivity/bluetooth-frwk.git] / bt-core / bt-core-dbus-handler.c
old mode 100755 (executable)
new mode 100644 (file)
index 6894cbc..5eb2894
@@ -29,7 +29,7 @@
 #define BT_SERVICE_NAME                "org.projectx.bt"
 #define BT_SERVICE_PATH                "/org/projectx/bt_service"
 
-#ifdef HPS_FEATURE
+#ifdef TIZEN_FEATURE_BT_HPS
 #define BT_HPS_SERVICE_NAME "org.projectx.httpproxy"
 #define BT_HPS_OBJECT_PATH "/org/projectx/httpproxy"
 #define BT_HPS_INTERFACE_NAME "org.projectx.httpproxy_service"
@@ -37,7 +37,7 @@
 
 static GDBusConnection *service_gconn;
 static GDBusProxy *service_gproxy;
-#ifdef HPS_FEATURE
+#ifdef TIZEN_FEATURE_BT_HPS
 static GDBusProxy *hps_gproxy;
 #endif
 
@@ -108,12 +108,12 @@ GDBusProxy *_bt_core_gdbus_get_service_proxy(void)
        return (service_gproxy) ? service_gproxy : __bt_core_gdbus_init_service_proxy();
 }
 
-#ifdef HPS_FEATURE
+#ifdef TIZEN_FEATURE_BT_HPS
 int _bt_core_start_httpproxy(void)
 {
        GVariant *variant = NULL;
        unsigned char enabled;
-
+       GError *err = NULL;
        BT_DBG(" ");
 
        hps_gproxy = _bt_core_gdbus_get_hps_proxy();
@@ -123,7 +123,11 @@ int _bt_core_start_httpproxy(void)
        }
 
        variant = g_dbus_proxy_call_sync(hps_gproxy, "enable",
-                               NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL);
+                               NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err);
+       if (err) {
+               BT_ERR("Error : %s" , err->message);
+               g_clear_error(&err);
+       }
        if (variant) {
                g_variant_get(variant, "(y)", &enabled);
                BT_ERR("HPS enabled status 0x%x", enabled);
@@ -135,7 +139,7 @@ int _bt_core_stop_httpproxy(void)
 {
        GVariant *variant = NULL;
        unsigned char enabled;
-
+       GError *err = NULL;
        BT_DBG(" ");
 
        hps_gproxy = _bt_core_gdbus_get_hps_proxy();
@@ -145,7 +149,11 @@ int _bt_core_stop_httpproxy(void)
        }
 
        variant = g_dbus_proxy_call_sync(hps_gproxy, "disable",
-                               NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL);
+                               NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err);
+       if (err) {
+               BT_ERR("Error : %s" , err->message);
+               g_clear_error(&err);
+       }
        if (variant) {
                g_variant_get(variant, "(y)", &enabled);
                BT_ERR("HPS disabled status 0x%x", enabled);
@@ -199,7 +207,7 @@ void _bt_core_gdbus_deinit_proxys(void)
                service_gproxy = NULL;
        }
 
-#ifdef HPS_FEATURE
+#ifdef TIZEN_FEATURE_BT_HPS
        if (hps_gproxy) {
                g_object_unref(hps_gproxy);
                hps_gproxy = NULL;
@@ -218,7 +226,7 @@ int _bt_core_service_request(int service_type, int service_function,
                        GArray **out_param1)
 {
        GDBusProxy  *proxy;
-       GVariant *ret;
+       GVariant *ret = NULL;
        GVariant *param1;
        GVariant *param2;
        GVariant *param3;
@@ -324,6 +332,9 @@ static const gchar bt_core_introspection_xml[] =
 "     </method>"
 "     <method name='EnableCore'>"
 "     </method>"
+"        <method name='SetTransferValue'>"
+"          <arg type='b' name='value' direction='in'/>"
+"        </method>"
 "     <method name='FactoryTestMode'>"
 "          <arg type='s' name='type' direction='in'/>"
 "          <arg type='s' name='arg' direction='in'/>"
@@ -361,6 +372,13 @@ static void __bt_core_dbus_method(GDBusConnection *connection,
                ret = _bt_core_disable_adapter_le();
        } else if (g_strcmp0(method_name, "EnableCore") == 0) {
                ret = _bt_core_enable_core();
+       } else if (g_strcmp0(method_name, "SetTransferValue") == 0) {
+               gboolean value = FALSE;
+
+               g_variant_get(parameters, "(b)", &value);
+               BT_DBG("Transfer value: %d", value);
+
+               ret = _bt_core_set_transfer_value(value);
        } else if (g_strcmp0(method_name, "FactoryTestMode") == 0) {
                const char *type = NULL;
                const char *arg = NULL;
@@ -369,6 +387,7 @@ static void __bt_core_dbus_method(GDBusConnection *connection,
                ret = _bt_core_factory_test_mode(type, arg);
                g_dbus_method_invocation_return_value(invocation,
                                g_variant_new("(i)", ret));
+               _bt_core_terminate();
                 return;
        } else {
                ret = FALSE;
@@ -467,9 +486,9 @@ static void __bt_core_event_filter(GDBusConnection *connection,
                g_variant_get(parameters, "(&o@a{sa{sv}})",
                                                &obj_path, &optional_param);
 
-               if (g_strcmp0(obj_path, "/org/bluez/hci0") == 0) {
+               if (g_strcmp0(obj_path, "/org/bluez/hci0") == 0)
                        _bt_core_adapter_added_cb();
-               }
+
        } else if (!g_strcmp0(signal_name, "InterfacesRemoved")) {
                char *obj_path = NULL;
                GVariant *optional_param;
@@ -477,9 +496,9 @@ static void __bt_core_event_filter(GDBusConnection *connection,
                g_variant_get(parameters, "(&o@as)", &obj_path,
                                                        &optional_param);
 
-               if (g_strcmp0(obj_path, "/org/bluez/hci0") == 0) {
+               if (g_strcmp0(obj_path, "/org/bluez/hci0") == 0)
                        _bt_core_adapter_removed_cb();
-               }
+
        } else { /* NameOwnerChanged */
                const char *name = NULL;
                const char *old_owner = NULL;
@@ -524,6 +543,7 @@ gboolean _bt_core_register_dbus(void)
                                        node_info->interfaces[0],
                                        &method_table,
                                        NULL, NULL, &error);
+       g_dbus_node_info_unref(node_info);
        if (obj_id == 0) {
                BT_ERR("Failed to register: %s", error->message);
                g_error_free(error);