VTB: release CVBuffer after it actually has been rendered
[xbmc.git] / xbmc / input / XBMC_vkeys.h
blob4e3787c283610c6daae09bc2544a7b9998330a7b
1 /*
2 SDL - Simple DirectMedia Layer
3 Copyright (C) 1997-2009 Sam Lantinga
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with XBMC; see the file COPYING. If not, see
17 <http://www.gnu.org/licenses/>.
19 Sam Lantinga
20 slouken@libsdl.org
23 #ifndef XBMC_vkeys_h
24 #define XBMC_vkeys_h
26 // The XBMC_vkey identifies a key that is mapped to an action or function.
27 // The keysym.sym generated by SDL_KEYDOWN is mapped to a vkey and the vkey
28 // is used to lookup an action in the global mapping table.
29 // The vkey values are the ASCII code of the character where this is possible.
30 // Non-printing keypresses get a value in the range 0x80 - 0xFF.
31 // Note that the vkey is a byte value so it cannot be greater than 0xFF.
33 typedef enum {
34 XBMCVK_BACK = 0x08,
35 XBMCVK_TAB = 0x09,
36 XBMCVK_RETURN = 0x0D,
37 XBMCVK_ESCAPE = 0x1B,
39 XBMCVK_SPACE = 0x20,
40 XBMCVK_EXCLAIM = 0x21,
41 XBMCVK_QUOTEDBL = 0x22,
42 XBMCVK_HASH = 0x23,
43 XBMCVK_DOLLAR = 0x24,
44 XBMCVK_PERCENT = 0x25,
45 XBMCVK_AMPERSAND = 0x26,
46 XBMCVK_QUOTE = 0x27,
47 XBMCVK_LEFTPAREN = 0x28,
48 XBMCVK_RIGHTPAREN = 0x29,
49 XBMCVK_ASTERISK = 0x2A,
50 XBMCVK_PLUS = 0x2B,
51 XBMCVK_COMMA = 0x2C,
52 XBMCVK_MINUS = 0x2D,
53 XBMCVK_PERIOD = 0x2E,
54 XBMCVK_SLASH = 0x2F,
56 XBMCVK_0 = 0x30,
57 XBMCVK_1 = 0x31,
58 XBMCVK_2 = 0x32,
59 XBMCVK_3 = 0x33,
60 XBMCVK_4 = 0x34,
61 XBMCVK_5 = 0x35,
62 XBMCVK_6 = 0x36,
63 XBMCVK_7 = 0x37,
64 XBMCVK_8 = 0x38,
65 XBMCVK_9 = 0x39,
67 XBMCVK_COLON = 0x3A,
68 XBMCVK_SEMICOLON = 0x3B,
69 XBMCVK_LESS = 0x3C,
70 XBMCVK_EQUALS = 0x3D,
71 XBMCVK_GREATER = 0x3E,
72 XBMCVK_QUESTION = 0x3F,
73 XBMCVK_AT = 0x40,
75 XBMCVK_A = 0x41,
76 XBMCVK_B = 0x42,
77 XBMCVK_C = 0x43,
78 XBMCVK_D = 0x44,
79 XBMCVK_E = 0x45,
80 XBMCVK_F = 0x46,
81 XBMCVK_G = 0x47,
82 XBMCVK_H = 0x48,
83 XBMCVK_I = 0x49,
84 XBMCVK_J = 0x4A,
85 XBMCVK_K = 0x4B,
86 XBMCVK_L = 0x4C,
87 XBMCVK_M = 0x4D,
88 XBMCVK_N = 0x4E,
89 XBMCVK_O = 0x4F,
90 XBMCVK_P = 0x50,
91 XBMCVK_Q = 0x51,
92 XBMCVK_R = 0x52,
93 XBMCVK_S = 0x53,
94 XBMCVK_T = 0x54,
95 XBMCVK_U = 0x55,
96 XBMCVK_V = 0x56,
97 XBMCVK_W = 0x57,
98 XBMCVK_X = 0x58,
99 XBMCVK_Y = 0x59,
100 XBMCVK_Z = 0x5A,
102 XBMCVK_LEFTBRACKET = 0x5B,
103 XBMCVK_BACKSLASH = 0x5C,
104 XBMCVK_RIGHTBRACKET = 0x5D,
105 XBMCVK_CARET = 0x5E,
106 XBMCVK_UNDERSCORE = 0x5F,
107 XBMCVK_BACKQUOTE = 0x60,
109 // Lowercase letters 0x61 - 0x7a have the same vkey as uppercase, so
110 // use this block for the numpad keys
111 XBMCVK_NUMPADDIVIDE = 0x61,
112 XBMCVK_NUMPADTIMES = 0x62,
113 XBMCVK_NUMPADMINUS = 0x63,
114 XBMCVK_NUMPADPLUS = 0x64,
115 XBMCVK_NUMPADENTER = 0x65,
116 XBMCVK_NUMPADPERIOD = 0x66,
117 XBMCVK_NUMPAD0 = 0x70,
118 XBMCVK_NUMPAD1 = 0x71,
119 XBMCVK_NUMPAD2 = 0x72,
120 XBMCVK_NUMPAD3 = 0x73,
121 XBMCVK_NUMPAD4 = 0x74,
122 XBMCVK_NUMPAD5 = 0x75,
123 XBMCVK_NUMPAD6 = 0x76,
124 XBMCVK_NUMPAD7 = 0x77,
125 XBMCVK_NUMPAD8 = 0x78,
126 XBMCVK_NUMPAD9 = 0x79,
128 XBMCVK_LEFTBRACE = 0x7B,
129 XBMCVK_PIPE = 0x7C,
130 XBMCVK_RIGHTBRACE = 0x7D,
131 XBMCVK_TILDE = 0x7E,
133 // Non-printing characters
135 XBMCVK_UP = 0x80,
136 XBMCVK_DOWN = 0x81,
137 XBMCVK_LEFT = 0x82,
138 XBMCVK_RIGHT = 0x83,
139 XBMCVK_PAGEUP = 0x84,
140 XBMCVK_PAGEDOWN = 0x85,
141 XBMCVK_INSERT = 0x86,
142 XBMCVK_DELETE = 0x87,
143 XBMCVK_HOME = 0x88,
144 XBMCVK_END = 0x89,
146 XBMCVK_F1 = 0x90,
147 XBMCVK_F2 = 0x91,
148 XBMCVK_F3 = 0x92,
149 XBMCVK_F4 = 0x93,
150 XBMCVK_F5 = 0x94,
151 XBMCVK_F6 = 0x95,
152 XBMCVK_F7 = 0x96,
153 XBMCVK_F8 = 0x97,
154 XBMCVK_F9 = 0x98,
155 XBMCVK_F10 = 0x99,
156 XBMCVK_F11 = 0x9A,
157 XBMCVK_F12 = 0x9B,
158 XBMCVK_F13 = 0x9C,
159 XBMCVK_F14 = 0x9D,
160 XBMCVK_F15 = 0x9E,
161 XBMCVK_F16 = 0x9F,
162 XBMCVK_F17 = 0xA0,
163 XBMCVK_F18 = 0xA1,
164 XBMCVK_F19 = 0xA2,
165 XBMCVK_F20 = 0xA3,
166 XBMCVK_F21 = 0xA4,
167 XBMCVK_F22 = 0xA5,
168 XBMCVK_F23 = 0xA6,
169 XBMCVK_F24 = 0xA7,
171 XBMCVK_BROWSER_BACK = 0xB0,
172 XBMCVK_BROWSER_FORWARD = 0xB1,
173 XBMCVK_BROWSER_REFRESH = 0xB2,
174 XBMCVK_BROWSER_STOP = 0xB3,
175 XBMCVK_BROWSER_SEARCH = 0xB4,
176 XBMCVK_BROWSER_FAVORITES = 0xB5,
177 XBMCVK_BROWSER_HOME = 0xB6,
178 XBMCVK_VOLUME_MUTE = 0xB7,
179 XBMCVK_VOLUME_DOWN = 0xB8,
180 XBMCVK_VOLUME_UP = 0xB9,
181 XBMCVK_MEDIA_NEXT_TRACK = 0xBA,
182 XBMCVK_MEDIA_PREV_TRACK = 0xBB,
183 XBMCVK_MEDIA_STOP = 0xBC,
184 XBMCVK_MEDIA_PLAY_PAUSE = 0xBD,
185 XBMCVK_LAUNCH_MAIL = 0xBE,
186 XBMCVK_LAUNCH_MEDIA_SELECT = 0xBF,
187 XBMCVK_LAUNCH_APP1 = 0xC0,
188 XBMCVK_LAUNCH_APP2 = 0xC1,
189 XBMCVK_LAUNCH_FILE_BROWSER = 0xC2,
190 XBMCVK_LAUNCH_MEDIA_CENTER = 0xC3,
191 XBMCVK_MEDIA_REWIND = 0xC4,
192 XBMCVK_MEDIA_FASTFORWARD = 0xC5,
193 XBMCVK_MEDIA_RECORD = 0xC6,
195 XBMCVK_LCONTROL = 0xD0,
196 XBMCVK_RCONTROL = 0xD1,
197 XBMCVK_LSHIFT = 0xD2,
198 XBMCVK_RSHIFT = 0xD3,
199 XBMCVK_LMENU = 0xD4,
200 XBMCVK_RMENU = 0xD5,
201 XBMCVK_LWIN = 0xD6,
202 XBMCVK_RWIN = 0xD7,
203 XBMCVK_MENU = 0xD8,
204 XBMCVK_CAPSLOCK = 0xD9,
205 XBMCVK_NUMLOCK = 0xDA,
207 XBMCVK_PRINTSCREEN = 0xDB,
208 XBMCVK_SCROLLLOCK = 0xDC,
209 XBMCVK_PAUSE = 0XDD,
210 XBMCVK_POWER = 0XDE,
211 XBMCVK_SLEEP = 0XDF,
212 XBMCVK_GUIDE = 0xE0,
213 XBMCVK_SETTINGS = 0xE1,
214 XBMCVK_INFO = 0xE2,
215 XBMCVK_RED = 0xE3,
216 XBMCVK_GREEN = 0xE4,
217 XBMCVK_YELLOW = 0xE5,
218 XBMCVK_BLUE = 0xE6,
219 XBMCVK_ZOOM = 0xE7,
220 XBMCVK_TEXT = 0xE8,
221 XBMCVK_FAVORITES = 0xE9,
222 XBMCVK_HOMEPAGE = 0xEA,
223 XBMCVK_CONFIG = 0xEB,
224 XBMCVK_EPG = 0xEC,
226 XBMCVK_LAST = 0xFF
227 } XBMCVKey;
229 // These should be in winuser.h. Not sure why they have been defined here
230 #ifndef VK_0
231 #define VK_0 '0'
232 #define VK_1 '1'
233 #define VK_2 '2'
234 #define VK_3 '3'
235 #define VK_4 '4'
236 #define VK_5 '5'
237 #define VK_6 '6'
238 #define VK_7 '7'
239 #define VK_8 '8'
240 #define VK_9 '9'
241 #define VK_A 'A'
242 #define VK_B 'B'
243 #define VK_C 'C'
244 #define VK_D 'D'
245 #define VK_E 'E'
246 #define VK_F 'F'
247 #define VK_G 'G'
248 #define VK_H 'H'
249 #define VK_I 'I'
250 #define VK_J 'J'
251 #define VK_K 'K'
252 #define VK_L 'L'
253 #define VK_M 'M'
254 #define VK_N 'N'
255 #define VK_O 'O'
256 #define VK_P 'P'
257 #define VK_Q 'Q'
258 #define VK_R 'R'
259 #define VK_S 'S'
260 #define VK_T 'T'
261 #define VK_U 'U'
262 #define VK_V 'V'
263 #define VK_W 'W'
264 #define VK_X 'X'
265 #define VK_Y 'Y'
266 #define VK_Z 'Z'
267 #endif /* VK_0 */
269 /* These keys haven't been defined, but were experimentally determined */
270 #ifndef VK_SEMICOLON
271 #define VK_SEMICOLON 0xBA
272 #define VK_EQUALS 0xBB
273 #define VK_COMMA 0xBC
274 #define VK_MINUS 0xBD
275 #define VK_PERIOD 0xBE
276 #define VK_SLASH 0xBF
277 #define VK_GRAVE 0xC0
278 #define VK_LBRACKET 0xDB
279 #define VK_BACKSLASH 0xDC
280 #define VK_RBRACKET 0xDD
281 #define VK_APOSTROPHE 0xDE
282 #define VK_BACKTICK 0xDF
283 #define VK_OEM_102 0xE2
284 #endif
286 #endif // XBMC_vkeys_h