Merge branch 'tizen' into tizen_5.5
[platform/core/connectivity/bluetooth-frwk.git] / bt-api / bt-request-sender.c
index 514cff6..c31ab18 100644 (file)
 #include "bt-event-handler.h"
 #include "bluetooth-media-control.h"
 
+#ifdef TIZEN_GATT_CLIENT
+#include "bluetooth-gatt-client-api.h"
+#endif
+
 static GSList *sending_requests;
 
 static GDBusProxy *service_gproxy;
@@ -40,13 +44,13 @@ static GDBusProxy *__bt_gdbus_init_service_proxy(void)
        GDBusProxy *proxy;
        GError *err = NULL;
 
-       service_gconn = _bt_gdbus_get_system_gconn();
+       service_gconn = _bt_get_system_private_conn();
 
        if (!service_gconn)
                return NULL;
 
        proxy =  g_dbus_proxy_new_sync(service_gconn,
-                       G_DBUS_PROXY_FLAGS_NONE, NULL,
+                       G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, NULL,
                        BT_DBUS_NAME,
                        BT_SERVICE_PATH,
                        BT_DBUS_NAME,
@@ -225,6 +229,22 @@ static void __bt_get_event_info(int service_function, GArray *output,
                *param_data = &g_array_index(output,
                                bluetooth_device_address_t, 0);
                break;
+#ifdef TIZEN_GATT_CLIENT
+       case BT_CONNECT_LE:
+               *event_type = BT_DEVICE_EVENT;
+               *event = BLUETOOTH_EVENT_GATT_CLIENT_CONNECTED;
+               ret_if(output == NULL);
+               *param_data = &g_array_index(output,
+                               bluetooth_device_address_t, 0);
+               break;
+       case BT_DISCONNECT_LE:
+               *event_type = BT_DEVICE_EVENT;
+               *event = BLUETOOTH_EVENT_GATT_CLIENT_DISCONNECTED;
+               ret_if(output == NULL);
+               *param_data = &g_array_index(output,
+                               bluetooth_device_address_t, 0);
+               break;
+#else
        case BT_CONNECT_LE:
                *event_type = BT_DEVICE_EVENT;
                *event = BLUETOOTH_EVENT_GATT_CONNECTED;
@@ -239,6 +259,41 @@ static void __bt_get_event_info(int service_function, GArray *output,
                *param_data = &g_array_index(output,
                                bluetooth_device_address_t, 0);
                break;
+#endif
+#ifdef TIZEN_GATT_CLIENT
+       case BT_GATT_READ_CHARACTERISTIC:
+               BT_INFO("BT_GATT_READ_CHARACTERISTIC");
+               *event_type = BT_GATT_CLIENT_EVENT;
+               *event = BLUETOOTH_EVENT_GATT_READ_CHAR;
+               ret_if(output == NULL);
+               *param_data = &g_array_index(output,
+                               bluetooth_gatt_client_char_prop_info_t, 0);
+               break;
+       case BT_GATT_WRITE_CHARACTERISTIC_VALUE_BY_TYPE:
+               BT_INFO("BT_GATT_WRITE_CHARACTERISTIC_VALUE_BY_TYPE");
+               *event_type = BT_GATT_CLIENT_EVENT;
+               *event = BLUETOOTH_EVENT_GATT_WRITE_CHAR;
+               ret_if(output == NULL);
+               *param_data = &g_array_index(output,
+                               bluetooth_gatt_client_char_prop_info_t, 0);
+               break;
+       case BT_GATT_READ_DESCRIPTOR_VALUE:
+               BT_INFO("BT_GATT_READ_DESCRIPTOR_VALUE");
+               *event_type = BT_GATT_CLIENT_EVENT;
+               *event = BLUETOOTH_EVENT_GATT_READ_DESC;
+               ret_if(output == NULL);
+               *param_data = &g_array_index(output,
+                               bluetooth_gatt_client_desc_prop_info_t, 0);
+               break;
+       case BT_GATT_WRITE_DESCRIPTOR_VALUE:
+               BT_INFO("BT_GATT_WRITE_DESCRIPTOR_VALUE");
+               *event_type = BT_GATT_CLIENT_EVENT;
+               *event = BLUETOOTH_EVENT_GATT_WRITE_DESC;
+               ret_if(output == NULL);
+               *param_data = &g_array_index(output,
+                               bluetooth_gatt_client_desc_prop_info_t, 0);
+               break;
+#endif
        case BT_TDS_READ_TRANSPORT_DATA:
                *event_type = BT_TDS_EVENT;
                *event = BLUETOOTH_EVENT_TDS_TRANSPORT_DATA_RECEIVED;
@@ -436,7 +491,12 @@ static void __send_request_cb(GDBusProxy *proxy,
                        &bt_event, cb_data->user_data);
        } else if (event_type == BT_AVRCP_EVENT) {
                ((bluetooth_cb_func_ptr)cb_data->cb)(bt_event.event,
-                       &bt_event, cb_data->user_data);
+                               &bt_event, cb_data->user_data);
+#ifdef TIZEN_GATT_CLIENT
+       } else if (event_type == BT_GATT_CLIENT_EVENT) {
+               ((gatt_client_cb_func_ptr)cb_data->cb)(bt_event.event,
+                               (gatt_client_event_param_t*)&bt_event, cb_data->user_data);
+#endif
        } else {
                BT_INFO("Not handled event type : %d", event_type);
        }