X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bt-core%2Fbt-core-dbus-handler.c;h=6884dd123d014583c7483efebbf2f77f23561afd;hb=b9c46edbb2fc8e97620e733791a7d96547c37f64;hp=50c582284a9c50bad6b5d21beb4cf77f0b28b831;hpb=d9b08c1cb048357d6bdfc8ce9ce6f59ef364a4ad;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git diff --git a/bt-core/bt-core-dbus-handler.c b/bt-core/bt-core-dbus-handler.c old mode 100755 new mode 100644 index 50c5822..6884dd1 --- a/bt-core/bt-core-dbus-handler.c +++ b/bt-core/bt-core-dbus-handler.c @@ -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,9 +37,10 @@ static GDBusConnection *service_gconn; static GDBusProxy *service_gproxy; -#ifdef HPS_FEATURE +#ifdef TIZEN_FEATURE_BT_HPS static GDBusProxy *hps_gproxy; #endif +static gboolean factory_test_mode; void _bt_core_fill_garray_from_variant(GVariant *var, GArray *param) { @@ -79,8 +80,6 @@ static GDBusProxy *__bt_core_gdbus_init_service_proxy(void) GError *err = NULL; GDBusConnection *conn; - g_type_init(); - conn = _bt_core_get_gdbus_connection(); if (!conn) return NULL; @@ -110,12 +109,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(); @@ -125,7 +124,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); @@ -137,7 +140,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(); @@ -147,7 +150,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); @@ -161,8 +168,6 @@ static GDBusProxy *_bt_core_gdbus_init_hps_proxy(void) GError *err = NULL; GDBusConnection *conn; - g_type_init(); - BT_DBG(" "); conn = _bt_core_get_gdbus_connection(); @@ -203,7 +208,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; @@ -222,7 +227,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; @@ -328,6 +333,9 @@ static const gchar bt_core_introspection_xml[] = " " " " " " +" " +" " +" " " " " " " " @@ -365,14 +373,27 @@ 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; g_variant_get(parameters, "(&s&s)", &type, &arg); ret = _bt_core_factory_test_mode(type, arg); - g_dbus_method_invocation_return_value(invocation, + factory_test_mode = TRUE; + + if (ret == TRUE) + g_dbus_method_invocation_return_value(invocation, g_variant_new("(i)", ret)); + else + _bt_core_terminate(); + return; } else { ret = FALSE; @@ -433,8 +454,6 @@ static void __handle_name_owner_changed(const char *name) { gboolean flight_mode_status; - BT_DBG(""); - flight_mode_status = _bt_core_is_flight_mode_enabled(); if (flight_mode_status == FALSE && _bt_is_flightmode_request() == TRUE) { @@ -445,7 +464,7 @@ static void __handle_name_owner_changed(const char *name) if ((g_strcmp0(name, "org.bluez") == 0) || (g_strcmp0(name, "org.projectx.bt") == 0)) { BT_DBG("%s is terminated", name); - if (_bt_check_terminating_condition() == TRUE) { + if (_bt_check_terminating_condition() == TRUE && factory_test_mode == FALSE) { _bt_disable_adapter(); _bt_disable_adapter_le(); _bt_core_terminate(); @@ -471,9 +490,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; @@ -481,9 +500,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; @@ -528,6 +547,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);