IPSP : Tie connected info and Interface Info 55/83355/7 accepted/tizen/common/20160812.140952 accepted/tizen/ivi/20160812.065434 accepted/tizen/mobile/20160812.065416 accepted/tizen/tv/20160812.065429 accepted/tizen/wearable/20160812.065422 submit/tizen/20160812.010225
authorTaejin Woo <tt.woo@samsung.com>
Wed, 10 Aug 2016 08:21:46 +0000 (17:21 +0900)
committerTaejin Woo <tt.woo@samsung.com>
Thu, 11 Aug 2016 06:03:54 +0000 (15:03 +0900)
When connected between two device, they already know Interface info

Change-Id: I3c8ab492a7cf50e6e6adf9cdde05cf99f0c15c5f
Signed-off-by: Taejin Woo <tt.woo@samsung.com>
bt-api/bt-event-handler.c
bt-service-emul/bt-service-event-sender.c
bt-service/bt-service-event-receiver.c
bt-service/bt-service-event-sender.c
include/bluetooth-api.h
include/bt-internal-types.h

index f571cb9..e9925cf 100644 (file)
@@ -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;
index 2e74c72..f902f49 100644 (file)
@@ -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;
index 2bd9f50..b0290d1 100644 (file)
@@ -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);
        }
 
 }
index f3977e0..1bd632c 100644 (file)
@@ -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;
index 4af98b4..566a36a 100644 (file)
@@ -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
index 8de88a1..b27f71d 100644 (file)
@@ -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