1 /* 2 * Copyright (c) 2010, 2011 Ryan Flannery <ryan.flannery@gmail.com> 3 * 4 * Permission to use, copy, modify, and distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 #ifndef COMMANDS_H 18 #define COMMANDS_H 19 20 #include "enums.h" 21 #include "paint.h" 22 #include "str2argv.h" 23 #include "vitunes.h" 24 #include "debug.h" 25 #include "keybindings.h" 26 27 #include "compat.h" 28 29 /**************************************************************************** 30 * Toggle-list handling stuff 31 ***************************************************************************/ 32 33 /* command-mode command struct */ 34 typedef struct { 35 char *name; 36 int (*func)(int argc, char **argv); 37 } cmd; 38 39 extern const cmd CommandPath[]; 40 extern const int CommandPathSize; 41 42 /* command-mode command handlers */ 43 int cmd_quit(int argc, char *argv[]); 44 int cmd_write(int argc, char *argv[]); 45 int cmd_mode(int argc, char *argv[]); 46 int cmd_new(int argc, char *argv[]); 47 int cmd_filter(int argc, char *argv[]); 48 int cmd_sort(int argc, char *argv[]); 49 int cmd_display(int argc, char *argv[]); 50 int cmd_color(int argc, char *argv[]); 51 int cmd_set(int argc, char *argv[]); 52 int cmd_reload(int argc, char *argv[]); 53 int cmd_bind(int argc, char *argv[]); 54 int cmd_unbind(int argc, char *argv[]); 55 int cmd_toggle(int argc, char *argv[]); 56 int cmd_playlist(int argc, char *argv[]); 57 58 /* parse a string and execute it as a command */ 59 void cmd_execute(char *cmd); 60 61 62 /**************************************************************************** 63 * Toggle-list handling stuff 64 ***************************************************************************/ 65 66 /* struct for a single toggle list */ 67 typedef struct { 68 int registr; 69 char **commands; 70 size_t size; 71 size_t index; 72 } toggle_list; 73 74 /* the array (and size) of all toggle lists currently loaded */ 75 extern toggle_list **toggleset; 76 extern size_t toggleset_size; 77 78 /* initialize and free the toggleset */ 79 void toggleset_init(); 80 void toggleset_free(); 81 82 toggle_list *toggle_list_create(int registr, int argc, char *argv[]); 83 void toggle_list_add_command(toggle_list *t, char *cmd); 84 void toggle_list_free(toggle_list *t); 85 86 void toggle_add(toggle_list *t); 87 void toggle_remove(int registr); 88 toggle_list* toggle_get(int registr); 89 90 91 /**************************************************************************** 92 * Misc. 93 ***************************************************************************/ 94 95 int user_getstr(const char *prompt, char **response); 96 int user_get_yesno(const char *prompt, int *response); 97 98 void setup_viewing_playlist(playlist *p); 99 100 101 #endif 102