X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=bt-api%2Fbt-event-handler.c;h=79ce01ad4159fcf27a18b12ddd5e9ca338131390;hb=89402339a81775d534510fb74c539f10655ef6c2;hp=b8235df667a1c9a1774ef414e5d9903171c83649;hpb=4ccac0f25f60bbc7056b24caf0cda7b8707bd5a8;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git diff --git a/bt-api/bt-event-handler.c b/bt-api/bt-event-handler.c index b8235df..79ce01a 100644 --- a/bt-api/bt-event-handler.c +++ b/bt-api/bt-event-handler.c @@ -30,6 +30,8 @@ #include "bluetooth-gatt-server-api.h" #endif +#include "bluetooth-mesh-api.h" + #include "bt-common.h" #include "bt-event-handler.h" #include "bt-gatt-client.h" @@ -400,6 +402,370 @@ static void __bt_fill_garray_from_variant(GVariant *var, GArray *param) } } +/* Mesh Event Handler */ +static void __bt_mesh_event_filter(GDBusConnection *connection, + const gchar *sender_name, + const gchar *object_path, + const gchar *interface_name, + const gchar *signal_name, + GVariant *parameters, + gpointer user_data) +{ + BT_INFO("Mesh event handler Entry >>"); + bt_event_info_t *event_info; + + event_info = (bt_event_info_t *)user_data; + ret_if(event_info == NULL); + + if (strcasecmp(signal_name, BT_MESH_SCAN_STARTED) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_network_t *info = NULL; + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_network_t, 0); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_SCAN_STARTED, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_SCAN_FINISHED) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_network_t *info = NULL; + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_network_t, 0); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_SCAN_FINISHED, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_SCAN_RESULT) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_scan_result_t *info = NULL; + BT_INFO("Mesh: BT_MESH_SCAN_RESULT"); + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_scan_result_t, 0); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_SCAN_RESULT, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_AUTHENTICATION_REQ) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_authentication_request_t *info = NULL; + BT_INFO("Mesh: BT_MESH_AUTHENTICATION_REQ"); + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_authentication_request_t, 0); + BT_INFO("Mesh: Authentication Type [%d]", info->auth_type); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_AUTHENTICATION_REQUEST, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_PROVISIONING_RESULT) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_provisioning_result_t *info = NULL; + BT_INFO("Mesh: BT_MESH_PROVISIONING_RESULT"); + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_provisioning_result_t, 0); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_PROVISIONING_FINISHED, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_NODE_BROWSED) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_node_discover_t *info = NULL; + BT_INFO("Mesh: Node browsed event"); + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_node_discover_t, 0); + + BT_INFO("Mesh: Send Node Browse event: Net UID [%s], Node UUID [%s]", + info->net_uuid, info->dev_uuid); + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_NODE_BROWSED, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_NODE_VEND_FEATS) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_node_features_t *info = NULL; + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_node_features_t, 0); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_NODE_VENDOR_FEATURES, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_NODE_KEY_CONFIGURED) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_key_configure_t *info = NULL; + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_key_configure_t, 0); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_NODE_KEY_CONFIGURED, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_MODEL_APPKEY_CONFIGURED) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_model_configure_t *info = NULL; + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_model_configure_t, 0); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_MODEL_APPKEY_BIND, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_MODEL_APPKEY_LIST) == 0) { + int result; + GVariantIter *iter = NULL; + bluetooth_mesh_model_configure_t info; + uint16_t node_unicast; + int elem_idx; + uint32_t model; + const char *net_uuid = NULL; + int total = 0; + uint16_t appkey_idx; + int i; + + g_variant_get(parameters, "(i&sqiui(aq))", &result, &net_uuid, + &node_unicast, &elem_idx, &model, &total, &iter); + + memset(&info, 0x00, sizeof(bluetooth_mesh_model_configure_t)); + info.primary_unicast = node_unicast; + g_strlcpy(info.net_uuid, net_uuid, 33); + info.elem_index = elem_idx; + info.model = model; + info.appkeylist_count = total; + BT_INFO("Mesh: Total appkeys bound to model [%d]", total); + if (total) { + info.appkey_list = (uint16_t**)g_malloc0(sizeof(uint16_t*) * total); + + for (i = 0; i < total && g_variant_iter_loop(iter, "q", &appkey_idx); ++i) { + info.appkey_list[i] = g_malloc0(sizeof(uint16_t)); + *info.appkey_list[i] = appkey_idx; + } + } + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_MODEL_APPKEY_LIST, + result, &info, + event_info->cb, event_info->user_data); + + for (i = 0; i < total; i++) + g_free(info.appkey_list[i]); + if (info.appkey_list) { + g_free(info.appkey_list); + g_variant_iter_free(iter); + } + + } else if (strcasecmp(signal_name, BT_MESH_MODEL_SUB_LIST) == 0) { + int result; + GVariantIter *iter = NULL; + bluetooth_mesh_model_configure_t info; + uint16_t node_unicast; + int elem_idx; + uint32_t model; + const char *net_uuid = NULL; + int total = 0; + uint16_t sub_addr; + int i; + + g_variant_get(parameters, "(i&sqiui(aq))", &result, &net_uuid, + &node_unicast, &elem_idx, &model, &total, &iter); + + memset(&info, 0x00, sizeof(bluetooth_mesh_model_configure_t)); + info.primary_unicast = node_unicast; + g_strlcpy(info.net_uuid, net_uuid, 33); + info.elem_index = elem_idx; + info.model = model; + info.sublist_count = total; + + BT_INFO("Mesh: Total Subscriptions Bound to model [%d]", total); + if (total) { + info.sub_list = (uint16_t**)g_malloc0(sizeof(uint16_t*) * total); + for (i = 0; i < total && g_variant_iter_loop(iter, "q", &sub_addr); ++i) { + info.sub_list[i] = g_malloc0(sizeof(uint16_t)); + *info.sub_list[i] = sub_addr; + BT_INFO("Mesh: Subscription Address [0x%2.2x]", sub_addr); + } + } + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_MODEL_SUBSCRIPTION_LIST, + result, &info, + event_info->cb, event_info->user_data); + + for (i = 0; i < total; i++) + g_free(info.sub_list[i]); + if (info.appkey_list) { + g_free(info.sub_list); + g_variant_iter_free(iter); + } + } else if (strcasecmp(signal_name, BT_MESH_NODE_TTL_CONFIGURED) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_node_ttl_info_t *info = NULL; + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_node_ttl_info_t, 0); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_NODE_TTL_CONFIGURED, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_NODE_TTL_CONFIGURED) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_node_ttl_info_t *info = NULL; + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_node_ttl_info_t, 0); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_NODE_TTL_CONFIGURED, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_MODEL_SUB_CONF) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_key_configure_t *info = NULL; + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_key_configure_t, 0); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_MODEL_SUBSCRIPTION_CONFGURED, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_MODEL_VIR_SUB_CONF) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_key_configure_t *info = NULL; + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_key_configure_t, 0); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_MODEL_VIRTUAL_SUBSCRIPTION_CONFGURED, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_MODEL_PUB_STATUS) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_key_configure_t *info = NULL; + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_key_configure_t, 0); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_MODEL_PUBLICATION_STATUS, + result, info, + event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MESH_MODEL_MSG_EXECUTED) == 0) { + int result; + GVariant *param = NULL; + GArray *dbus_data = NULL; + bluetooth_mesh_model_msg_t *info = NULL; + + g_variant_get(parameters, "(iv)", &result, ¶m); + dbus_data = g_array_new(TRUE, TRUE, sizeof(gchar)); + + __bt_fill_garray_from_variant(param, dbus_data); + g_variant_unref(param); + + info = &g_array_index(dbus_data, bluetooth_mesh_model_msg_t, 0); + + _bt_mesh_event_cb(BLUETOOTH_EVENT_MESH_MODEL_MSG_EXECUTED, + result, info, + event_info->cb, event_info->user_data); + } + BT_INFO("Mesh event handler Exit <<"); +} + void __bt_adapter_event_filter(GDBusConnection *connection, const gchar *sender_name, const gchar *object_path, @@ -474,6 +840,9 @@ void __bt_adapter_event_filter(GDBusConnection *connection, data->session_end_time = info->session_end_time; data->session_scan_time = info->session_scan_time; data->session_connected_time = info->session_connected_time; + data->tx_time = info->tx_time; + data->rx_time = info->rx_time; + data->idle_time = info->idle_time; data->atm_list = NULL; BT_INFO("Received battery data in bt-api: %ld %ld %d %d.", @@ -875,7 +1244,7 @@ void __bt_device_event_filter(GDBusConnection *connection, #endif ret_if(signal_name == NULL); -#ifdef TIZEN_GATT_CLIENT + if (strcasecmp(signal_name, BT_GATT_SERVER_CONNECTED) == 0) { const char *address = NULL; bluetooth_device_address_t dev_address = { {0} }; @@ -916,28 +1285,6 @@ void __bt_device_event_filter(GDBusConnection *connection, _bt_common_event_cb(BLUETOOTH_EVENT_GATT_CLIENT_DISCONNECTED, result, &dev_address, event_info->cb, event_info->user_data); -#else - if (strcasecmp(signal_name, BT_GATT_CONNECTED) == 0) { - const char *address = NULL; - bluetooth_device_address_t dev_address = { {0} }; - BT_DBG("BT_GATT_CONNECTED"); - g_variant_get(parameters, "(i&s)", &result, &address); - - _bt_convert_addr_string_to_type(dev_address.addr, address); - _bt_common_event_cb(BLUETOOTH_EVENT_GATT_CONNECTED, - result, &dev_address, - event_info->cb, event_info->user_data); - } else if (strcasecmp(signal_name, BT_GATT_DISCONNECTED) == 0) { - const char *address = NULL; - bluetooth_device_address_t dev_address = { {0} }; - BT_DBG("BT_GATT_DISCONNECTED"); - g_variant_get(parameters, "(i&s)", &result, &address); - - _bt_convert_addr_string_to_type(dev_address.addr, address); - _bt_common_event_cb(BLUETOOTH_EVENT_GATT_DISCONNECTED, - result, &dev_address, - event_info->cb, event_info->user_data); -#endif } else if (strcasecmp(signal_name, BT_GATT_REQ_ATT_MTU_CHANGED) == 0) { const char *address = NULL; bluetooth_device_address_t dev_address = { {0} }; @@ -1048,7 +1395,7 @@ void __bt_device_event_filter(GDBusConnection *connection, int link_type; gboolean rssi_enabled = FALSE; - g_variant_get(parameters, "(isib)", &result, &address, + g_variant_get(parameters, "(i&sib)", &result, &address, &link_type, &rssi_enabled); BT_DBG("RSSI Enabled[Address:%s LinkType:%d RSSI_dbm:%d]", @@ -1067,7 +1414,7 @@ void __bt_device_event_filter(GDBusConnection *connection, int link_type; bt_rssi_alert_t alert = { 0, }; - g_variant_get(parameters, "(isiii)", &result, &address, + g_variant_get(parameters, "(i&siii)", &result, &address, &link_type, &alert_type, &rssi_dbm); alert.alert_type = alert_type; @@ -1085,7 +1432,7 @@ void __bt_device_event_filter(GDBusConnection *connection, char *address; bt_raw_rssi_t raw_rssi = { 0, }; - g_variant_get(parameters, "(isii)", &result, + g_variant_get(parameters, "(i&sii)", &result, &address, &link_type, &rssi_dbm); BT_DBG("Address [%s] Link Type[%d] dBm[%d]", @@ -1232,7 +1579,7 @@ void __bt_device_event_filter(GDBusConnection *connection, BT_DBG("BT_PXP_PROPERTY_CHANGED"); - g_variant_get(parameters, "(isiii)", &result, &address, &role, &type, &level); + g_variant_get(parameters, "(i&siii)", &result, &address, &role, &type, &level); _bt_convert_addr_string_to_type(dev_address.addr, address); memcpy(¶ms.device_address, &dev_address, BLUETOOTH_ADDRESS_LENGTH); @@ -1386,7 +1733,6 @@ void __bt_headset_event_filter(GDBusConnection *connection, _bt_headset_event_cb(BLUETOOTH_EVENT_AG_MIC_GAIN, result, &gain, event_info->cb, event_info->user_data); -#ifdef TIZEN_FEATURE_BT_AVC_TARGET } else if (strcasecmp(signal_name, BT_AUDIO_AVC_MODE_CHANGED) == 0) { bool mode; @@ -1395,8 +1741,14 @@ void __bt_headset_event_filter(GDBusConnection *connection, _bt_headset_event_cb(BLUETOOTH_EVENT_AUDIO_AVC_STATUS, result, &mode, event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_MEDIA_VOLUME_CHANGE) == 0) { + unsigned int volume; + + g_variant_get(parameters, "(u)", &volume); + _bt_avrcp_event_cb(BLUETOOTH_EVENT_AVRCP_VOLUME_CHANGED, + result, &volume, + event_info->cb, event_info->user_data); } -#endif } void __bt_hid_device_event_filter(GDBusConnection *connection, @@ -1663,13 +2015,6 @@ void __bt_avrcp_event_filter(GDBusConnection *connection, _bt_avrcp_event_cb(BLUETOOTH_EVENT_AVRCP_DELAY_CHANGED, result, &delay, event_info->cb, event_info->user_data); - } else if (strcasecmp(signal_name, BT_MEDIA_VOLUME_CHANGE) == 0) { - unsigned int volume; - - g_variant_get(parameters, "(u)", &volume); - _bt_avrcp_event_cb(BLUETOOTH_EVENT_AVRCP_VOLUME_CHANGED, - result, &volume, - event_info->cb, event_info->user_data); } } @@ -2245,7 +2590,7 @@ void __bt_map_client_event_filter(GDBusConnection *connection, GVariant* value = NULL; while (g_variant_iter_loop(res, "{sv}", &key, &value)) { char* string_value = NULL; - g_variant_get(value, "s", &string_value); + g_variant_get(value, "&s", &string_value); BT_DBG("got folder name: %s", string_value); folders_struct.names[i] = strdup(string_value); } @@ -3568,7 +3913,6 @@ static void __bt_event_data_free(void *data) g_free(cb_data); } -#ifdef TIZEN_GATT_CLIENT static void __bt_gatt_client_event_filter(GDBusConnection *connection, const gchar *sender_name, const gchar *object_path, @@ -3611,8 +3955,8 @@ static void __bt_gatt_client_event_filter(GDBusConnection *connection, &data_var); g_strlcpy(char_prop.address, address, BT_ADDRESS_STRING_SIZE); - BT_INFO("GATT Client Char value changed in remote Server [%s]", address); - BT_INFO("GATT Client Char Val len: [%d]", char_prop.val_len); + BT_DBG("GATT Client Char value changed in remote Server [%s]", address); + BT_DBG("GATT Client Char Val len: [%d]", char_prop.val_len); if (char_prop.val_len > 0) { /* Copy Data */ @@ -3632,7 +3976,6 @@ static void __bt_gatt_client_event_filter(GDBusConnection *connection, g_variant_unref(svc_uuid_var); g_variant_unref(char_uuid_var); g_variant_unref(data_var); - } else if (strcasecmp(signal_name, BT_GATT_CLIENT_READ_CHAR) == 0) { /* Done */ /* Event: BLUETOOTH_EVENT_GATT_READ_CHAR */ BT_DBG("GATT Client event[BT_GATT_CLIENT_READ_CHAR]"); @@ -3682,7 +4025,6 @@ static void __bt_gatt_client_event_filter(GDBusConnection *connection, g_variant_unref(svc_uuid_var); g_variant_unref(char_uuid_var); g_variant_unref(data_var); - } else if (strcasecmp(signal_name, BT_GATT_CLIENT_WRITE_CHAR) == 0) { /* Done */ /* Event: BLUETOOTH_EVENT_GATT_WRITE_CHAR */ BT_DBG("GATT Client event[BT_GATT_CLIENT_WRITE_CHAR]"); @@ -3724,7 +4066,6 @@ static void __bt_gatt_client_event_filter(GDBusConnection *connection, g_variant_unref(svc_uuid_var); g_variant_unref(char_uuid_var); - } else if (strcasecmp(signal_name, BT_GATT_CLIENT_READ_DESC) == 0) { /* Done */ /* Event: BLUETOOTH_EVENT_GATT_READ_DESC */ BT_DBG("GATT Client event[BT_GATT_CLIENT_READ_DESC]"); @@ -3786,7 +4127,6 @@ static void __bt_gatt_client_event_filter(GDBusConnection *connection, g_variant_unref(char_uuid_var); g_variant_unref(desc_uuid_var); g_variant_unref(data_var); - } else if (strcasecmp(signal_name, BT_GATT_CLIENT_WRITE_DESC) == 0) { /* Done */ /* Event: BLUETOOTH_EVENT_GATT_WRITE_DESC */ BT_DBG("GATT Client event[BT_GATT_CLIENT_WRITE_DESC]"); @@ -3819,8 +4159,8 @@ static void __bt_gatt_client_event_filter(GDBusConnection *connection, g_strlcpy(desc_prop.address, address, BT_ADDRESS_STRING_SIZE); - BT_INFO("GATT Client Write Descriptor Callback from [%s]", address); - BT_INFO("GATT Client Descriptor Val len: [%d]", desc_prop.val_len); + BT_DBG("GATT Client Write Descriptor Callback from [%s]", address); + BT_DBG("GATT Client Descriptor Val len: [%d]", desc_prop.val_len); /* Copy Data */ memcpy(&desc_prop.prop.uuid, g_variant_get_data(desc_uuid_var), 16); @@ -3840,9 +4180,7 @@ static void __bt_gatt_client_event_filter(GDBusConnection *connection, g_variant_unref(svc_uuid_var); g_variant_unref(char_uuid_var); g_variant_unref(desc_uuid_var); - } else if (strcasecmp(signal_name, BT_GATT_CLIENT_SERVICE_CHANGED) == 0) { - BT_DBG("GATT Client event[BT_GATT_CLIENT_SERVICE_CHANGED]"); bt_gatt_service_change_t change = {0, }; char *address_str = NULL; char *name = NULL; @@ -3850,24 +4188,22 @@ static void __bt_gatt_client_event_filter(GDBusConnection *connection, g_variant_get(parameters, "(ii&s&s)", &change.inst_id, &change.change_type, &address_str, &change.uuid); _bt_convert_addr_string_to_type(change.device_addr.addr, address_str); - bluetooth_get_uuid_name(change.uuid, &name); - BT_INFO(" ### GATT Service %s [%s]", change.change_type ? "Added" : "Removed", name); - g_free(name); if (_bluetooth_gatt_check_service_change_watcher_address(&change.device_addr) == FALSE) { - BT_INFO("No watcher for %s", address_str); + BT_DBG("GATT Service changed, but no watcher for %s", address_str); return; } + bluetooth_get_uuid_name(change.uuid, &name); + BT_INFO(" ### GATT Service %s [%s]", change.change_type ? "Added" : "Removed", name); + g_free(name); + _bt_gatt_client_event_cb(BLUETOOTH_EVENT_GATT_CLIENT_SERVICE_CHANGED, BLUETOOTH_ERROR_NONE, &change, event_info->cb, event_info->user_data); } } -#endif - - #ifndef GATT_DIRECT static void __bt_gatt_server_event_filter(GDBusConnection *connection, const gchar *sender_name, @@ -3877,39 +4213,15 @@ static void __bt_gatt_server_event_filter(GDBusConnection *connection, GVariant *parameters, gpointer user_data) { - BT_INFO("GATT Server event handler Entry >>"); + BT_DBG("Signal : %s", signal_name); bt_event_info_t *event_info; int result = BLUETOOTH_ERROR_NONE; event_info = (bt_event_info_t *)user_data; ret_if(event_info == NULL); -#ifdef TIZEN_GATT_CLIENT - if (strcasecmp(signal_name, BT_GATT_VALUE_CHANGED) == 0) { -#else - if (strcasecmp(signal_name, BT_GATT_CONNECTED) == 0) { - const char *address = NULL; - bluetooth_device_address_t dev_address = { {0} }; - BT_DBG("BT_GATT_CONNECTED"); - g_variant_get(parameters, "(i&s)", &result, &address); - - _bt_convert_addr_string_to_type(dev_address.addr, address); - _bt_gatt_server_event_cb(BLUETOOTH_EVENT_GATT_CONNECTED, - result, &dev_address, - event_info->cb, event_info->user_data); - } else if (strcasecmp(signal_name, BT_GATT_DISCONNECTED) == 0) { - const char *address = NULL; - bluetooth_device_address_t dev_address = { {0} }; - BT_DBG("BT_GATT_DISCONNECTED"); - g_variant_get(parameters, "(i&s)", &result, &address); - _bt_convert_addr_string_to_type(dev_address.addr, address); - _bt_gatt_server_event_cb(BLUETOOTH_EVENT_GATT_DISCONNECTED, - result, &dev_address, - event_info->cb, event_info->user_data); - } else if (strcasecmp(signal_name, BT_GATT_VALUE_CHANGED) == 0) { -#endif - BT_INFO("GATT Server event[BT_GATT_SERVER_WRITE_REQUESTED]"); + if (strcasecmp(signal_name, BT_GATT_VALUE_CHANGED) == 0) { const char *address = NULL; GVariant *data_var = NULL; bluetooth_device_address_t dev_address = { {0} }; @@ -4060,8 +4372,6 @@ static void __bt_gatt_server_event_filter(GDBusConnection *connection, event_info->cb, event_info->user_data); } - - BT_INFO("GATT Server event handler Exit <<"); } #endif @@ -4176,13 +4486,14 @@ int _bt_register_event(int event_type, void *event_cb, void *user_data) path = BT_GATT_SERVER_PATH; break; #endif - -#ifdef TIZEN_GATT_CLIENT case BT_GATT_CLIENT_EVENT: event_func = __bt_gatt_client_event_filter; path = BT_GATT_CLIENT_PATH; break; -#endif + case BT_MESH_EVENT: + event_func = __bt_mesh_event_filter; + path = BT_MESH_PATH; + break; default: BT_ERR("Unknown event"); return BLUETOOTH_ERROR_INTERNAL; @@ -4283,7 +4594,7 @@ void _bt_register_name_owner_changed(void) return; } owner_sig_id = g_dbus_connection_signal_subscribe(connection_type, - NULL, BT_EVENT_FREEDESKTOP, + BT_DBUS_NAME, BT_EVENT_FREEDESKTOP, BT_NAME_OWNER_CHANGED, NULL, NULL, 0, __bt_name_owner_changed, NULL, NULL); }