CAPI/PANU: Implement function bt_panu_unset_connection_state_changed_cb() 49/19049/1
authorWu Jiangbo <jiangbox.wu@intel.com>
Fri, 4 Apr 2014 11:43:55 +0000 (19:43 +0800)
committerWu Jiangbo <jiangbox.wu@intel.com>
Fri, 4 Apr 2014 11:56:59 +0000 (19:56 +0800)
Change-Id: I0ca59b742ccdaf85edf3a573dc72dc2d8f36a8d1
Signed-off-by: Wu Jiangbo <jiangbox.wu@intel.com>
capi/bluetooth.c
test/bluez-capi-test.c

index da7effc..4faffc6 100644 (file)
@@ -551,6 +551,9 @@ static void unset_device_property_changed_callback(bluez_device_t *device)
 
        if (dev_property_callback_flags ^ DEV_PROP_FLAG_AUTH)
                bluez_device_unset_trusted_changed_cb(device);
+
+       if (dev_property_callback_flags ^ DEV_PROP_FLAG_PANU_CONNECT)
+               bluez_device_network_unset_connected_changed_cb(device);
 }
 
 static void foreach_device_property_callback(GList *list, unsigned int flag)
@@ -3684,3 +3687,28 @@ int bt_panu_set_connection_state_changed_cb(
 
        return BT_SUCCESS;
 }
+
+int bt_panu_unset_connection_state_changed_cb(void)
+{
+       GList *list;
+       DBG("");
+
+       if (initialized == false)
+               return BT_ERROR_NOT_INITIALIZED;
+
+       if (default_adapter == NULL)
+               return BT_ERROR_ADAPTER_NOT_FOUND;
+
+       if (!panu_state_node)
+               return BT_SUCCESS;
+
+       dev_property_callback_flags &= ~DEV_PROP_FLAG_PANU_CONNECT;
+
+       list = bluez_adapter_get_devices(default_adapter);
+       foreach_device_property_callback(list, DEV_PROP_FLAG_PANU_CONNECT);
+
+       g_free(panu_state_node);
+       panu_state_node = NULL;
+
+       return BT_SUCCESS;
+}
index b5273e7..718bf0b 100644 (file)
@@ -1438,6 +1438,19 @@ static int panu_set_state_changed(const char *p1, const char *p2)
        return 0;
 }
 
+static int panu_unset_state_changed(const char *p1, const char *p2)
+{
+       int ret;
+
+       ret = bt_panu_unset_connection_state_changed_cb();
+       if (ret != BT_SUCCESS) {
+               ERROR("unset_panu_connected_callback error: %d", ret);
+               return 0;
+       }
+
+       return 0;
+}
+
 static int panu_connect(const char *p1, const char *p2)
 {
        int ret;
@@ -1661,6 +1674,9 @@ struct {
        {"panu_set_state_changed", panu_set_state_changed,
                "Usage: panu_set_state_changed\n\tset panu state changed callback"},
 
+       {"panu_unset_state_changed", panu_unset_state_changed,
+               "Usage: panu_unset_state_changed\n\tunset panu state changed callback"},
+
        {"panu_connect", panu_connect,
                "Usage: panu_connect 70:F9:27:64:DF:65\n\tconnect address for panu"},