diff options
Diffstat (limited to 'include/engine/input.h')
| -rw-r--r-- | include/engine/input.h | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/include/engine/input.h b/include/engine/input.h deleted file mode 100644 index 49b3a96..0000000 --- a/include/engine/input.h +++ /dev/null @@ -1,92 +0,0 @@ -#ifndef INPUT_H -#define INPUT_H - -#include <engine/types.h> - -typedef void input_callback_t(void*); -typedef i32 scancode_t; - -typedef enum InputType { - InputType_error = 0, - InputType_action, - InputType_state, - InputType_range, /* TBD */ -} InputType; - -typedef union action_t { - InputType type; - - struct { - InputType type; - input_callback_t* callback; - char* callback_str; - } action; - - struct { - InputType type; - input_callback_t* activate; - input_callback_t* deactivate; - char* activate_str; - char* deactivate_str; - } state; -} action_t; - -typedef struct binding_t { - action_t action; - - // Change type depending on input handling back-end. like u16 for GLFW_KEY - scancode_t scancode; - scancode_t scancode_alt; - - u64 since_last_activation; -} binding_t; - -typedef struct i_ctx { - binding_t* bindings; - isize len; -} i_ctx; - -void i_ctx_t_free(i_ctx* c); -/* Executes all callbacks that has been pushed onto the callstack and resets the - * callstack */ -void i_flush_bindings(usize numcalls, void* state_mem, input_callback_t* c[]); -action_t i_get_action(const i_ctx* restrict ctx, u32 time, scancode_t scancode); - -void i_ctx_push(i_ctx* ctx); -void i_ctx_pop(void); -void i_ctx_reset(void); - -/* Finds and updates the scancode of a binding with the given action in ctx */ -void i_bind_ctx(i_ctx* c, scancode_t s, action_t* a); -void i_bind_ctx_alt(i_ctx* c, scancode_t s, action_t* a); - -/* Update the scancode of a binding */ -void i_bind(binding_t* b, scancode_t s); -void i_bind_alt(binding_t* b, scancode_t s); - -#define BindAction(key, altkey, f_action) \ - (binding_t) { \ - .action = (action_t){.action = \ - { \ - .type = InputType_action, \ - .callback = (input_callback_t*)&f_action, \ - .callback_str = strdup(#f_action), \ - }}, \ - .scancode = key, .scancode_alt = altkey, .since_last_activation = 0 \ - } - -#define BindState(key, altkey, f_activate, f_deactivate) \ - (binding_t) { \ - .action = \ - (action_t){.state = \ - { \ - .type = InputType_state, \ - .activate = (input_callback_t*)&f_activate, \ - .deactivate = (input_callback_t*)&f_deactivate, \ - .activate_str = strdup(#f_activate), \ - .deactivate_str = strdup(#f_deactivate), \ - }}, \ - .scancode = key, .scancode_alt = altkey, .since_last_activation = 0 \ - } - -#endif |
