home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / D / SVGALIB / _SVGALIB.TAR / usr / include / vgakeyboard.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-01-18  |  3.4 KB  |  118 lines

  1. /* Keyboard interface for svgalib. */
  2. /* Can be used independently. */
  3.  
  4. #ifndef VGAKEYBOARD_H
  5. #define VGAKEYBOARD_H
  6.  
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10.  
  11. #define SCANCODE_CURSORUP    72    /* Principal cursor keys. */
  12. #define SCANCODE_CURSORLEFT    75    /* (On numeric keypad.) */
  13. #define SCANCODE_CURSORRIGHT    77
  14. #define SCANCODE_CURSORDOWN    80
  15.  
  16. #define SCANCODE_CURSORUPLEFT    71    /* Diagonal keypad keys. */
  17. #define SCANCODE_CURSORUPRIGHT    73
  18. #define SCANCODE_CURSORDOWNLEFT    79
  19. #define SCANCODE_CURSORDOWNRIGHT 81
  20.  
  21. #define SCANCODE_CURSORBLOCKUP    103    /* Cursor key block. */
  22. #define SCANCODE_CURSORBLOCKLEFT 105
  23. #define SCANCODE_CURSORBLOCKRIGHT 106
  24. #define SCANCODE_CURSORBLOCKDOWN 108
  25.  
  26. #define SCANCODE_KEYPAD0    82
  27. #define SCANCODE_KEYPAD1    79
  28. #define SCANCODE_KEYPAD2    80
  29. #define SCANCODE_KEYPAD3    81
  30. #define SCANCODE_KEYPAD4    75
  31. #define SCANCODE_KEYPAD5    76
  32. #define SCANCODE_KEYPAD6    77
  33. #define SCANCODE_KEYPAD7    71
  34. #define SCANCODE_KEYPAD8    72
  35. #define SCANCODE_KEYPAD9    73
  36. #define SCANCODE_KEYPADENTER    96
  37. #define SCANCODE_KEYPADPLUS    78
  38. #define SCANCODE_KEYPADMINUS    74
  39.  
  40. #define SCANCODE_A        30
  41. #define SCANCODE_C        46
  42. #define SCANCODE_E        18
  43. #define SCANCODE_F        33
  44. #define SCANCODE_S        31
  45. #define SCANCODE_D        32
  46. #define SCANCODE_Q        16
  47. #define SCANCODE_X        45
  48.  
  49. #define SCANCODE_ESCAPE        1
  50. #define SCANCODE_ENTER        28
  51. #define SCANCODE_RIGHTCONTROL    97
  52. #define SCANCODE_CONTROL    97
  53. #define SCANCODE_RIGHTALT    100
  54. #define SCANCODE_LEFTCONTROL    29
  55. #define SCANCODE_LEFTALT    56
  56. #define SCANCODE_SPACE        57
  57.  
  58. #define SCANCODE_F1        59
  59. #define SCANCODE_F2        60
  60. #define SCANCODE_F3        61
  61. #define SCANCODE_F4        62
  62. #define SCANCODE_F5        63
  63. #define SCANCODE_F6        64
  64. #define SCANCODE_F7        65
  65. #define SCANCODE_F8        66
  66. #define SCANCODE_F9        67
  67. #define SCANCODE_F10        68
  68.  
  69. #define KEY_EVENTRELEASE 0
  70. #define KEY_EVENTPRESS 1
  71.  
  72. /* Initialize keyboard handler (brings keyboard into RAW mode). Returns */
  73. /* 0 if succesful, -1 otherwise. */
  74. int keyboard_init();
  75. /* Similar, but returns console fd if succesful. */
  76. int keyboard_init_return_fd();
  77. /* Set event handler invoked by keyboard_update(). */
  78. void keyboard_seteventhandler( void (*handler)( int scancode, int press ) );
  79. /* Return keyboard to normal state. */
  80. void keyboard_close();
  81. /* Read raw keyboard device and handle events. Returns 0 if no event. */
  82. int keyboard_update();
  83. /* Similar to keyboard_update, but wait for an event to happen. */
  84. /* [This doesn't seem to work very well] */
  85. void keyboard_waitforupdate();
  86.  
  87. /* keyboard_init sets default event handler that keeps track of complete */
  88. /* keyboard state: */
  89.  
  90. /* Result of keypressed. */
  91. #define KEY_NOTPRESSED 0
  92. #define KEY_PRESSED 1
  93.  
  94. /* Modes for translatekeys. */
  95. #define TRANSLATE_CURSORKEYS 1    /* Map cursor block to keypad cursor. */
  96. #define TRANSLATE_DIAGONAL 2    /* Map keypad diagonal to keypad cursor. */
  97. #define TRANSLATE_KEYPADENTER 4 /* Map keypad enter to main enter key. */
  98.  
  99. /* Revert to default handler. */
  100. void keyboard_setdefaulteventhandler();
  101. /* Return pointer to buffer holding state of each key (scancode). */
  102. /* Value 1 corresponds to key that is pressed, 0 means not pressed. */
  103. char *keyboard_getstate();
  104. /* Force keyboard state to nothing pressed (all zeroes). */
  105. void keyboard_clearstate();
  106. /* Let default handler translate cursor key block events to numeric keypad */
  107. /* cursor key events and other translations. */
  108. void keyboard_translatekeys( int mask );
  109.  
  110. /* Return nonzero if key is depressed. */
  111. int keyboard_keypressed( int scancode );
  112.  
  113. #ifdef __cplusplus
  114. }
  115. #endif
  116.  
  117. #endif
  118.