---
name: "keyboard_ucallback"
section: "3alleg"
platform: "linux"
package: "liballegro-doc"
version: "2:4.2.2-2.2"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/keyboard_ucallback"
---

# keyboard\_ucallback(3alleg)

User specified unicode keyboard callback handler. Allegro game programming library.

## NAME

keyboard\_ucallback - User specified unicode keyboard callback handler. Allegro game programming library.

## SYNOPSIS

**#include \<allegro.h\>**

**extern int (\*keyboard\_ucallback)(int key, int \*scancode);**

## DESCRIPTION

Unicode-aware version of keyboard\_callback(). If set, this function is  called by the keyboard handler in response to every keypress. It is  passed the character value and scancode that are about to be added into  the input buffer, can modify the scancode value, and returns a new or  modified key code. If it both sets the scancode to zero and returns zero,  the keypress will be ignored. This routine executes in an interrupt  context, so it must be in locked memory. Example:

```
   int silence_g_key(int key, int *scancode)
   {
      if (key == 'g') {
         *scancode = 0;
         return 0;
      }
      return key;
   } END_OF_FUNCTION(silence_g_key)
   ...
      install_timer();
      LOCK_FUNCTION(silence_g_key);
      install_keyboard();
      keyboard_ucallback = silence_g_key;
```

Note that this keyboard callback has priority over the non unicode callback. If you set both, only the unicode one will work.

## SEE ALSO

[**install\_keyboard**(3alleg)](/install_keyboard/3alleg.md), [**readkey**(3alleg)](/readkey/3alleg.md), [**ureadkey**(3alleg)](/ureadkey/3alleg.md), [**keyboard\_callback**(3alleg)](/keyboard_callback/3alleg.md), [**keyboard\_lowlevel\_callback**(3alleg)](/keyboard_lowlevel_callback/3alleg.md)
