1 #ifndef KEYS_H
2 #define KEYS_H
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 enum key_cmd
9 {
10 	KEY_CMD_QUIT_CLIENT,
11 	KEY_CMD_GO,
12 	KEY_CMD_MENU_DOWN,
13 	KEY_CMD_MENU_UP,
14 	KEY_CMD_MENU_NPAGE,
15 	KEY_CMD_MENU_PPAGE,
16 	KEY_CMD_MENU_FIRST,
17 	KEY_CMD_MENU_LAST,
18 	KEY_CMD_QUIT,
19 	KEY_CMD_STOP,
20 	KEY_CMD_NEXT,
21 	KEY_CMD_PREVIOUS,
22 	KEY_CMD_PAUSE,
23 	KEY_CMD_TOGGLE_READ_TAGS,
24 	KEY_CMD_TOGGLE_REPEAT,
25 	KEY_CMD_TOGGLE_AUTO_NEXT,
26 	KEY_CMD_TOGGLE_MENU,
27 	KEY_CMD_TOGGLE_LAYOUT,
28 	KEY_CMD_TOGGLE_PERCENT,
29 	KEY_CMD_PLIST_ADD_FILE,
30 	KEY_CMD_PLIST_CLEAR,
31 	KEY_CMD_PLIST_ADD_DIR,
32 	KEY_CMD_PLIST_REMOVE_DEAD_ENTRIES,
33 	KEY_CMD_MIXER_DEC_1,
34 	KEY_CMD_MIXER_INC_1,
35 	KEY_CMD_MIXER_DEC_5,
36 	KEY_CMD_MIXER_INC_5,
37 	KEY_CMD_SEEK_FORWARD,
38 	KEY_CMD_SEEK_BACKWARD,
39 	KEY_CMD_SEEK_FORWARD_5,
40 	KEY_CMD_SEEK_BACKWARD_5,
41 	KEY_CMD_HELP,
42 	KEY_CMD_HIDE_MESSAGE,
43 	KEY_CMD_REFRESH,
44 	KEY_CMD_RELOAD,
45 	KEY_CMD_TOGGLE_SHOW_HIDDEN_FILES,
46 	KEY_CMD_GO_MUSIC_DIR,
47 	KEY_CMD_PLIST_DEL,
48 	KEY_CMD_MENU_SEARCH,
49 	KEY_CMD_PLIST_SAVE,
50 	KEY_CMD_TOGGLE_SHOW_FORMAT,
51 	KEY_CMD_TOGGLE_SHOW_TIME,
52 	KEY_CMD_GO_TO_PLAYING_FILE,
53 	KEY_CMD_GO_DIR,
54 	KEY_CMD_GO_DIR_UP,
55 	KEY_CMD_TOGGLE_SHUFFLE,
56 	KEY_CMD_NEXT_SEARCH,
57 	KEY_CMD_CANCEL,
58 	KEY_CMD_GO_URL,
59 	KEY_CMD_VOLUME_10,
60 	KEY_CMD_VOLUME_20,
61 	KEY_CMD_VOLUME_30,
62 	KEY_CMD_VOLUME_40,
63 	KEY_CMD_VOLUME_50,
64 	KEY_CMD_VOLUME_60,
65 	KEY_CMD_VOLUME_70,
66 	KEY_CMD_VOLUME_80,
67 	KEY_CMD_VOLUME_90,
68 	KEY_CMD_MARK_START,
69 	KEY_CMD_MARK_END,
70  	KEY_CMD_FAST_DIR_1,
71  	KEY_CMD_FAST_DIR_2,
72  	KEY_CMD_FAST_DIR_3,
73  	KEY_CMD_FAST_DIR_4,
74  	KEY_CMD_FAST_DIR_5,
75  	KEY_CMD_FAST_DIR_6,
76  	KEY_CMD_FAST_DIR_7,
77  	KEY_CMD_FAST_DIR_8,
78  	KEY_CMD_FAST_DIR_9,
79  	KEY_CMD_FAST_DIR_10,
80 	KEY_CMD_TOGGLE_MIXER,
81 	KEY_CMD_HISTORY_UP,
82 	KEY_CMD_HISTORY_DOWN,
83 	KEY_CMD_DELETE_START,
84 	KEY_CMD_DELETE_END,
85 	KEY_CMD_PLIST_MOVE_UP,
86 	KEY_CMD_PLIST_MOVE_DOWN,
87 	KEY_CMD_ADD_STREAM,
88 	KEY_CMD_THEME_MENU,
89 	KEY_CMD_EXEC1,
90 	KEY_CMD_EXEC2,
91 	KEY_CMD_EXEC3,
92 	KEY_CMD_EXEC4,
93 	KEY_CMD_EXEC5,
94 	KEY_CMD_EXEC6,
95 	KEY_CMD_EXEC7,
96 	KEY_CMD_EXEC8,
97 	KEY_CMD_EXEC9,
98 	KEY_CMD_EXEC10,
99 	KEY_CMD_TOGGLE_PLAYLIST_FULL_PATHS,
100 	KEY_CMD_TOGGLE_SOFTMIXER,
101 	KEY_CMD_TOGGLE_EQUALIZER,
102 	KEY_CMD_EQUALIZER_REFRESH,
103 	KEY_CMD_EQUALIZER_PREV,
104 	KEY_CMD_EQUALIZER_NEXT,
105 	KEY_CMD_TOGGLE_MAKE_MONO,
106 	KEY_CMD_LYRICS,
107 	KEY_CMD_QUEUE_TOGGLE_FILE,
108 	KEY_CMD_QUEUE_CLEAR,
109 	KEY_CMD_WRONG
110 };
111 
112 /* Key context is the place where the user presses a key. A key can have
113  * different meanings in different places. */
114 enum key_context
115 {
116 	CON_MENU,
117 	CON_ENTRY_SEARCH,
118 	CON_ENTRY
119 };
120 
121 #ifndef KEY_ESCAPE
122 # define KEY_ESCAPE	27
123 #endif
124 
125 #define META_KEY_FLAG	0x80
126 #define CTRL_KEY_CODE	0x1F
127 
128 struct iface_key;
129 enum key_cmd get_key_cmd (const enum key_context context, const struct iface_key *key);
130 void keys_init ();
131 void keys_cleanup ();
132 char **get_keys_help (int *num);
133 bool is_help_still_h ();
134 
135 #ifdef __cplusplus
136 }
137 #endif
138 
139 #endif
140