blob: 18630c3f4bb56964c0c45da822ffc56f2789870c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
enum modifiers {
Ctrl = 1 << 0,
Meta = 1 << 1,
};
struct key {
uint8_t bytes[6];
uint8_t nbytes;
uint8_t mod;
};
struct keyboard {
uint32_t reactor_event_id;
bool has_data;
struct key last_key;
};
struct keyboard_update {
struct key keys[32];
uint32_t nkeys;
};
struct reactor;
struct keyboard keyboard_create(struct reactor *reactor);
struct keyboard_update keyboard_update(struct keyboard *kbd,
struct reactor *reactor);
bool key_equal_char(struct key *key, uint8_t mod, uint8_t c);
bool key_equal(struct key *key1, struct key *key2);
void key_name(struct key *key, char *buf, size_t capacity);
|