/* vi: set sw=4 ts=4: */ /* Keyboard interface for svgalib. */ /* Can be used independently. */ #ifndef VGAKEYBOARD_H #define VGAKEYBOARD_H #ifdef __cplusplus extern "C" { #endif #if ! defined(__SunOS__) /* Solaris keycode is different */ #define SCANCODE_ESCAPE 1 #define SCANCODE_1 2 #define SCANCODE_2 3 #define SCANCODE_3 4 #define SCANCODE_4 5 #define SCANCODE_5 6 #define SCANCODE_6 7 #define SCANCODE_7 8 #define SCANCODE_8 9 #define SCANCODE_9 10 #define SCANCODE_0 11 #define SCANCODE_MINUS 12 #define SCANCODE_EQUAL 13 #define SCANCODE_BACKSPACE 14 #define SCANCODE_TAB 15 #define SCANCODE_Q 16 #define SCANCODE_W 17 #define SCANCODE_E 18 #define SCANCODE_R 19 #define SCANCODE_T 20 #define SCANCODE_Y 21 #define SCANCODE_U 22 #define SCANCODE_I 23 #define SCANCODE_O 24 #define SCANCODE_P 25 #define SCANCODE_BRACKET_LEFT 26 #define SCANCODE_BRACKET_RIGHT 27 #define SCANCODE_ENTER 28 #define SCANCODE_LEFTCONTROL 29 #define SCANCODE_A 30 #define SCANCODE_S 31 #define SCANCODE_D 32 #define SCANCODE_F 33 #define SCANCODE_G 34 #define SCANCODE_H 35 #define SCANCODE_J 36 #define SCANCODE_K 37 #define SCANCODE_L 38 #define SCANCODE_SEMICOLON 39 #define SCANCODE_APOSTROPHE 40 #define SCANCODE_GRAVE 41 #define SCANCODE_LEFTSHIFT 42 #define SCANCODE_BACKSLASH 43 #define SCANCODE_Z 44 #define SCANCODE_X 45 #define SCANCODE_C 46 #define SCANCODE_V 47 #define SCANCODE_B 48 #define SCANCODE_N 49 #define SCANCODE_M 50 #define SCANCODE_COMMA 51 #define SCANCODE_PERIOD 52 #define SCANCODE_SLASH 53 #define SCANCODE_RIGHTSHIFT 54 #define SCANCODE_KEYPADMULTIPLY 55 #define SCANCODE_LEFTALT 56 #define SCANCODE_SPACE 57 #define SCANCODE_CAPSLOCK 58 #define SCANCODE_F1 59 #define SCANCODE_F2 60 #define SCANCODE_F3 61 #define SCANCODE_F4 62 #define SCANCODE_F5 63 #define SCANCODE_F6 64 #define SCANCODE_F7 65 #define SCANCODE_F8 66 #define SCANCODE_F9 67 #define SCANCODE_F10 68 #define SCANCODE_NUMLOCK 69 #define SCANCODE_SCROLLLOCK 70 #define SCANCODE_KEYPAD7 71 #define SCANCODE_CURSORUPLEFT 71 #define SCANCODE_KEYPAD8 72 #define SCANCODE_CURSORUP 72 #define SCANCODE_KEYPAD9 73 #define SCANCODE_CURSORUPRIGHT 73 #define SCANCODE_KEYPADMINUS 74 #define SCANCODE_KEYPAD4 75 #define SCANCODE_CURSORLEFT 75 #define SCANCODE_KEYPAD5 76 #define SCANCODE_KEYPAD6 77 #define SCANCODE_CURSORRIGHT 77 #define SCANCODE_KEYPADPLUS 78 #define SCANCODE_KEYPAD1 79 #define SCANCODE_CURSORDOWNLEFT 79 #define SCANCODE_KEYPAD2 80 #define SCANCODE_CURSORDOWN 80 #define SCANCODE_KEYPAD3 81 #define SCANCODE_CURSORDOWNRIGHT 81 #define SCANCODE_KEYPAD0 82 #define SCANCODE_KEYPADPERIOD 83 #define SCANCODE_LESS 86 #define SCANCODE_F11 87 #define SCANCODE_F12 88 #define SCANCODE_KEYPADENTER 96 #define SCANCODE_RIGHTCONTROL 97 #define SCANCODE_CONTROL 97 #define SCANCODE_KEYPADDIVIDE 98 #define SCANCODE_PRINTSCREEN 99 #define SCANCODE_RIGHTALT 100 #define SCANCODE_BREAK 101 /* Beware: is 119 */ #define SCANCODE_BREAK_ALTERNATIVE 119 /* on some keyboards! */ #define SCANCODE_HOME 102 #define SCANCODE_CURSORBLOCKUP 103 /* Cursor key block */ #define SCANCODE_PAGEUP 104 #define SCANCODE_CURSORBLOCKLEFT 105 /* Cursor key block */ #define SCANCODE_CURSORBLOCKRIGHT 106 /* Cursor key block */ #define SCANCODE_END 107 #define SCANCODE_CURSORBLOCKDOWN 108 /* Cursor key block */ #define SCANCODE_PAGEDOWN 109 #define SCANCODE_INSERT 110 #define SCANCODE_REMOVE 111 #define SCANCODE_RIGHTWIN 126 #define SCANCODE_LEFTWIN 125 #define KEY_EVENTRELEASE 0 #define KEY_EVENTPRESS 1 #define MAX_KEYNAME_LEN 20 #else /* defined(__SunOS__) */ #define SCANCODE_GRAVE 1 /* 41 ` */ #define SCANCODE_1 2 #define SCANCODE_2 3 #define SCANCODE_3 4 #define SCANCODE_4 5 #define SCANCODE_5 6 #define SCANCODE_6 7 #define SCANCODE_7 8 #define SCANCODE_8 9 #define SCANCODE_9 10 #define SCANCODE_0 11 #define SCANCODE_MINUS 12 #define SCANCODE_EQUAL 13 #define SCANCODE_Q 17 /*16 */ #define SCANCODE_W 18 /*17 */ #define SCANCODE_E 19 /*18 */ #define SCANCODE_R 20 /*19 */ #define SCANCODE_T 21 /*20 */ #define SCANCODE_Y 22 /*21 */ #define SCANCODE_U 23 /*22 */ #define SCANCODE_I 24 /*23 */ #define SCANCODE_O 25 /*24 */ #define SCANCODE_P 26 /*25 */ #define SCANCODE_BRACKET_LEFT 27 /*26 [ */ #define SCANCODE_BRACKET_RIGHT 28 /*27 ] */ #define SCANCODE_BACKSLASH 29 /* \, also defined as 42 */ #define SCANCODE_CAPSLOCK 30 /*58 */ #define SCANCODE_A 31 /*30 */ #define SCANCODE_S 32 /*31 */ #define SCANCODE_D 33 /*32 */ #define SCANCODE_F 34 /*33 */ #define SCANCODE_G 35 /*34 */ #define SCANCODE_H 36 /*35 */ #define SCANCODE_J 37 /*36 */ #define SCANCODE_K 38 /*37 */ #define SCANCODE_L 39 /*38 */ #define SCANCODE_SEMICOLON 40 /*39 ; */ #define SCANCODE_APOSTROPHE 41 /*40 ' */ #define SCANCODE_ENTER 43 /*28 */ #define SCANCODE_LEFTSHIFT 44 /* 0x102 0x100(SHIFTKEYS) + LeftShift key */ #define SCANCODE_Z 46 /*44 */ #define SCANCODE_X 47 /*45 */ #define SCANCODE_C 48 /*46 */ #define SCANCODE_V 49 /*47 */ #define SCANCODE_B 50 /*48 */ #define SCANCODE_N 51 /*49 */ #define SCANCODE_M 52 /*50 */ #define SCANCODE_COMMA 53 /*51 */ #define SCANCODE_PERIOD 54 /*52 */ #define SCANCODE_SLASH 55 /*53 */ #define SCANCODE_RIGHTSHIFT 57 /* 0x103 RightShift */ #define SCANCODE_LEFTCONTROL 58 /* 0x104 LeftCtrl */ #define SCANCODE_SPACE 61 /* 57 */ #define SCANCODE_RIGHTCONTROL 64 /* 0x105 RightCtrl */ #endif /* defined(__SunOS__) */ int keyboard_init(void); int keyboard_init_return_fd(void); typedef void (*__keyboard_handler) (int scancode, int press); void keyboard_seteventhandler(__keyboard_handler handler); void keyboard_close(void); int keyboard_update(void); void keyboard_waitforupdate(void); #define KEY_NOTPRESSED 0 #define KEY_PRESSED 1 #define TRANSLATE_CURSORKEYS 1 /* Map cursor block to keypad cursor. */ #define TRANSLATE_DIAGONAL 2 /* Map keypad diagonal to keypad cursor. */ #define TRANSLATE_KEYPADENTER 4 /* Map keypad enter to main enter key. */ #define DONT_CATCH_CTRLC 8 /* Disable Crtl-C check. */ void keyboard_setdefaulteventhandler(void); char *keyboard_getstate(void); void keyboard_clearstate(void); void keyboard_translatekeys(int mask); int keyboard_keypressed(int scancode); #ifdef __cplusplus } #endif #endif