FreeBSD Manual Pages
keyboard_lowlevel_callback(3) Allegro manual keyboard_lowlevel_callback(3) 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 inter- rupt 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(3), keyboard_callback(3), keyboard_ucallback(3), exkeys(3) Allegro version 4.4.3 keyboard_lowlevel_callback(3)
NAME | SYNOPSIS | DESCRIPTION | SEE ALSO
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=keyboard_lowlevel_callback&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>