Man Linux: Main Page and Category List

NAME

       keyboard_lowlevel_callback  -  User  specified low level keyboard event
       handler. Allegro game programming library.

SYNOPSIS

       #include <allegro.h>

       extern void (*keyboard_lowlevel_callback)(int scancode);

DESCRIPTION

       If set, this function is called by the keyboard handler in response  to
       every keyboard event, both presses (including keyboard repeat rate) and
       releases. It will be passed a raw keyboard scancode byte (scancodes are
       7  bits  long),  with  the  top bit (8th bit) clear if the key has been
       pressed or set  if  it  was  released.  This  routine  executes  in  an
       interrupt context, so it must be in locked memory. Example:

          volatile int key_down, key_up;

          void keypress_watcher(int scancode)
          {
             if (scancode & 0x80) {
                key_up = 1;
             } else {
                key_down = 1;
             }
          } END_OF_FUNCTION(keypress_watcher)

          ...

             install_timer();
             LOCK_FUNCTION(silence_g_key);
             LOCK_VARIABLE(key_down);
             LOCK_VARIABLE(key_up);
             install_keyboard();
             keyboard_lowlevel_callback = keypress_watcher;
             /* Disable keyboard repeat to get typewriter effect. */
             set_keyboard_rate(0, 0);

          ...

             while (game_loop) {
                if (key_down) {
                   key_down = 0;
                   /* Play sample of typewriter key press. */
                }
                if (key_up) {
                   key_up = 0;
                   /* Play sample of typewriter key release. */
                }
             }

SEE ALSO

       install_keyboard(3alleg),                    keyboard_callback(3alleg),
       keyboard_ucallback(3alleg), exkeys(3alleg)

Allegro                          version 4.2keyboard_lowlevel_callback(3alleg)