diff --git a/inc/lektor/internal/commands.def b/inc/lektor/internal/commands.def new file mode 100644 index 0000000000000000000000000000000000000000..5fc2e22f287db254325dbf49849dbaf5c49a2b12 --- /dev/null +++ b/inc/lektor/internal/commands.def @@ -0,0 +1,64 @@ +mpd_command("currentsong", command_currentsong, SIMPLE) +mpd_command("status", command_status, SIMPLE) +mpd_command("stats", command_stats, SIMPLE) +mpd_command("help", command_help, SIMPLE) + +mpd_command("next", command_next, SIMPLE) +mpd_command("previous", command_previous, SIMPLE) +mpd_command("pause", command_pause, SIMPLE) +mpd_command("play", command_play, SIMPLE) +mpd_command("playid", command_playid, SIMPLE) +mpd_command("stop", command_stop, SIMPLE) +mpd_command("seek", command_seek, SIMPLE) +mpd_command("seekid", command_seekid, SIMPLE) +mpd_command("seekcur", command_seekcur, SIMPLE) + +mpd_command("__insert", command_add_5, SIMPLE) +mpd_command("add", command_add_1, SIMPLE) +mpd_command("searchadd", command_add_1, SIMPLE) +mpd_command("findadd", command_add_1, SIMPLE) +mpd_command("addid", command_addid, SIMPLE) +mpd_command("delete", command_del, SIMPLE) +mpd_command("deleteid", command_delid, SIMPLE) +mpd_command("clear", command_clear, SIMPLE) +mpd_command("crop", command_crop, SIMPLE) +mpd_command("move", command_move, SIMPLE) +mpd_command("shuffle", command_shuffle, SIMPLE) +mpd_command("swap", command_swap, SIMPLE) +mpd_command("swapid", command_swapid, SIMPLE) +mpd_command("__flat", command_flat, SIMPLE) + +mpd_command("playlistid", command_queue_listid, SIMPLE) +mpd_command("playlist", command_queue_list, SIMPLE) +mpd_command("playlistinfo", command_queue_list, SIMPLE) + +mpd_command("playlistclear", command_plt_clear, ANON) +mpd_command("rename", command_plt_rename, ANON) +mpd_command("playlistdelete", command_plt_remove, ANON) +mpd_command("rm", command_plt_remove, ANON) +mpd_command("playlistadd", command_plt_add, ANON) +mpd_command("save", command_plt_export, ANON) +mpd_command("__plt_import", command_plt_import, ANON) +mpd_command("__dump", command_dump, ANON) +mpd_command("listplaylists", command_plt_list, CONTINUATION) +mpd_command("listplaylist", command_plt_ctx, CONTINUATION) +mpd_command("sticker", command_sticker_handle, SIMPLE) + +mpd_command("password", command_password, SIMPLE) +mpd_command("__adduser", command_user_add, SIMPLE) +mpd_command("__restart", command_restart, SIMPLE) +mpd_command("kill", command_kill, SIMPLE) +mpd_command("__import", command_import, SIMPLE) +mpd_command("__rescan", command_rescan_true, SIMPLE) +mpd_command("update", command_update, SIMPLE) +mpd_command("__dry_update", command_dry_update, SIMPLE) +mpd_command("rescan", command_rescan_false, SIMPLE) +mpd_command("config", command_config, SIMPLE) + +mpd_command("random", command_set_playback_option_random, SIMPLE) +mpd_command("repeat", command_set_playback_option_repeat, SIMPLE) +mpd_command("setvol", command_set_playback_option_volume, SIMPLE) +mpd_command("single", command_set_playback_option_single, SIMPLE) +mpd_command("consume", command_set_playback_option_consume, SIMPLE) + +// vi:syntax=c diff --git a/src/net/listen.c b/src/net/listen.c index f836dca59f6a17cee192f90e3cf2d15c896a7ff6..f734f7d1f69f0fc65188813077f563c04c183f1c 100644 --- a/src/net/listen.c +++ b/src/net/listen.c @@ -172,73 +172,10 @@ ___cmd_trie_init(void) LOG_INFO("CMD_TRIE", "Init the command trie"); cmd_trie_root = cmd_trie_new(); - // clang-format off -#pragma message(TODO "We might want to do xdefs here with macros and one include") - cmd_trie_insert(cmd_trie_root, "currentsong", FUNCTION_POINTER(command_currentsong), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "status", FUNCTION_POINTER(command_status), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "stats", FUNCTION_POINTER(command_stats), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "help", FUNCTION_POINTER(command_help), LKT_COMMAND_SIMPLE); - - cmd_trie_insert(cmd_trie_root, "next", FUNCTION_POINTER(command_next), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "previous", FUNCTION_POINTER(command_previous), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "pause", FUNCTION_POINTER(command_pause), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "play", FUNCTION_POINTER(command_play), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "playid", FUNCTION_POINTER(command_playid), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "stop", FUNCTION_POINTER(command_stop), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "seek", FUNCTION_POINTER(command_seek), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "seekid", FUNCTION_POINTER(command_seekid), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "seekcur", FUNCTION_POINTER(command_seekcur), LKT_COMMAND_SIMPLE); - - cmd_trie_insert(cmd_trie_root, "__insert", FUNCTION_POINTER(command_add_5), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "add", FUNCTION_POINTER(command_add_1), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "searchadd", FUNCTION_POINTER(command_add_1), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "findadd", FUNCTION_POINTER(command_add_1), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "addid", FUNCTION_POINTER(command_addid), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "delete", FUNCTION_POINTER(command_del), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "deleteid", FUNCTION_POINTER(command_delid), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "clear", FUNCTION_POINTER(command_clear), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "crop", FUNCTION_POINTER(command_crop), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "move", FUNCTION_POINTER(command_move), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "shuffle", FUNCTION_POINTER(command_shuffle), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "swap", FUNCTION_POINTER(command_swap), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "swapid", FUNCTION_POINTER(command_swapid), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "__flat", FUNCTION_POINTER(command_flat), LKT_COMMAND_SIMPLE); - - cmd_trie_insert(cmd_trie_root, "playlistid", FUNCTION_POINTER(command_queue_listid), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "playlist", FUNCTION_POINTER(command_queue_list), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "playlistinfo", FUNCTION_POINTER(command_queue_list), LKT_COMMAND_SIMPLE); - - cmd_trie_insert(cmd_trie_root, "playlistclear", FUNCTION_POINTER(command_plt_clear), LKT_COMMAND_ANON); - cmd_trie_insert(cmd_trie_root, "rename", FUNCTION_POINTER(command_plt_rename), LKT_COMMAND_ANON); - cmd_trie_insert(cmd_trie_root, "playlistdelete", FUNCTION_POINTER(command_plt_remove), LKT_COMMAND_ANON); - cmd_trie_insert(cmd_trie_root, "rm", FUNCTION_POINTER(command_plt_remove), LKT_COMMAND_ANON); - cmd_trie_insert(cmd_trie_root, "playlistadd", FUNCTION_POINTER(command_plt_add), LKT_COMMAND_ANON); - cmd_trie_insert(cmd_trie_root, "save", FUNCTION_POINTER(command_plt_export), LKT_COMMAND_ANON); - cmd_trie_insert(cmd_trie_root, "__plt_import", FUNCTION_POINTER(command_plt_import), LKT_COMMAND_ANON); - cmd_trie_insert(cmd_trie_root, "__dump", FUNCTION_POINTER(command_dump), LKT_COMMAND_ANON); - cmd_trie_insert(cmd_trie_root, "listplaylists", FUNCTION_POINTER(command_plt_list), LKT_COMMAND_CONTINUATION); - cmd_trie_insert(cmd_trie_root, "listplaylist", FUNCTION_POINTER(command_plt_ctx), LKT_COMMAND_CONTINUATION); - cmd_trie_insert(cmd_trie_root, "sticker", FUNCTION_POINTER(command_sticker_handle), LKT_COMMAND_SIMPLE); - - /* Commands that requires authentification. */ - cmd_trie_insert(cmd_trie_root, "password", FUNCTION_POINTER(command_password), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "__adduser", FUNCTION_POINTER(command_user_add), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "__restart", FUNCTION_POINTER(command_restart), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "kill", FUNCTION_POINTER(command_kill), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "__import", FUNCTION_POINTER(command_import), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "__rescan", FUNCTION_POINTER(command_rescan_true), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "update", FUNCTION_POINTER(command_update), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "__dry_update", FUNCTION_POINTER(command_dry_update), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "rescan", FUNCTION_POINTER(command_rescan_false), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "config", FUNCTION_POINTER(command_config), LKT_COMMAND_SIMPLE); - - /* Playback next/prev control commands. */ - cmd_trie_insert(cmd_trie_root, "random", FUNCTION_POINTER(command_set_playback_option_random), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "repeat", FUNCTION_POINTER(command_set_playback_option_repeat), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "setvol", FUNCTION_POINTER(command_set_playback_option_volume), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "single", FUNCTION_POINTER(command_set_playback_option_single), LKT_COMMAND_SIMPLE); - cmd_trie_insert(cmd_trie_root, "consume", FUNCTION_POINTER(command_set_playback_option_consume), LKT_COMMAND_SIMPLE); - // clang-format on +#define mpd_command(str_name, c_func, command_type) \ + cmd_trie_insert(cmd_trie_root, str_name, FUNCTION_POINTER(c_func), LKT_COMMAND_##command_type); +#include "lektor/internal/commands.def" +#undef mpd_command cmd_trie_print(cmd_trie_root); }