keyboard_translatekeys(Svgalib User Manukeyboard_translatekeys(3)

NAME
       keyboard_translatekeys  -  modify scancode mappings in raw
       keyboard mode

SYNOPSIS
       #include <vgakeyboard.h>

       void keyboard_translatekeys(int mask);

DESCRIPTION
       This function sets several flags which control how certain
       scancodes  are  mapped.  At  startup  a mask value of 0 is
       active.

       mask must be a logical or of zero or more of the following
       #predefined integers to turn the features listed on:

       TRANSLATE_CURSORKEYS
              Translate  the  scancodes  of  the SCANCODE_CURSOR-
              BLOCK* keys to those of the cursor keys on the num-
              ber   pad,   s.t.   keyboard_getstate(3)  and  key-
              board_keypressed(3) report a keypress of the corre-
              sponding  number  pad cursor key and not the one on
              the cursor block.

       TRANSLATE_DIAGONAL
              Translates the scancodes of  diagonal  cursor  keys
              (keypad  7, 9, 1, 3) to presses of two of the ordi-
              nary up,  down,  left,  right  keys.  For  example,
              instead  of  reporting  a  press  of  SCANCODE_CUR-
              SORUPRIGHT keyboard_getstate(3)  and  keyboard_key-
              pressed(3)  report  a  simultaneous  press of SCAN-
              CODE_CURSORUP and SCANCODE_CURSORRIGHT.

       TRANSLATE_KEYPADENTER
              The scancode of the keypad enter key is  mapped  to
              that of the ordinary enter key, s.t.  keyboard_get-
              state(3) and keyboard_keypressed(3) report a  press
              of  SCANCODE_ENTER  regardless  if  keypad enter or
              ordinary enter is pressed.

       DONT_CATCH_CTRLC
              Pressing <Ctrl>-C does not raise a SIGINT.  On con-
              trary  to the other flags this has also effect when
              a user defined  keyboard  event  handler  is  used.
              Svgalib  will  always  process <Alt>-F1 - <Alt>-F10
              and perform console switches accordingly.

BUGS
       The TRANSLATE_* options above do really do simple scancode
       translations.  For  example, when TRANSLATE_KEYPADENTER is
       active and the user presses both enter and  keypad  enter.
       Then,  if he releases one of them (say keypad enter), it's
       release event will clear the common keyboard  state,  s.t.
       no  keypress  is  reported  even  though  enter  is  still
       pressed.

       Similarly, if TRANSLATE_DIAGONAL is active, the user holds
       cursor upleft (keypad 7) down and then presses and release
       cursor up (keypad 8), svgalib will only report  a  pressed
       cursor  left but the simulated cursor up will be lost. You
       can easily try this with the keytest(6) demo to  make  the
       effect more clear to you.

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_update(3),   keyboard_waitforup-
       date(3), keyboard_setdefaulteventhandler(3), keyboard_get-
       state(3), keyboard_clearstate(3),  keyboard_keypressed(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