Computer Science
keyboard_getstate(3) Svgalib User Manual keyboard_getstate(3)
NAME
keyboard_getstate - get a pointer to a buffer holding the
state of all keys in raw keyboard mode
SYNOPSIS
#include <vgakeyboard.h>
char *keyboard_getstate(void);
DESCRIPTION
When in raw keyboard mode this routine returns a pointer
buffer to a static buffer. If the value in buffer[scan-
code] is KEY_PRESSED or KEY_NOTPRESSED the key with that
scancode is pressed or not. Actually KEY_PRESSED is 1 and
KEY_NOTPRESSED is 0, s.t. you can use constructs like:
if(buffer[SCANCODE_ENTER]) {
/* do something */
}
This is more efficient than calling keyboard_keypressed(3)
if you want to check for many different keys.
Please note that keyboard events will only be processed
when you occasionally call keyboard_update(3) or key-
board_waitforupdate(3).
keyboard_translatekeys(3) allows certain remap operations
which make certain keys (digits, enter) which might have
several physical keys show up under the same scancodes.
Here are the supported scancodes. The names of the
#defines originate from the US keyboard layout, for other
countries, they'll refer to the key in the same physical
location, but the keycap will have a different inscrip-
tion. For the list below, add SCANCODE_ in front of the
names to get the right name for your C source. That means,
if it lists BACKSLASH below, you shall use SCANCODE_BACK-
SLASH as symbol in your program. In addition to the names
below we also have SCANCODE_0 - SCANCODE_9, SCANCODE_KEY-
PAD0 - SCANCODE_KEYPAD9, SCANCODE_A - SCANCODE_Z, and
SCANCODE_F1 - SCANCODE_F12.
The other key names are ESCAPE, MINUS, EQUAL, BACKSPACE,
TAB, BRACKET_LEFT, BRACKET_RIGHT, ENTER, LEFTCONTROL,
SEMICOLON, APOSTROPHE, GRAVE, LEFTSHIFT, BACKSLASH, COMMA,
PERIOD, SLASH, RIGHTSHIFT, KEYPADMULTIPLY, LEFTALT, SPACE,
CAPSLOCK, NUMLOCK, SCROLLLOCK, CURSORUPLEFT, CURSORUP,
CURSORUPRIGHT, KEYPADMINUS, CURSORLEFT, CURSORRIGHT, KEY-
PADPLUS, CURSORDOWNLEFT, CURSORDOWN, CURSORDOWNRIGHT, KEY-
PADPERIOD, LESS, KEYPADENTER, RIGHTCONTROL, CONTROL, KEY-
PADDIVIDE, PRINTSCREEN, RIGHTALT, BREAK, BREAK_ALTERNA-
TIVE, HOME, CURSORBLOCKUP, PAGEUP, CURSORBLOCKLEFT, CUR-
SORBLOCKRIGHT, END, CURSORBLOCKDOWN, PAGEDOWN, INSERT, and
REMOVE.
SEE ALSO
svgalib(7), vgagl(7), libvga(5), keytest(6),
eventtest(6), keyboard_seteventhandler(3), key-
board_init(3), keyboard_init_return_fd(3), key-
board_close(3), keyboard_setdefaulteventhandler(3), key-
board_getstate(3), keyboard_clearstate(3), keyboard_trans-
latekeys(3), keyboard_update(3), keyboard_waitforup-
date(3), vga_waitevent(3)
AUTHOR
This manual page was edited by Michael Weller <eowmob@exp-
math.uni-essen.de>. The exact source of the referenced
function as well as of the original documentation is
unknown.
It is very likely that both are at least to some extent
are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.
Occasionally this might be wrong. I hereby asked to be
excused by the original author and will happily accept any
additions or corrections to this first version of the
svgalib manual.
Svgalib (>= 1.2.11) 29 July 1997 1
Back to the index