return BLUETOOTH_ERROR_NONE;
}
-static gboolean __bt_get_check_service_available()
+BT_EXPORT_API int bluetooth_check_adapter(void)
{
- GDBusConnection *service_gconn;
- GDBusProxy *proxy;
- GError *err = NULL;
- GArray *in_param5 = NULL;
- GVariant *ret, *param1, *param2, *param3, *param4, *param5;
-
- service_gconn = _bt_get_system_common_conn();
- if (!service_gconn)
- return FALSE;
-
- /* G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START
- * method call will be failed not auto activation
- * if service is unavailble. */
- proxy = g_dbus_proxy_new_sync(service_gconn,
- G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, NULL,
- BT_DBUS_NAME,
- BT_SERVICE_PATH,
- BT_DBUS_NAME,
- NULL, &err);
- if (!proxy) {
- if (err) {
- BT_ERR("Unable to create proxy: %s", err->message);
- g_clear_error(&err);
- }
-
- return FALSE;
- }
+#ifndef TIZEN_BLUEDROID_PORTING
+ int result;
+ bluetooth_adapter_state_t state = BLUETOOTH_ADAPTER_DISABLED;
BT_INIT_PARAMS();
BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
- in_param5 = g_array_new(TRUE, TRUE, sizeof(gchar));
-
- param1 = g_variant_new_from_data((const GVariantType *)"ay",
- in_param1->data, in_param1->len,
- TRUE, NULL, NULL);
- param2 = g_variant_new_from_data((const GVariantType *)"ay",
- in_param2->data, in_param2->len,
- TRUE, NULL, NULL);
- param3 = g_variant_new_from_data((const GVariantType *)"ay",
- in_param3->data, in_param3->len,
- TRUE, NULL, NULL);
- param4 = g_variant_new_from_data((const GVariantType *)"ay",
- in_param4->data, in_param4->len,
- TRUE, NULL, NULL);
- param5 = g_variant_new_from_data((const GVariantType *)"ay",
- in_param5->data, in_param5->len,
- TRUE, NULL, NULL);
-
- ret = g_dbus_proxy_call_sync(proxy, "service_request",
- g_variant_new("(iii@ay@ay@ay@ay@ay)",
- BT_BLUEZ_SERVICE, BT_CHECK_AVAILABLE,
- BT_SYNC_REQ, param1,
- param2, param3,
- param4, param5),
- G_DBUS_CALL_FLAGS_NONE, -1,
- NULL, &err);
-
- BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
- g_array_free(in_param5, TRUE);
+ result = _bt_send_request_not_autostart(BT_BLUEZ_SERVICE, BT_CHECK_ADAPTER,
+ in_param1, in_param2, in_param3, in_param4, &out_param);
- if (ret == NULL) {
- if (err) {
- BT_ERR("D-Bus API failure: errCode[%x], message[%s]",
- err->code, err->message);
- g_clear_error(&err);
- }
- BT_ERR("bt-service is unavailable");
- return FALSE;
+ if (result == BLUETOOTH_ERROR_NONE) {
+ state = g_array_index(out_param, bluetooth_adapter_state_t, 0);
}
- return TRUE;
-}
+ BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
-BT_EXPORT_API int bluetooth_check_adapter(void)
-{
-#ifndef TIZEN_BLUEDROID_PORTING
- int ret;
- gboolean is_service_avail;
- ret = _bt_get_adapter_path(_bt_get_system_common_conn(), NULL);
- is_service_avail = __bt_get_check_service_available();
- return (ret == BLUETOOTH_ERROR_NONE && is_service_avail) ?
- BLUETOOTH_ADAPTER_ENABLED : BLUETOOTH_ADAPTER_DISABLED;
+ return state ? BLUETOOTH_ADAPTER_ENABLED : BLUETOOTH_ADAPTER_DISABLED;
#else
int value = VCONFKEY_BT_STATUS_OFF;