User specified keyboard callback handler. allegro game programming library.
#include <allegro.h>
extern int (*keyboard_callback)(int key);
If set, this function is called by the keyboard handler in response to every keypress. It is passed a copy of the value that is about to be added into the input buffer, and can either return this value unchanged, return zero to cause the key to be ignored, or return a modified value to change what readkey() will later return. This routine executes in an interrupt context, so it must be in locked memory. Example:
int enigma_scrambler(int key) { /* Add one to both the scancode and ascii values. */ return (((key >> 8) + 1) } END_OF_FUNCTION(enigma_scrambler) ... install_timer(); LOCK_FUNCTION(enigma_scrambler); install_keyboard(); keyboard_callback = enigma_scrambler;
Note that this callback will be ignored if you also set the unicode keyboard callback.
install_keyboard(3alleg4), readkey(3alleg4), ureadkey(3alleg4), keyboard_ucallback(3alleg4), keyboard_lowlevel_callback(3alleg4)