Return-Path: Subject: [PATCH BlueZ 7/8] tools/bluetooth-player: Add generator for player/item From: ERAMOTO Masaya To: "linux-bluetooth@vger.kernel.org" References: <6f0b4053-4936-8d8c-3095-d6326d9a0e93@jp.fujitsu.com> Message-ID: Date: Fri, 22 Dec 2017 16:36:00 +0900 MIME-Version: 1.0 In-Reply-To: <6f0b4053-4936-8d8c-3095-d6326d9a0e93@jp.fujitsu.com> Content-Type: text/plain; charset="utf-8" Sender: linux-bluetooth-owner@vger.kernel.org List-ID: --- tools/bluetooth-player.c | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/tools/bluetooth-player.c b/tools/bluetooth-player.c index 4fbae0c0a..3dc7dc985 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; @@ -909,9 +930,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", "", cmd_select, "Select default player" }, - { "play", "[item]", cmd_play, "Start playback" }, + { "show", "[player]", cmd_show, "Player information", + player_generator}, + { "select", "", 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" }, @@ -933,8 +957,10 @@ static const struct bt_shell_menu main_menu = { "List items of current folder" }, { "search", "", cmd_search, "Search items containing string" }, - { "queue", "", cmd_queue, "Add item to playlist queue" }, - { "show-item", "", cmd_show_item, "Show item information" }, + { "queue", "", cmd_queue, "Add item to playlist queue", + item_generator}, + { "show-item", "", cmd_show_item, "Show item information", + item_generator}, {} }, }; -- 2.14.1