#ifndef __GE_INPUT_H__ #define __GE_INPUT_H__ #include struct ge_input; typedef struct ge_input ge_input_t; typedef union ge_input_event { void* ctx; uintptr_t num; } ge_input_event_t; typedef int(*ge_input_send_func_t)(ge_input_t* ctx, ge_input_event_t event); typedef int(*ge_input_peek_func_t)(ge_input_t* ctx, ge_input_event_t* event); typedef int(*ge_input_recv_func_t)(ge_input_t* ctx, ge_input_event_t* event); struct ge_input { void* context; ge_input_send_func_t func_send; ge_input_peek_func_t func_peek; ge_input_recv_func_t func_recv; }; #endif // __GE_INPUT_H__