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;
event = connected ? BLUETOOTH_EVENT_IPSP_CONNECTED :
- BLUETOOTH_EVENT_IPSP_DISCONNECTED;
+ BLUETOOTH_EVENT_IPSP_DISCONNECTED;
address = g_malloc0(BT_ADDRESS_STRING_SIZE);
/* 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);
}
}