/usr/include/allegro/keyboard.h is in liballegro4-dev 2:4.4.2-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 | /* ______ ___ ___
* /\ _ \ /\_ \ /\_ \
* \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___
* \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\
* \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \
* \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/
* \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/
* /\____/
* \_/__/
*
* Keyboard routines.
*
* By Shawn Hargreaves.
*
* See readme.txt for copyright information.
*/
#ifndef ALLEGRO_KEYBOARD_H
#define ALLEGRO_KEYBOARD_H
#include "base.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct KEYBOARD_DRIVER
{
int id;
AL_CONST char *name;
AL_CONST char *desc;
AL_CONST char *ascii_name;
int autorepeat;
AL_METHOD(int, init, (void));
AL_METHOD(void, exit, (void));
AL_METHOD(void, poll, (void));
AL_METHOD(void, set_leds, (int leds));
AL_METHOD(void, set_rate, (int delay, int rate));
AL_METHOD(void, wait_for_input, (void));
AL_METHOD(void, stop_waiting_for_input, (void));
AL_METHOD(int, scancode_to_ascii, (int scancode));
AL_METHOD(AL_CONST char *, scancode_to_name, (int scancode));
} KEYBOARD_DRIVER;
AL_VAR(KEYBOARD_DRIVER *, keyboard_driver);
AL_ARRAY(_DRIVER_INFO, _keyboard_driver_list);
AL_FUNC(int, install_keyboard, (void));
AL_FUNC(void, remove_keyboard, (void));
AL_FUNC(int, poll_keyboard, (void));
AL_FUNC(int, keyboard_needs_poll, (void));
AL_FUNCPTR(int, keyboard_callback, (int key));
AL_FUNCPTR(int, keyboard_ucallback, (int key, int *scancode));
AL_FUNCPTR(void, keyboard_lowlevel_callback, (int scancode));
AL_FUNC(void, install_keyboard_hooks, (AL_METHOD(int, keypressed, (void)), AL_METHOD(int, readkey, (void))));
AL_ARRAY(volatile char, key);
AL_VAR(volatile int, key_shifts);
AL_VAR(int, three_finger_flag);
AL_VAR(int, key_led_flag);
AL_FUNC(int, keypressed, (void));
AL_FUNC(int, readkey, (void));
AL_FUNC(int, ureadkey, (int *scancode));
AL_FUNC(void, simulate_keypress, (int keycode));
AL_FUNC(void, simulate_ukeypress, (int keycode, int scancode));
AL_FUNC(void, clear_keybuf, (void));
AL_FUNC(void, set_leds, (int leds));
AL_FUNC(void, set_keyboard_rate, (int delay, int repeat));
AL_FUNC(int, scancode_to_ascii, (int scancode));
AL_FUNC(AL_CONST char *, scancode_to_name, (int scancode));
/* The KEY_ macros are no longer #defined directly to avoid conflicting with
* linux (which has its own KEY_ constants). "__allegro_"-prefixed constants
* are used by the Allegro-Linux keyboard driver, but everyone else should
* continue to use the KEY_ constants.
*/
enum {
__allegro_KB_SHIFT_FLAG = 0x0001,
__allegro_KB_CTRL_FLAG = 0x0002,
__allegro_KB_ALT_FLAG = 0x0004,
__allegro_KB_LWIN_FLAG = 0x0008,
__allegro_KB_RWIN_FLAG = 0x0010,
__allegro_KB_MENU_FLAG = 0x0020,
__allegro_KB_COMMAND_FLAG = 0x0040,
__allegro_KB_SCROLOCK_FLAG = 0x0100,
__allegro_KB_NUMLOCK_FLAG = 0x0200,
__allegro_KB_CAPSLOCK_FLAG = 0x0400,
__allegro_KB_INALTSEQ_FLAG = 0x0800,
__allegro_KB_ACCENT1_FLAG = 0x1000,
__allegro_KB_ACCENT2_FLAG = 0x2000,
__allegro_KB_ACCENT3_FLAG = 0x4000,
__allegro_KB_ACCENT4_FLAG = 0x8000
};
enum {
__allegro_KEY_A = 1,
__allegro_KEY_B = 2,
__allegro_KEY_C = 3,
__allegro_KEY_D = 4,
__allegro_KEY_E = 5,
__allegro_KEY_F = 6,
__allegro_KEY_G = 7,
__allegro_KEY_H = 8,
__allegro_KEY_I = 9,
__allegro_KEY_J = 10,
__allegro_KEY_K = 11,
__allegro_KEY_L = 12,
__allegro_KEY_M = 13,
__allegro_KEY_N = 14,
__allegro_KEY_O = 15,
__allegro_KEY_P = 16,
__allegro_KEY_Q = 17,
__allegro_KEY_R = 18,
__allegro_KEY_S = 19,
__allegro_KEY_T = 20,
__allegro_KEY_U = 21,
__allegro_KEY_V = 22,
__allegro_KEY_W = 23,
__allegro_KEY_X = 24,
__allegro_KEY_Y = 25,
__allegro_KEY_Z = 26,
__allegro_KEY_0 = 27,
__allegro_KEY_1 = 28,
__allegro_KEY_2 = 29,
__allegro_KEY_3 = 30,
__allegro_KEY_4 = 31,
__allegro_KEY_5 = 32,
__allegro_KEY_6 = 33,
__allegro_KEY_7 = 34,
__allegro_KEY_8 = 35,
__allegro_KEY_9 = 36,
__allegro_KEY_0_PAD = 37,
__allegro_KEY_1_PAD = 38,
__allegro_KEY_2_PAD = 39,
__allegro_KEY_3_PAD = 40,
__allegro_KEY_4_PAD = 41,
__allegro_KEY_5_PAD = 42,
__allegro_KEY_6_PAD = 43,
__allegro_KEY_7_PAD = 44,
__allegro_KEY_8_PAD = 45,
__allegro_KEY_9_PAD = 46,
__allegro_KEY_F1 = 47,
__allegro_KEY_F2 = 48,
__allegro_KEY_F3 = 49,
__allegro_KEY_F4 = 50,
__allegro_KEY_F5 = 51,
__allegro_KEY_F6 = 52,
__allegro_KEY_F7 = 53,
__allegro_KEY_F8 = 54,
__allegro_KEY_F9 = 55,
__allegro_KEY_F10 = 56,
__allegro_KEY_F11 = 57,
__allegro_KEY_F12 = 58,
__allegro_KEY_ESC = 59,
__allegro_KEY_TILDE = 60,
__allegro_KEY_MINUS = 61,
__allegro_KEY_EQUALS = 62,
__allegro_KEY_BACKSPACE = 63,
__allegro_KEY_TAB = 64,
__allegro_KEY_OPENBRACE = 65,
__allegro_KEY_CLOSEBRACE = 66,
__allegro_KEY_ENTER = 67,
__allegro_KEY_COLON = 68,
__allegro_KEY_QUOTE = 69,
__allegro_KEY_BACKSLASH = 70,
__allegro_KEY_BACKSLASH2 = 71,
__allegro_KEY_COMMA = 72,
__allegro_KEY_STOP = 73,
__allegro_KEY_SLASH = 74,
__allegro_KEY_SPACE = 75,
__allegro_KEY_INSERT = 76,
__allegro_KEY_DEL = 77,
__allegro_KEY_HOME = 78,
__allegro_KEY_END = 79,
__allegro_KEY_PGUP = 80,
__allegro_KEY_PGDN = 81,
__allegro_KEY_LEFT = 82,
__allegro_KEY_RIGHT = 83,
__allegro_KEY_UP = 84,
__allegro_KEY_DOWN = 85,
__allegro_KEY_SLASH_PAD = 86,
__allegro_KEY_ASTERISK = 87,
__allegro_KEY_MINUS_PAD = 88,
__allegro_KEY_PLUS_PAD = 89,
__allegro_KEY_DEL_PAD = 90,
__allegro_KEY_ENTER_PAD = 91,
__allegro_KEY_PRTSCR = 92,
__allegro_KEY_PAUSE = 93,
__allegro_KEY_ABNT_C1 = 94,
__allegro_KEY_YEN = 95,
__allegro_KEY_KANA = 96,
__allegro_KEY_CONVERT = 97,
__allegro_KEY_NOCONVERT = 98,
__allegro_KEY_AT = 99,
__allegro_KEY_CIRCUMFLEX = 100,
__allegro_KEY_COLON2 = 101,
__allegro_KEY_KANJI = 102,
__allegro_KEY_EQUALS_PAD = 103, /* MacOS X */
__allegro_KEY_BACKQUOTE = 104, /* MacOS X */
__allegro_KEY_SEMICOLON = 105, /* MacOS X */
__allegro_KEY_COMMAND = 106, /* MacOS X */
__allegro_KEY_UNKNOWN1 = 107,
__allegro_KEY_UNKNOWN2 = 108,
__allegro_KEY_UNKNOWN3 = 109,
__allegro_KEY_UNKNOWN4 = 110,
__allegro_KEY_UNKNOWN5 = 111,
__allegro_KEY_UNKNOWN6 = 112,
__allegro_KEY_UNKNOWN7 = 113,
__allegro_KEY_UNKNOWN8 = 114,
__allegro_KEY_MODIFIERS = 115,
__allegro_KEY_LSHIFT = 115,
__allegro_KEY_RSHIFT = 116,
__allegro_KEY_LCONTROL = 117,
__allegro_KEY_RCONTROL = 118,
__allegro_KEY_ALT = 119,
__allegro_KEY_ALTGR = 120,
__allegro_KEY_LWIN = 121,
__allegro_KEY_RWIN = 122,
__allegro_KEY_MENU = 123,
__allegro_KEY_SCRLOCK = 124,
__allegro_KEY_NUMLOCK = 125,
__allegro_KEY_CAPSLOCK = 126,
__allegro_KEY_MAX = 127
};
#ifndef ALLEGRO_NO_KEY_DEFINES
#define KB_SHIFT_FLAG __allegro_KB_SHIFT_FLAG
#define KB_CTRL_FLAG __allegro_KB_CTRL_FLAG
#define KB_ALT_FLAG __allegro_KB_ALT_FLAG
#define KB_LWIN_FLAG __allegro_KB_LWIN_FLAG
#define KB_RWIN_FLAG __allegro_KB_RWIN_FLAG
#define KB_MENU_FLAG __allegro_KB_MENU_FLAG
#define KB_COMMAND_FLAG __allegro_KB_COMMAND_FLAG
#define KB_SCROLOCK_FLAG __allegro_KB_SCROLOCK_FLAG
#define KB_NUMLOCK_FLAG __allegro_KB_NUMLOCK_FLAG
#define KB_CAPSLOCK_FLAG __allegro_KB_CAPSLOCK_FLAG
#define KB_INALTSEQ_FLAG __allegro_KB_INALTSEQ_FLAG
#define KB_ACCENT1_FLAG __allegro_KB_ACCENT1_FLAG
#define KB_ACCENT2_FLAG __allegro_KB_ACCENT2_FLAG
#define KB_ACCENT3_FLAG __allegro_KB_ACCENT3_FLAG
#define KB_ACCENT4_FLAG __allegro_KB_ACCENT4_FLAG
#define KEY_A __allegro_KEY_A
#define KEY_B __allegro_KEY_B
#define KEY_C __allegro_KEY_C
#define KEY_D __allegro_KEY_D
#define KEY_E __allegro_KEY_E
#define KEY_F __allegro_KEY_F
#define KEY_G __allegro_KEY_G
#define KEY_H __allegro_KEY_H
#define KEY_I __allegro_KEY_I
#define KEY_J __allegro_KEY_J
#define KEY_K __allegro_KEY_K
#define KEY_L __allegro_KEY_L
#define KEY_M __allegro_KEY_M
#define KEY_N __allegro_KEY_N
#define KEY_O __allegro_KEY_O
#define KEY_P __allegro_KEY_P
#define KEY_Q __allegro_KEY_Q
#define KEY_R __allegro_KEY_R
#define KEY_S __allegro_KEY_S
#define KEY_T __allegro_KEY_T
#define KEY_U __allegro_KEY_U
#define KEY_V __allegro_KEY_V
#define KEY_W __allegro_KEY_W
#define KEY_X __allegro_KEY_X
#define KEY_Y __allegro_KEY_Y
#define KEY_Z __allegro_KEY_Z
#define KEY_0 __allegro_KEY_0
#define KEY_1 __allegro_KEY_1
#define KEY_2 __allegro_KEY_2
#define KEY_3 __allegro_KEY_3
#define KEY_4 __allegro_KEY_4
#define KEY_5 __allegro_KEY_5
#define KEY_6 __allegro_KEY_6
#define KEY_7 __allegro_KEY_7
#define KEY_8 __allegro_KEY_8
#define KEY_9 __allegro_KEY_9
#define KEY_0_PAD __allegro_KEY_0_PAD
#define KEY_1_PAD __allegro_KEY_1_PAD
#define KEY_2_PAD __allegro_KEY_2_PAD
#define KEY_3_PAD __allegro_KEY_3_PAD
#define KEY_4_PAD __allegro_KEY_4_PAD
#define KEY_5_PAD __allegro_KEY_5_PAD
#define KEY_6_PAD __allegro_KEY_6_PAD
#define KEY_7_PAD __allegro_KEY_7_PAD
#define KEY_8_PAD __allegro_KEY_8_PAD
#define KEY_9_PAD __allegro_KEY_9_PAD
#define KEY_F1 __allegro_KEY_F1
#define KEY_F2 __allegro_KEY_F2
#define KEY_F3 __allegro_KEY_F3
#define KEY_F4 __allegro_KEY_F4
#define KEY_F5 __allegro_KEY_F5
#define KEY_F6 __allegro_KEY_F6
#define KEY_F7 __allegro_KEY_F7
#define KEY_F8 __allegro_KEY_F8
#define KEY_F9 __allegro_KEY_F9
#define KEY_F10 __allegro_KEY_F10
#define KEY_F11 __allegro_KEY_F11
#define KEY_F12 __allegro_KEY_F12
#define KEY_ESC __allegro_KEY_ESC
#define KEY_TILDE __allegro_KEY_TILDE
#define KEY_MINUS __allegro_KEY_MINUS
#define KEY_EQUALS __allegro_KEY_EQUALS
#define KEY_BACKSPACE __allegro_KEY_BACKSPACE
#define KEY_TAB __allegro_KEY_TAB
#define KEY_OPENBRACE __allegro_KEY_OPENBRACE
#define KEY_CLOSEBRACE __allegro_KEY_CLOSEBRACE
#define KEY_ENTER __allegro_KEY_ENTER
#define KEY_COLON __allegro_KEY_COLON
#define KEY_QUOTE __allegro_KEY_QUOTE
#define KEY_BACKSLASH __allegro_KEY_BACKSLASH
#define KEY_BACKSLASH2 __allegro_KEY_BACKSLASH2
#define KEY_COMMA __allegro_KEY_COMMA
#define KEY_STOP __allegro_KEY_STOP
#define KEY_SLASH __allegro_KEY_SLASH
#define KEY_SPACE __allegro_KEY_SPACE
#define KEY_INSERT __allegro_KEY_INSERT
#define KEY_DEL __allegro_KEY_DEL
#define KEY_HOME __allegro_KEY_HOME
#define KEY_END __allegro_KEY_END
#define KEY_PGUP __allegro_KEY_PGUP
#define KEY_PGDN __allegro_KEY_PGDN
#define KEY_LEFT __allegro_KEY_LEFT
#define KEY_RIGHT __allegro_KEY_RIGHT
#define KEY_UP __allegro_KEY_UP
#define KEY_DOWN __allegro_KEY_DOWN
#define KEY_SLASH_PAD __allegro_KEY_SLASH_PAD
#define KEY_ASTERISK __allegro_KEY_ASTERISK
#define KEY_MINUS_PAD __allegro_KEY_MINUS_PAD
#define KEY_PLUS_PAD __allegro_KEY_PLUS_PAD
#define KEY_DEL_PAD __allegro_KEY_DEL_PAD
#define KEY_ENTER_PAD __allegro_KEY_ENTER_PAD
#define KEY_PRTSCR __allegro_KEY_PRTSCR
#define KEY_PAUSE __allegro_KEY_PAUSE
#define KEY_ABNT_C1 __allegro_KEY_ABNT_C1
#define KEY_YEN __allegro_KEY_YEN
#define KEY_KANA __allegro_KEY_KANA
#define KEY_CONVERT __allegro_KEY_CONVERT
#define KEY_NOCONVERT __allegro_KEY_NOCONVERT
#define KEY_AT __allegro_KEY_AT
#define KEY_CIRCUMFLEX __allegro_KEY_CIRCUMFLEX
#define KEY_COLON2 __allegro_KEY_COLON2
#define KEY_KANJI __allegro_KEY_KANJI
#define KEY_EQUALS_PAD __allegro_KEY_EQUALS_PAD
#define KEY_BACKQUOTE __allegro_KEY_BACKQUOTE
#define KEY_SEMICOLON __allegro_KEY_SEMICOLON
#define KEY_COMMAND __allegro_KEY_COMMAND
#define KEY_UNKNOWN1 __allegro_KEY_UNKNOWN1
#define KEY_UNKNOWN2 __allegro_KEY_UNKNOWN2
#define KEY_UNKNOWN3 __allegro_KEY_UNKNOWN3
#define KEY_UNKNOWN4 __allegro_KEY_UNKNOWN4
#define KEY_UNKNOWN5 __allegro_KEY_UNKNOWN5
#define KEY_UNKNOWN6 __allegro_KEY_UNKNOWN6
#define KEY_UNKNOWN7 __allegro_KEY_UNKNOWN7
#define KEY_UNKNOWN8 __allegro_KEY_UNKNOWN8
#define KEY_MODIFIERS __allegro_KEY_MODIFIERS
#define KEY_LSHIFT __allegro_KEY_LSHIFT
#define KEY_RSHIFT __allegro_KEY_RSHIFT
#define KEY_LCONTROL __allegro_KEY_LCONTROL
#define KEY_RCONTROL __allegro_KEY_RCONTROL
#define KEY_ALT __allegro_KEY_ALT
#define KEY_ALTGR __allegro_KEY_ALTGR
#define KEY_LWIN __allegro_KEY_LWIN
#define KEY_RWIN __allegro_KEY_RWIN
#define KEY_MENU __allegro_KEY_MENU
#define KEY_SCRLOCK __allegro_KEY_SCRLOCK
#define KEY_NUMLOCK __allegro_KEY_NUMLOCK
#define KEY_CAPSLOCK __allegro_KEY_CAPSLOCK
#define KEY_MAX __allegro_KEY_MAX
#endif /* ALLEGRO_NO_KEY_DEFINES */
#ifdef __cplusplus
}
#endif
#endif /* ifndef ALLEGRO_KEYBOARD_H */
|