00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef VLC_KEYS_H
00025 #define VLC_KEYS_H 1
00026
00027 #define KEY_MODIFIER 0xFF000000
00028 #define KEY_MODIFIER_ALT 0x01000000
00029 #define KEY_MODIFIER_SHIFT 0x02000000
00030 #define KEY_MODIFIER_CTRL 0x04000000
00031 #define KEY_MODIFIER_META 0x08000000
00032 #define KEY_MODIFIER_COMMAND 0x10000000
00033
00034 #define KEY_SPECIAL 0x00FF0000
00035 #define KEY_LEFT 0x00010000
00036 #define KEY_RIGHT 0x00020000
00037 #define KEY_UP 0x00030000
00038 #define KEY_DOWN 0x00040000
00039 #define KEY_SPACE 0x00050000
00040 #define KEY_ENTER 0x00060000
00041 #define KEY_F1 0x00070000
00042 #define KEY_F2 0x00080000
00043 #define KEY_F3 0x00090000
00044 #define KEY_F4 0x000A0000
00045 #define KEY_F5 0x000B0000
00046 #define KEY_F6 0x000C0000
00047 #define KEY_F7 0x000D0000
00048 #define KEY_F8 0x000E0000
00049 #define KEY_F9 0x000F0000
00050 #define KEY_F10 0x00100000
00051 #define KEY_F11 0x00110000
00052 #define KEY_F12 0x00120000
00053 #define KEY_HOME 0x00130000
00054 #define KEY_END 0x00140000
00055 #define KEY_INSERT 0x00150000
00056 #define KEY_DELETE 0x00160000
00057 #define KEY_MENU 0x00170000
00058 #define KEY_ESC 0x00180000
00059 #define KEY_PAGEUP 0x00190000
00060 #define KEY_PAGEDOWN 0x001A0000
00061 #define KEY_TAB 0x001B0000
00062 #define KEY_BACKSPACE 0x001C0000
00063 #define KEY_MOUSEWHEELUP 0x001D0000
00064 #define KEY_MOUSEWHEELDOWN 0x001E0000
00065 #define KEY_MOUSEWHEELLEFT 0x001F0000
00066 #define KEY_MOUSEWHEELRIGHT 0x00200000
00067
00068
00069
00070
00071 #define KEY_BROWSER_BACK 0x001F0000
00072 #define KEY_BROWSER_FORWARD 0x00200000
00073 #define KEY_BROWSER_REFRESH 0x00210000
00074 #define KEY_BROWSER_STOP 0x00220000
00075 #define KEY_BROWSER_SEARCH 0x00230000
00076 #define KEY_BROWSER_FAVORITES 0x00240000
00077 #define KEY_BROWSER_HOME 0x00250000
00078 #define KEY_VOLUME_MUTE 0x00260000
00079 #define KEY_VOLUME_DOWN 0x00270000
00080 #define KEY_VOLUME_UP 0x00280000
00081 #define KEY_MEDIA_NEXT_TRACK 0x00290000
00082 #define KEY_MEDIA_PREV_TRACK 0x002a0000
00083 #define KEY_MEDIA_STOP 0x002b0000
00084 #define KEY_MEDIA_PLAY_PAUSE 0x002c0000
00085
00086 #define KEY_ASCII 0x0000007F
00087 #define KEY_UNSET 0
00088
00089 typedef struct key_descriptor_s
00090 {
00091 const char *psz_key_string;
00092 int i_key_code;
00093 } key_descriptor_t;
00094
00095 #define ADD_KEY(a) { a, *a }
00096
00097 static const struct key_descriptor_s vlc_modifiers[] =
00098 {
00099 { "Alt", KEY_MODIFIER_ALT },
00100 { "Shift", KEY_MODIFIER_SHIFT },
00101 { "Ctrl", KEY_MODIFIER_CTRL },
00102 { "Meta", KEY_MODIFIER_META },
00103 { "Command", KEY_MODIFIER_COMMAND }
00104 };
00105
00106 static const struct key_descriptor_s vlc_keys[] =
00107 {
00108 { "Unset", KEY_UNSET },
00109 { "Left", KEY_LEFT },
00110 { "Right", KEY_RIGHT },
00111 { "Up", KEY_UP },
00112 { "Down", KEY_DOWN },
00113 { "Space", KEY_SPACE },
00114 { "Enter", KEY_ENTER },
00115 { "F1", KEY_F1 },
00116 { "F2", KEY_F2 },
00117 { "F3", KEY_F3 },
00118 { "F4", KEY_F4 },
00119 { "F5", KEY_F5 },
00120 { "F6", KEY_F6 },
00121 { "F7", KEY_F7 },
00122 { "F8", KEY_F8 },
00123 { "F9", KEY_F9 },
00124 { "F10", KEY_F10 },
00125 { "F11", KEY_F11 },
00126 { "F12", KEY_F12 },
00127 { "Home", KEY_HOME },
00128 { "End", KEY_END },
00129 { "Insert", KEY_INSERT },
00130 { "Delete", KEY_DELETE },
00131 { "Menu", KEY_MENU },
00132 { "Esc", KEY_ESC },
00133 { "Page Up", KEY_PAGEUP },
00134 { "Page Down", KEY_PAGEDOWN },
00135 { "Tab", KEY_TAB },
00136 { "Backspace", KEY_BACKSPACE },
00137 { "Mouse Wheel Up", KEY_MOUSEWHEELUP },
00138 { "Mouse Wheel Down", KEY_MOUSEWHEELDOWN },
00139 { "0", '0' },
00140 { "1", '1' },
00141 { "2", '2' },
00142 { "3", '3' },
00143 { "4", '4' },
00144 { "5", '5' },
00145 { "6", '6' },
00146 { "7", '7' },
00147 { "8", '8' },
00148 { "9", '9' },
00149 { "a", 'a' },
00150 { "b", 'b' },
00151 { "c", 'c' },
00152 { "d", 'd' },
00153 { "e", 'e' },
00154 { "f", 'f' },
00155 { "g", 'g' },
00156 { "h", 'h' },
00157 { "i", 'i' },
00158 { "j", 'j' },
00159 { "k", 'k' },
00160 { "l", 'l' },
00161 { "m", 'm' },
00162 { "n", 'n' },
00163 { "o", 'o' },
00164 { "p", 'p' },
00165 { "q", 'q' },
00166 { "r", 'r' },
00167 { "s", 's' },
00168 { "t", 't' },
00169 { "u", 'u' },
00170 { "v", 'v' },
00171 { "w", 'w' },
00172 { "x", 'x' },
00173 { "y", 'y' },
00174 { "z", 'z' },
00175 { "+", '+' },
00176 { "=", '=' },
00177 { "-", '-' },
00178 { ",", ',' },
00179 { ".", '.' },
00180 { "<", '<' },
00181 { ">", '>' },
00182 { "`", '`' },
00183 { "/", '/' },
00184 { ";", ';' },
00185 { "'", '\'' },
00186 { "\\", '\\' },
00187 { "[", '[' },
00188 { "]", ']' },
00189 { "*", '*' },
00190 { "Browser Back", KEY_BROWSER_BACK },
00191 { "Browser Forward", KEY_BROWSER_FORWARD },
00192 { "Browser Refresh", KEY_BROWSER_REFRESH },
00193 { "Browser Stop", KEY_BROWSER_STOP },
00194 { "Browser Search", KEY_BROWSER_SEARCH },
00195 { "Browser Favorites", KEY_BROWSER_FAVORITES },
00196 { "Browser Home", KEY_BROWSER_HOME },
00197 { "Volume Mute", KEY_VOLUME_MUTE },
00198 { "Volume Down", KEY_VOLUME_DOWN },
00199 { "Volume Up", KEY_VOLUME_UP },
00200 { "Media Next Track", KEY_MEDIA_NEXT_TRACK },
00201 { "Media Prev Track", KEY_MEDIA_PREV_TRACK },
00202 { "Media Stop", KEY_MEDIA_STOP },
00203 { "Media Play Pause", KEY_MEDIA_PLAY_PAUSE }
00204 };
00205
00206 static inline const char *KeyToString( int i_key )
00207 {
00208 unsigned int i = 0;
00209 for ( i = 0; i < sizeof(vlc_keys) / sizeof(key_descriptor_t); i++ )
00210 {
00211 if ( vlc_keys[i].i_key_code == i_key )
00212 {
00213 return vlc_keys[i].psz_key_string;
00214 }
00215 }
00216 return NULL;
00217 }
00218
00219 static inline int StringToKey( char *psz_key )
00220 {
00221 unsigned int i = 0;
00222 for ( i = 0; i < sizeof(vlc_keys) / sizeof(key_descriptor_t); i++ )
00223 {
00224 if ( !strcmp( vlc_keys[i].psz_key_string, psz_key ))
00225 {
00226 return vlc_keys[i].i_key_code;
00227 }
00228 }
00229 return 0;
00230 }
00231
00232 typedef enum vlc_key {
00233 ACTIONID_QUIT = 1,
00234 ACTIONID_PLAY_PAUSE,
00235 ACTIONID_PLAY,
00236 ACTIONID_PAUSE,
00237 ACTIONID_STOP,
00238 ACTIONID_PREV,
00239 ACTIONID_NEXT,
00240 ACTIONID_SLOWER,
00241 ACTIONID_FASTER,
00242 ACTIONID_TOGGLE_FULLSCREEN,
00243 ACTIONID_VOL_UP,
00244 ACTIONID_VOL_DOWN,
00245 ACTIONID_NAV_ACTIVATE,
00246 ACTIONID_NAV_UP,
00247 ACTIONID_NAV_DOWN,
00248 ACTIONID_NAV_LEFT,
00249 ACTIONID_NAV_RIGHT,
00250 ACTIONID_JUMP_BACKWARD_EXTRASHORT,
00251 ACTIONID_JUMP_FORWARD_EXTRASHORT,
00252 ACTIONID_JUMP_BACKWARD_SHORT,
00253 ACTIONID_JUMP_FORWARD_SHORT,
00254 ACTIONID_JUMP_BACKWARD_MEDIUM,
00255 ACTIONID_JUMP_FORWARD_MEDIUM,
00256 ACTIONID_JUMP_BACKWARD_LONG,
00257 ACTIONID_JUMP_FORWARD_LONG,
00258 ACTIONID_POSITION,
00259 ACTIONID_VOL_MUTE,
00260
00261 ACTIONID_SET_BOOKMARK1,
00262 ACTIONID_SET_BOOKMARK2,
00263 ACTIONID_SET_BOOKMARK3,
00264 ACTIONID_SET_BOOKMARK4,
00265 ACTIONID_SET_BOOKMARK5,
00266 ACTIONID_SET_BOOKMARK6,
00267 ACTIONID_SET_BOOKMARK7,
00268 ACTIONID_SET_BOOKMARK8,
00269 ACTIONID_SET_BOOKMARK9,
00270 ACTIONID_SET_BOOKMARK10,
00271 ACTIONID_PLAY_BOOKMARK1,
00272 ACTIONID_PLAY_BOOKMARK2,
00273 ACTIONID_PLAY_BOOKMARK3,
00274 ACTIONID_PLAY_BOOKMARK4,
00275 ACTIONID_PLAY_BOOKMARK5,
00276 ACTIONID_PLAY_BOOKMARK6,
00277 ACTIONID_PLAY_BOOKMARK7,
00278 ACTIONID_PLAY_BOOKMARK8,
00279 ACTIONID_PLAY_BOOKMARK9,
00280 ACTIONID_PLAY_BOOKMARK10,
00281
00282 ACTIONID_SUBDELAY_UP,
00283 ACTIONID_SUBDELAY_DOWN,
00284 ACTIONID_HISTORY_BACK,
00285 ACTIONID_HISTORY_FORWARD,
00286 ACTIONID_AUDIO_TRACK,
00287 ACTIONID_SUBTITLE_TRACK,
00288 ACTIONID_CUBESPEED_UP,
00289 ACTIONID_CUBESPEED_DOWN,
00290 ACTIONID_INTF_SHOW,
00291 ACTIONID_INTF_HIDE,
00292
00293 ACTIONID_TITLE_PREV,
00294 ACTIONID_TITLE_NEXT,
00295 ACTIONID_CHAPTER_PREV,
00296 ACTIONID_CHAPTER_NEXT,
00297
00298 ACTIONID_AUDIODELAY_UP,
00299 ACTIONID_AUDIODELAY_DOWN,
00300 ACTIONID_SNAPSHOT,
00301 ACTIONID_RECORD,
00302 ACTIONID_DISC_MENU,
00303 ACTIONID_ASPECT_RATIO,
00304 ACTIONID_CROP,
00305 ACTIONID_DEINTERLACE,
00306 ACTIONID_ZOOM,
00307 ACTIONID_UNZOOM,
00308 ACTIONID_CROP_TOP,
00309 ACTIONID_UNCROP_TOP,
00310 ACTIONID_CROP_LEFT,
00311 ACTIONID_UNCROP_LEFT,
00312 ACTIONID_CROP_BOTTOM,
00313 ACTIONID_UNCROP_BOTTOM,
00314 ACTIONID_CROP_RIGHT,
00315 ACTIONID_UNCROP_RIGHT,
00316 ACTIONID_DUMP,
00317 ACTIONID_RANDOM,
00318 ACTIONID_LOOP,
00319 ACTIONID_WALLPAPER,
00320 ACTIONID_LEAVE_FULLSCREEN,
00321 ACTIONID_MENU_ON,
00322 ACTIONID_MENU_OFF,
00323 ACTIONID_MENU_RIGHT,
00324 ACTIONID_MENU_LEFT,
00325 ACTIONID_MENU_UP,
00326 ACTIONID_MENU_DOWN,
00327 ACTIONID_MENU_SELECT,
00328
00329 ACTIONID_ZOOM_QUARTER,
00330 ACTIONID_ZOOM_HALF,
00331 ACTIONID_ZOOM_ORIGINAL,
00332 ACTIONID_ZOOM_DOUBLE,
00333
00334 ACTIONID_AUDIODEVICE_CYCLE
00335 } vlc_key_t;
00336 #endif