diff options
Diffstat (limited to 'src/keyboard.h')
-rw-r--r-- | src/keyboard.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/keyboard.h b/src/keyboard.h new file mode 100644 index 0000000..755bae2 --- /dev/null +++ b/src/keyboard.h @@ -0,0 +1,27 @@ +#ifndef IMV_KEYBOARD_H +#define IMV_KEYBOARD_H + +#include <stdbool.h> +#include <unistd.h> + +struct imv_keyboard; + +/* Create a keyboard instance */ +struct imv_keyboard *imv_keyboard_create(void); + +/* Clean up a keyboard */ +void imv_keyboard_free(struct imv_keyboard *keyboard); + +/* Notify the keyboard of the state of a key */ +void imv_keyboard_update_key(struct imv_keyboard *keyboard, int scancode, bool pressed); + +/* Write the null-terminated name of the key corresponding to scancode into buf */ +size_t imv_keyboard_keyname(struct imv_keyboard *keyboard, int scancode, char *buf, size_t buflen); + +/* Describe the key corresponding to scancode, with modifier keys prefixed */ +char *imv_keyboard_describe_key(struct imv_keyboard *keyboard, int scancode); + +/* Write the null-terminated text generated by scancode being pressed into buf */ +size_t imv_keyboard_get_text(struct imv_keyboard *keyboard, int scancode, char *buf, size_t buflen); + +#endif |