Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
keyboard_translatekeys(3)      Svgalib User Manual     keyboard_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  in-
     tegers to turn the features listed on:

     TRANSLATE_CURSORKEYS
	    Translate  the  scancodes of the SCANCODE_CURSORBLOCK* keys to those
	    of the cursor keys on the number pad, s.t.	keyboard_getstate(3) and
	    keyboard_keypressed(3) report a keypress of the corresponding 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 ordinary up, down, left,  right  keys.  For
	    example, instead of reporting a press of SCANCODE_CURSORUPRIGHT key-
	    board_getstate(3)  and  keyboard_keypressed(3) report a simultaneous
	    press of SCANCODE_CURSORUP and SCANCODE_CURSORRIGHT.

     TRANSLATE_KEYPADENTER
	    The scancode of the keypad enter key is mapped to that of the  ordi-
	    nary   enter   key,  s.t.	keyboard_getstate(3)  and  keyboard_key-
	    pressed(3) report a press of SCANCODE_ENTER regardless if keypad en-
	    ter or ordinary enter is pressed.

     DONT_CATCH_CTRLC
	    Pressing <Ctrl>-C does not raise a SIGINT.	On contrary to the other
	    flags this has also effect when a user defined keyboard  event  han-
	    dler  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 en-
     ter), 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.config(5),	keytest(6),  eventtest(6),  key-
     board_seteventhandler(3),	 keyboard_init(3),   keyboard_init_return_fd(3),
     keyboard_close(3),   keyboard_update(3),	keyboard_waitforupdate(3),  key-
     board_setdefaulteventhandler(3),	      keyboard_getstate(3),	    key-
     board_clearstate(3), keyboard_keypressed(3), vga_waitevent(3)

AUTHOR
     This  manual  page  was  edited  by Michael Weller <eowmob@exp-math.uni-es-
     sen.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 orig-
     inal author and will happily accept any additions or  corrections	to  this
     first version of the svgalib manual.

Svgalib (>= 1.2.11)		  29 July 1997	       keyboard_translatekeys(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=keyboard_translatekeys&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help