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;
}
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;
bluez_adapter_set_discoverable(default_adapter, discoverable);
- /* TODO: Set start timer */
+ bluez_adapter_set_discoverable_timeout(default_adapter, duration);
return BT_SUCCESS;
}
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;
DBG("Unknown mode");
}
+ DBG("duration %d", duration);
+
return 0;
}
{"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"},