diff options
author | papush! | 2025-07-04 23:21:14 +0200 |
---|---|---|
committer | papush! | 2025-07-04 23:25:07 +0200 |
commit | 0d1f4776521b286cb7c0091ac5bcd659cdc87132 (patch) | |
tree | 5b04bd12c45f6f30c34356241616496c5cb025e2 /src/binding.h | |
parent | ff5e9f826d6e89f5ab1adb09e959afd5d1e17a5f (diff) |
add multikey binds support
Diffstat (limited to 'src/binding.h')
-rw-r--r-- | src/binding.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/binding.h b/src/binding.h new file mode 100644 index 0000000..d86cf87 --- /dev/null +++ b/src/binding.h @@ -0,0 +1,23 @@ +#ifndef BINDING_H +#define BINDING_H + +#include <linux/input.h> +#include <stdint.h> + +#define KEYS_SIZE KEY_CNT/64 + +struct binding +{ + uint64_t keys[KEYS_SIZE]; + enum {RELEASED=0, PRESSED=1} value; + char *cmd; +}; + +int has_key(uint64_t keys[static KEYS_SIZE], int code); +void set_key(uint64_t keys[static KEYS_SIZE], int code); +void clear_key(uint64_t keys[static KEYS_SIZE], int code); +int is_keys_subset_of(uint64_t a[static KEYS_SIZE], uint64_t b[static KEYS_SIZE]); +void print_keys(uint64_t keys[static KEYS_SIZE]); + + +#endif |