49 lines
757 B
C
49 lines
757 B
C
#include <vhex/keyboard.h>
|
|
#include <vhex/keyboard/keycache.h>
|
|
#include <stdarg.h>
|
|
|
|
|
|
/* keydown(): Current key state */
|
|
int keydown(key_t key)
|
|
{
|
|
return keycache_keydown(key);
|
|
}
|
|
|
|
/* keydown_all(): Check a set of keys for simultaneous input */
|
|
int keydown_all(key_t key1, ...)
|
|
{
|
|
int key;
|
|
va_list ap;
|
|
|
|
va_start(ap, key1);
|
|
|
|
key = key1;
|
|
do {
|
|
if (keycache_keydown(key) == 0)
|
|
return 0;
|
|
key = va_arg(ap, key_t);
|
|
} while (key != KEY_NONE);
|
|
|
|
va_end(ap);
|
|
return 1;
|
|
}
|
|
|
|
/* keydown_any(): Check a set of keys for any input */
|
|
int keydown_any(key_t key1, ...)
|
|
{
|
|
int key;
|
|
va_list ap;
|
|
|
|
va_start(ap, key1);
|
|
|
|
key = key1;
|
|
do {
|
|
if (keycache_keydown(key) != 0)
|
|
return 1;
|
|
key = va_arg(ap, key_t);
|
|
} while (key != KEY_NONE);
|
|
|
|
va_end(ap);
|
|
return 0;
|
|
}
|