summaryrefslogtreecommitdiff
path: root/tools/bluetooth-player.c
diff options
context:
space:
mode:
authorERAMOTO Masaya <eramoto.masaya@jp.fujitsu.com>2017-12-28 14:44:20 +0900
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2018-01-02 14:15:58 -0200
commitfecdfcd323f6289a6a989d34802035ef4c7735f8 (patch)
tree664c664468c7b5d69b8177f4606ddd43c34918ca /tools/bluetooth-player.c
parent203f5cb2f03c3708bb79cecb8b448b87e3ce7c88 (diff)
downloadbluez-fecdfcd323f6289a6a989d34802035ef4c7735f8.tar.gz
tools/bluetooth-player: Add generator for player/item
Diffstat (limited to 'tools/bluetooth-player.c')
-rw-r--r--tools/bluetooth-player.c36
1 files changed, 31 insertions, 5 deletions
diff --git a/tools/bluetooth-player.c b/tools/bluetooth-player.c
index 0ab8cab33..709ef5633 100644
--- a/tools/bluetooth-player.c
+++ b/tools/bluetooth-player.c
@@ -75,6 +75,27 @@ static bool check_default_player(void)
return TRUE;
}
+static char *generic_generator(const char *text, int state, GList *source)
+{
+ static int index = 0;
+
+ if (!state) {
+ index = 0;
+ }
+
+ return g_dbus_proxy_path_lookup(source, &index, text);
+}
+
+static char *player_generator(const char *text, int state)
+{
+ return generic_generator(text, state, players);
+}
+
+static char *item_generator(const char *text, int state)
+{
+ return generic_generator(text, state, items);
+}
+
static void play_reply(DBusMessage *message, void *user_data)
{
DBusError error;
@@ -911,9 +932,12 @@ static const struct bt_shell_menu main_menu = {
.name = "main",
.entries = {
{ "list", NULL, cmd_list, "List available players" },
- { "show", "[player]", cmd_show, "Player information" },
- { "select", "<player>", cmd_select, "Select default player" },
- { "play", "[item]", cmd_play, "Start playback" },
+ { "show", "[player]", cmd_show, "Player information",
+ player_generator},
+ { "select", "<player>", cmd_select, "Select default player",
+ player_generator},
+ { "play", "[item]", cmd_play, "Start playback",
+ item_generator},
{ "pause", NULL, cmd_pause, "Pause playback" },
{ "stop", NULL, cmd_stop, "Stop playback" },
{ "next", NULL, cmd_next, "Jump to next item" },
@@ -935,8 +959,10 @@ static const struct bt_shell_menu main_menu = {
"List items of current folder" },
{ "search", "<string>", cmd_search,
"Search items containing string" },
- { "queue", "<item>", cmd_queue, "Add item to playlist queue" },
- { "show-item", "<item>", cmd_show_item, "Show item information" },
+ { "queue", "<item>", cmd_queue, "Add item to playlist queue",
+ item_generator},
+ { "show-item", "<item>", cmd_show_item, "Show item information",
+ item_generator},
{} },
};