SDK Multiplataforma en C logo

SDK Multiplataforma en C

Búfer de teclado

❮ Anterior
Siguiente ❯

Búfer para leer las pulsaciones del teclado de forma síncrona.


Funciones

KeyBuf*keybuf_create (void)
voidkeybuf_destroy (...)
voidkeybuf_OnUp (...)
voidkeybuf_OnDown (...)
voidkeybuf_clear (...)
bool_tkeybuf_pressed (...)
voidkeybuf_str (...)
voidkeybuf_dump (...)

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.

Imagen que representa el búfer de teclado para conectar eventos asíncronos de pulsaciones con síncronos de lectura.
Figura 1: Acceso al estado de las teclas en eventos síncronos.
❮ Anterior
Siguiente ❯

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 NULL tras la destrucción.


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.

❮ Anterior
Siguiente ❯