#ifndef BINDING_H #define BINDING_H #include #include #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