diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2022-09-27 17:03:06 +0200 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2022-11-01 16:26:16 +0100 |
| commit | 980858186149651df5543b6fc99a4f7db0cdd089 (patch) | |
| tree | d347200b0a562d84df505097651ad0642f207fdd /src/keyboard/inc | |
| parent | 39f50e601d395bbd2d78d0147ac530b756da2fff (diff) | |
| download | jancity-980858186149651df5543b6fc99a4f7db0cdd089.tar.gz | |
WIP
Diffstat (limited to 'src/keyboard/inc')
| -rw-r--r-- | src/keyboard/inc/keyboard.h | 27 | ||||
| -rw-r--r-- | src/keyboard/inc/keyboard/combo.h | 15 | ||||
| -rw-r--r-- | src/keyboard/inc/keyboard/key.h (renamed from src/keyboard/inc/keyboard_key.h) | 1 |
3 files changed, 34 insertions, 9 deletions
diff --git a/src/keyboard/inc/keyboard.h b/src/keyboard/inc/keyboard.h index 0fb0179..8bae4d3 100644 --- a/src/keyboard/inc/keyboard.h +++ b/src/keyboard/inc/keyboard.h @@ -1,7 +1,9 @@ #ifndef KEYBOARD_H #define KEYBOARD_H -#include <keyboard_key.h> +#include <keyboard/key.h> +#include <keyboard/combo.h> +#include <keyboard/port.h> #include <stdbool.h> #include <stddef.h> @@ -12,26 +14,33 @@ extern "C" #define KEYBOARD_COMBO(...) (const struct keyboard_combo){.keys = {__VA_ARGS__}} -enum {KEYBOARD_MAX_COMBO_KEYS = 3}; - struct keyboard { - struct keyboard_combo + struct keyboard_input { - enum keyboard_key keys[KEYBOARD_MAX_COMBO_KEYS]; - } combo, oldcombo; + struct keyboard_combo + { + enum keyboard_key keys[KEYBOARD_MAX_COMBO_KEYS]; + } combo; + + struct keyboard_chars + { + char c[KEYBOARD_MAX_COMBO_KEYS]; + } chars; + } input, oldinput; size_t i; + struct keyboard_port port; }; void keyboard_init(struct keyboard *k); void keyboard_update(struct keyboard *k); +bool keyboard_available(void); bool keyboard_justpressed(const struct keyboard *k, const struct keyboard_combo *c); bool keyboard_pressed(const struct keyboard *k, const struct keyboard_combo *c); bool keyboard_justreleased(const struct keyboard *k, const struct keyboard_combo *c); -bool keyboard_any_justpressed(const struct keyboard *k, struct keyboard_combo *c); -bool keyboard_any_pressed(const struct keyboard *k, struct keyboard_combo *c); -char keyboard_to_char(const struct keyboard *k, enum keyboard_key key); +bool keyboard_any_justpressed(const struct keyboard *k, struct keyboard_input *in); +bool keyboard_any_pressed(const struct keyboard *k, struct keyboard_input *in); const char *keyboard_key_str(enum keyboard_key k); #ifdef __cplusplus diff --git a/src/keyboard/inc/keyboard/combo.h b/src/keyboard/inc/keyboard/combo.h new file mode 100644 index 0000000..e0ef759 --- /dev/null +++ b/src/keyboard/inc/keyboard/combo.h @@ -0,0 +1,15 @@ +#ifndef KEYBOARD_COMBO_H +#define KEYBOARD_COMBO_H + +#ifdef __cplusplus +extern "C" +{ +#endif + +enum {KEYBOARD_MAX_COMBO_KEYS = 3}; + +#ifdef __cplusplus +} +#endif + +#endif /* KEYBOARD_COMBO_H */ diff --git a/src/keyboard/inc/keyboard_key.h b/src/keyboard/inc/keyboard/key.h index 49c31d2..0a25a97 100644 --- a/src/keyboard/inc/keyboard_key.h +++ b/src/keyboard/inc/keyboard/key.h @@ -59,6 +59,7 @@ extern "C" X(KEYBOARD_KEY_SPACE) \ X(KEYBOARD_KEY_MINUS) \ X(KEYBOARD_KEY_DOT) \ + X(KEYBOARD_KEY_RETURN) \ X(KEYBOARD_KEY_SLASH) enum keyboard_key |
