From 32407e728971006ed3d0885e01c22fb66c8adc57 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Fri, 15 Jul 2016 23:12:14 +0200 Subject: Move stuff around, again --- src/lib/include/kogata/keyboard.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/lib/include/kogata/keyboard.h (limited to 'src/lib/include/kogata/keyboard.h') diff --git a/src/lib/include/kogata/keyboard.h b/src/lib/include/kogata/keyboard.h new file mode 100644 index 0000000..63c6c2c --- /dev/null +++ b/src/lib/include/kogata/keyboard.h @@ -0,0 +1,39 @@ +#pragma once + +#include + +#include + +#define KBD_CHAR 0x01 +#define KBD_ALT 0x02 +#define KBD_CTRL 0x04 +#define KBD_SUPER 0x08 +#define KBD_SHIFT 0x10 +#define KBD_CAPS 0x20 +#define KBD_MOD 0x40 + +typedef struct { + union { + int chr; // if flags & KBD_CHAR, chr is a character number + int key; // if !(flags & KBD_CHAR), key is one of KBD_CODE_* defined in + }; + uint32_t flags; // one of kbd_* +} key_t; + +typedef struct { + keymap_t km; + int key_char[256]; + uint32_t status; // mask of alt/ctrl/super +} keyboard_t; + +keyboard_t *init_keyboard(); +void free_keyboard(keyboard_t *t); + +bool load_keymap(keyboard_t *kb, const char* kmname); + +key_t keyboard_press(keyboard_t *t, int scancode); // what key is pressed? +key_t keyboard_release(keyboard_t *t, int scancode); // what key is released? + + + +/* vim: set ts=4 sw=4 tw=0 noet :*/ -- cgit v1.2.3