client: Add discoverable-timeout command
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tue, 24 Jul 2018 13:03:07 +0000 (16:03 +0300)
committerhimanshu <h.himanshu@samsung.com>
Tue, 14 Jan 2020 08:53:35 +0000 (14:23 +0530)
This adds discoverable-timeout command which can be used to get/set
DiscoverableTimeout property:

[bluetooth]# discoverable-timeout 180
Changing discoverable-timeout 180 succeeded

Change-Id: I294e0facc8d69dc03766f7664a8f0de31fc94a9f
Signed-off-by: himanshu <h.himanshu@samsung.com>
client/main.c

index e194b54..0794946 100644 (file)
@@ -1064,6 +1064,47 @@ static void cmd_discoverable(int argc, char *argv[])
        return bt_shell_noninteractive_quit(EXIT_FAILURE);
 }
 
+static void cmd_discoverable_timeout(int argc, char *argv[])
+{
+       uint32_t value;
+       char *endptr = NULL;
+       char *str;
+
+       if (argc < 2) {
+               DBusMessageIter iter;
+
+               if (!g_dbus_proxy_get_property(default_ctrl->proxy,
+                                       "DiscoverableTimeout", &iter)) {
+                       bt_shell_printf("Unable to get DiscoverableTimeout\n");
+                       return bt_shell_noninteractive_quit(EXIT_FAILURE);
+               }
+
+               dbus_message_iter_get_basic(&iter, &value);
+
+               bt_shell_printf("DiscoverableTimeout: %d seconds\n", value);
+
+               return;
+       }
+
+       value = strtol(argv[1], &endptr, 0);
+       if (!endptr || *endptr != '\0' || value > UINT32_MAX) {
+               bt_shell_printf("Invalid argument\n");
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
+       }
+
+       str = g_strdup_printf("discoverable-timeout %d", value);
+
+       if (g_dbus_proxy_set_property_basic(default_ctrl->proxy,
+                                       "DiscoverableTimeout",
+                                       DBUS_TYPE_UINT32, &value,
+                                       generic_callback, str, g_free))
+               return;
+
+       g_free(str);
+
+       return bt_shell_noninteractive_quit(EXIT_FAILURE);
+}
+
 static void cmd_agent(int argc, char *argv[])
 {
        dbus_bool_t enable;
@@ -2555,6 +2596,8 @@ static const struct bt_shell_menu main_menu = {
        { "discoverable", "<on/off>", cmd_discoverable,
                                        "Set controller discoverable mode",
                                                        NULL },
+       { "discoverable-timeout", "[value]", cmd_discoverable_timeout,
+                                       "Set discoverable timeout", NULL },
        { "agent",        "<on/off/capability>", cmd_agent,
                                "Enable/disable agent with given capability",
                                                        capability_generator},