From: paras.kumar Date: Thu, 28 Jan 2016 08:42:45 +0000 (+0530) Subject: IPSP : Handle BT interface info event or property emitted from bluez X-Git-Tag: accepted/tizen/ivi/20160609.090242 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Ftags%2Faccepted%2Ftizen%2Fivi%2F20160609.090242;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git IPSP : Handle BT interface info event or property emitted from bluez This patch is to handle the property emitted from bluez for BT interface info after IPSP connection. Add bluetooth event for the same. Change-Id: Ib38a6b0a7f12442a693b84507edf3f8ef8037f9a Signed-off-by: paras.kumar --- diff --git a/bt-api/bt-event-handler.c b/bt-api/bt-event-handler.c old mode 100755 new mode 100644 index 8aeed56..3f23efb --- a/bt-api/bt-event-handler.c +++ b/bt-api/bt-event-handler.c @@ -1020,6 +1020,21 @@ void __bt_device_event_filter(GDBusConnection *connection, _bt_common_event_cb(BLUETOOTH_EVENT_IPSP_DISCONNECTED, result, &dev_address, event_info->cb, event_info->user_data); + } else if (strcasecmp(signal_name, BT_IPSP_BT_INTERFACE_INFO) == 0) { + const char *address = NULL; + const char *if_name = NULL; + bt_ipsp_interface_info_t ipsp_iface_info; + memset(&ipsp_iface_info, 0, sizeof(ipsp_iface_info)); + + BT_DBG("BT_IPSP_BT_INTERFACE_INFO"); + g_variant_get(parameters, "(i&s&s)", &result, &address, &if_name); + + _bt_convert_addr_string_to_type(ipsp_iface_info.btaddr.addr, address); + memcpy(ipsp_iface_info.if_name, if_name, 16); + + _bt_common_event_cb(BLUETOOTH_EVENT_IPSP_BT_INTERFACE_INFO, + result, &ipsp_iface_info, + event_info->cb, event_info->user_data); } else if (strcasecmp(signal_name, BT_LE_DATA_LENGTH_CHANGED) == 0) { const char *address = NULL; bluetooth_device_address_t dev_address = { {0} }; diff --git a/bt-service/bt-service-event-receiver.c b/bt-service/bt-service-event-receiver.c index 81cba0d..5ffc0ab 100644 --- a/bt-service/bt-service-event-receiver.c +++ b/bt-service/bt-service-event-receiver.c @@ -1114,6 +1114,24 @@ static void __bt_device_property_changed_event(GVariant *msg, const char *path) event, param); g_free(address); + } else if (strcasecmp(property, "IpspBtInterfaceInfo") == 0) { + char *ifname = NULL; + + g_variant_get(val, "s", &ifname); + + address = g_malloc0(BT_ADDRESS_STRING_SIZE); + + _bt_convert_device_path_to_address(path, address); + + BT_DBG("Ipsp BT Interface Name: %s", ifname); + BT_DBG("address: %s", address); + param = g_variant_new("(iss)", result, address, ifname); + + /* Send event to application */ + _bt_send_event(BT_DEVICE_EVENT, + BLUETOOTH_EVENT_IPSP_BT_INTERFACE_INFO, + param); + g_free(address); } } BT_DBG("-"); diff --git a/bt-service/bt-service-event-sender.c b/bt-service/bt-service-event-sender.c old mode 100755 new mode 100644 index 1bd632c..f539589 --- a/bt-service/bt-service-event-sender.c +++ b/bt-service/bt-service-event-sender.c @@ -395,6 +395,9 @@ int _bt_send_event(int event_type, int event, GVariant *param) case BLUETOOTH_EVENT_IPSP_DISCONNECTED: signal = BT_IPSP_DISCONNECTED; break; + case BLUETOOTH_EVENT_IPSP_BT_INTERFACE_INFO: + signal = BT_IPSP_BT_INTERFACE_INFO; + break; case BLUETOOTH_EVENT_GATT_CHAR_VAL_CHANGED: signal = BT_GATT_CHAR_VAL_CHANGED; break; diff --git a/include/bluetooth-api.h b/include/bluetooth-api.h index 9fd0d40..cf1f230 100644 --- a/include/bluetooth-api.h +++ b/include/bluetooth-api.h @@ -633,6 +633,7 @@ typedef enum { BLUETOOTH_EVENT_IPSP_INIT_STATE_CHANGED = BLUETOOTH_EVENT_IPSP_BASE, /**