Búfer de teclado
Búfer para leer las pulsaciones del teclado de forma síncrona.
Funciones
KeyBuf* | keybuf_create (void) |
void | keybuf_destroy (...) |
void | keybuf_OnUp (...) |
void | keybuf_OnDown (...) |
void | keybuf_clear (...) |
bool_t | keybuf_pressed (...) |
void | keybuf_str (...) |
void | keybuf_dump (...) |
- Utiliza keybuf_create para crear el búfer.
- Utiliza view_keybuf para vincular el búfer con cualquier vista gráfica.
El sistema operativo genera eventos de forma asíncrona cada vez que el usuario pulsa o libera una tecla. Podemos capturar dichos eventos utilizando una función callback (ver view_OnDown), pero en ocasiones esto no es suficiente. Pensemos en un videojuego donde debamos leer el estado de una tecla en la fase de actualización, que se produce de forma síncrona. En estos casos será muy útil el uso de un búfer de teclado (Figura 1), que simplemente guarda el estado de cada tecla en función de los eventos que se van produciendo. Dicho estado puede leerse en cualquier momento de la ejecución.
keybuf_create ()
Crea un búfer con el estado del teclado.
KeyBuf* keybuf_create(void);
Retorna
El búfer.
keybuf_destroy ()
Destruye el búfer.
void keybuf_destroy(KeyBuf **bufer);
bufer | El búfer. Será puesto a |
keybuf_OnUp ()
Establece el estado de una tecla como liberada.
void keybuf_OnUp(KeyBuf *bufer, const vkey_t key);
bufer | El búfer. |
key | El código de la tecla. |
Observaciones
Normalmente no será necesario llamar a esta función. Lo hará View o el módulo que capture los eventos de teclado.
keybuf_OnDown ()
Establece el estado de una tecla como pulsado.
void keybuf_OnDown(KeyBuf *bufer, const vkey_t key);
bufer | El búfer. |
key | El código de la tecla. |
Observaciones
Normalmente no será necesario llamar a esta función. Lo hará View o el módulo que capture los eventos de teclado.
keybuf_clear ()
Limpia el búfer. Establece todas las teclas como liberadas.
void keybuf_clear(KeyBuf *bufer);
bufer | El búfer. |
Observaciones
Normalmente no será necesario llamar a esta función. Lo hará View o el módulo que capture los eventos de teclado.
keybuf_pressed ()
Retorna el estado de una tecla.
bool_t keybuf_pressed(const KeyBuf *bufer, const vkey_t key);
bufer | El búfer. |
key | El código de la tecla. |
Retorna
Pulsada (TRUE
) o liberada (FALSE
).
keybuf_str ()
Retorna una cadena de texto asociada a una tecla.
void keybuf_str(const vkey_t key);
key | El código de la tecla. |
keybuf_dump ()
Vuelca en el Log el estado del búfer.
void keybuf_dump(const KeyBuf *bufer);
bufer | El búfer. |