From: Taejin Woo Date: Wed, 10 Aug 2016 08:21:46 +0000 (+0900) Subject: IPSP : Tie connected info and Interface Info X-Git-Tag: accepted/tizen/common/20160812.140952^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ad1dd0752dcfffd9edb3c6be4b40ac7d39e17594;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git IPSP : Tie connected info and Interface Info When connected between two device, they already know Interface info Change-Id: I3c8ab492a7cf50e6e6adf9cdde05cf99f0c15c5f Signed-off-by: Taejin Woo --- diff --git a/bt-api/bt-event-handler.c b/bt-api/bt-event-handler.c index f571cb9..e9925cf 100644 --- a/bt-api/bt-event-handler.c +++ b/bt-api/bt-event-handler.c @@ -976,42 +976,33 @@ void __bt_device_event_filter(GDBusConnection *connection, event_info->cb, event_info->user_data); } else if (strcasecmp(signal_name, BT_IPSP_CONNECTED) == 0) { const char *address = NULL; - bluetooth_device_address_t dev_address = { {0} }; + const char *if_name = NULL; + bt_ipsp_connection_info_t bt_ipsp_iface_info; + memset(&bt_ipsp_iface_info, 0, sizeof(bt_ipsp_iface_info)); BT_DBG("BT_IPSP_CONNECTED"); - g_variant_get(parameters, "(i&s)", &result, &address); + g_variant_get(parameters, "(i&s&s)", &result, &address, &if_name); - _bt_convert_addr_string_to_type(dev_address.addr, address); + _bt_convert_addr_string_to_type(bt_ipsp_iface_info.btaddr.addr, address); + memcpy(bt_ipsp_iface_info.if_name, if_name, 16); _bt_common_event_cb(BLUETOOTH_EVENT_IPSP_CONNECTED, - result, &dev_address, + result, &bt_ipsp_iface_info, event_info->cb, event_info->user_data); } else if (strcasecmp(signal_name, BT_IPSP_DISCONNECTED) == 0) { const char *address = NULL; - bluetooth_device_address_t dev_address = { {0} }; - BT_DBG("BT_IPSP_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_IPSP_DISCONNECTED, - result, &dev_address, - event_info->cb, event_info->user_data); - } else if (strcasecmp(signal_name, BT_IPSP_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_ipsp_connection_info_t bt_ipsp_iface_info; + memset(&bt_ipsp_iface_info, 0, sizeof(bt_ipsp_iface_info)); - BT_DBG("BT_IPSP_INTERFACE_INFO"); + BT_DBG("BT_IPSP_DISCONNECTED"); 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_convert_addr_string_to_type(bt_ipsp_iface_info.btaddr.addr, address); + memcpy(bt_ipsp_iface_info.if_name, if_name, 16); - _bt_common_event_cb(BLUETOOTH_EVENT_IPSP_INTERFACE_INFO, - result, &ipsp_iface_info, + _bt_common_event_cb(BLUETOOTH_EVENT_IPSP_DISCONNECTED, + result, &bt_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; diff --git a/bt-service-emul/bt-service-event-sender.c b/bt-service-emul/bt-service-event-sender.c index 2e74c72..f902f49 100644 --- a/bt-service-emul/bt-service-event-sender.c +++ b/bt-service-emul/bt-service-event-sender.c @@ -365,9 +365,6 @@ 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_INTERFACE_INFO: - signal = BT_IPSP_INTERFACE_INFO; - break; case BLUETOOTH_EVENT_GATT_CHAR_VAL_CHANGED: signal = BT_GATT_CHAR_VAL_CHANGED; break; diff --git a/bt-service/bt-service-event-receiver.c b/bt-service/bt-service-event-receiver.c index 2bd9f50..b0290d1 100644 --- a/bt-service/bt-service-event-receiver.c +++ b/bt-service/bt-service-event-receiver.c @@ -1101,7 +1101,7 @@ static void __bt_device_property_changed_event(GVariant *msg, const char *path) event = connected ? BLUETOOTH_EVENT_IPSP_CONNECTED : - BLUETOOTH_EVENT_IPSP_DISCONNECTED; + BLUETOOTH_EVENT_IPSP_DISCONNECTED; address = g_malloc0(BT_ADDRESS_STRING_SIZE); @@ -1986,6 +1986,27 @@ void _bt_handle_device_event(GVariant *msg, const char *member, const char *path /* Send event to application */ _bt_send_event(BT_DEVICE_EVENT, event, param); g_free(address); + } else if (strcasecmp(member, "IpspStateChanged") == 0) { + gboolean connected = FALSE; + char *ifname = NULL; + + g_variant_get(msg, "(bs)", &connected, &ifname); + + event = connected ? BLUETOOTH_EVENT_IPSP_CONNECTED : + BLUETOOTH_EVENT_IPSP_DISCONNECTED; + + 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, + event, + param); + g_free(address); } } diff --git a/bt-service/bt-service-event-sender.c b/bt-service/bt-service-event-sender.c index f3977e0..1bd632c 100644 --- a/bt-service/bt-service-event-sender.c +++ b/bt-service/bt-service-event-sender.c @@ -395,9 +395,6 @@ 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_INTERFACE_INFO: - signal = BT_IPSP_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 4af98b4..566a36a 100644 --- a/include/bluetooth-api.h +++ b/include/bluetooth-api.h @@ -1628,7 +1628,7 @@ typedef struct { typedef struct { bluetooth_device_address_t btaddr; char if_name[16]; -} bt_ipsp_interface_info_t; +} bt_ipsp_connection_info_t; /** * Callback pointer type diff --git a/include/bt-internal-types.h b/include/bt-internal-types.h index 8de88a1..b27f71d 100644 --- a/include/bt-internal-types.h +++ b/include/bt-internal-types.h @@ -491,7 +491,6 @@ typedef struct { #define BT_IPSP_INITIALIZED "IpspInitStateChanged" #define BT_IPSP_CONNECTED "IpspConnected" #define BT_IPSP_DISCONNECTED "IpspDisconnected" -#define BT_IPSP_INTERFACE_INFO "IpspBtInterfaceInfo" #define BT_LE_DATA_LENGTH_CHANGED "LEDataLengthChanged" #ifdef __cplusplus