CAPI/Adapter: Get adapter visibility timeout 91/18291/1
authorWu Jiangbo <jiangbox.wu@intel.com>
Thu, 20 Mar 2014 06:07:27 +0000 (14:07 +0800)
committerWu Jiangbo <jiangbox.wu@intel.com>
Thu, 20 Mar 2014 06:44:15 +0000 (14:44 +0800)
Change-Id: I553f323d6ee416ebf074c8aeae8cd8e0176d79b2
Signed-off-by: Wu Jiangbo <jiangbox.wu@intel.com>
capi/bluetooth.c
test/bluez-capi-test.c

index 66953aa..a737f13 100644 (file)
@@ -918,23 +918,28 @@ int bt_adapter_get_visibility(bt_adapter_visibility_mode_e *mode,
                return BT_ERROR_INVALID_PARAMETER;
 
        err = bluez_adapter_get_property_discoverable(default_adapter,
-                                                               &discoverable);
+                                                       &discoverable);
        if (err)
                return BT_ERROR_OPERATION_FAILED;
 
-       err = bluez_adapter_get_property_discoverable_timeout(default_adapter,
-                                                               &timeout);
-       if (err)
+       timeout = comms_manager_get_bt_adapter_visibale_time();
+       if (timeout == -1)
                return BT_ERROR_OPERATION_FAILED;
 
+       if (duration)
+               *duration = 0;
+
        if (!discoverable){
                *mode = BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE;
                return BT_SUCCESS;
        }
 
        *mode = (timeout == 0) ?
-                       BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE :
-                       BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE;
+                       BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE :
+                       BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE;
+
+       if (*mode == BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE)
+               *duration = timeout;
 
        return BT_SUCCESS;
 }
@@ -955,10 +960,14 @@ int bt_adapter_set_visibility(bt_adapter_visibility_mode_e discoverable_mode,
        switch (discoverable_mode) {
        case BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE:
                discoverable = false;
+               duration = 0;
                break;
        case BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE:
+               discoverable = true;
+               break;
        case BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE:
                discoverable = true;
+               duration = 0;
                break;
        default:
                return BT_ERROR_INVALID_PARAMETER;
@@ -966,7 +975,7 @@ int bt_adapter_set_visibility(bt_adapter_visibility_mode_e discoverable_mode,
 
        bluez_adapter_set_discoverable(default_adapter, discoverable);
 
-       /* TODO: Set start timer */
+       bluez_adapter_set_discoverable_timeout(default_adapter, duration);
 
        return BT_SUCCESS;
 }
index 21410a7..4452396 100644 (file)
@@ -187,6 +187,39 @@ static int set_adapter_name(const char *p1, const char *p2)
        return 0;
 }
 
+static int set_adapter_visibility(const char *p1, const char *p2)
+{
+       bt_adapter_visibility_mode_e mode;
+       unsigned int mode_num, timeout;
+       int err;
+
+       mode_num = atoi(p1);
+       timeout = atoi(p2);
+
+       switch(mode_num) {
+       case 1:
+               mode = BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE;
+               break;
+       case 2:
+               mode = BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE;
+               break;
+       case 3:
+               mode = BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE;
+               break;
+       default:
+               DBG("Unknown mode");
+               return 0;
+       }
+
+       err = bt_adapter_set_visibility(mode, timeout);
+       if (err != BT_SUCCESS) {
+               ERROR("bt_adapter_set_visibility error: %d", err);
+               return 0;
+       }
+
+       return 0;
+}
+
 static int get_adapter_visibility(const char *p1, const char *p2)
 {
        int err, duration;
@@ -212,6 +245,8 @@ static int get_adapter_visibility(const char *p1, const char *p2)
                DBG("Unknown mode");
        }
 
+       DBG("duration %d", duration);
+
        return 0;
 }
 
@@ -1311,6 +1346,9 @@ struct {
        {"set_adapter_name", set_adapter_name,
                "Usage: set_adapter_name\n\tSet local adapter name"},
 
+       {"set_adapter_visibility", set_adapter_visibility,
+               "Usage: set_adapter_visibility 1 <1-3, No, Limit, Discoverable> duration\n\tSet adapter visibility"},
+
        {"get_adapter_visibility", get_adapter_visibility,
                "Usage: get_adapter_visibility\n\tGet local adapter visibility"},