#ifndef ARC_GRAPHICS_KEYBOARD_H_ #define ARC_GRAPHICS_KEYBOARD_H_ #ifdef __cplusplus extern "C" { #endif #include /** * @brief predefien ARC_Input so as not to get circular reference */ typedef struct ARC_Input ARC_Input; typedef struct ARC_Keyboard ARC_Keyboard; typedef struct ARC_KeyboardInfo ARC_KeyboardInfo; typedef enum ARC_KeyboardState { ARC_KEY_NONE, ARC_KEY_PRESSED, ARC_KEY_RELEASED } ARC_KeyboardState; #define ARC_KEYBOARD_BUTTON_NUM 239 void ARC_Keyboard_CreateWithInput(ARC_Keyboard **keyboard, ARC_Input *input); void ARC_Keyboard_Destroy(ARC_Keyboard *keyboard); void ARC_Keyboard_Update(ARC_Keyboard *keyboard); typedef enum ARC_KeyboardKey { ARC_KEY_A, ARC_KEY_B, ARC_KEY_C, ARC_KEY_D, ARC_KEY_E, ARC_KEY_F, ARC_KEY_G, ARC_KEY_H, ARC_KEY_I, ARC_KEY_J, ARC_KEY_K, ARC_KEY_L, ARC_KEY_M, ARC_KEY_N, ARC_KEY_O, ARC_KEY_P, ARC_KEY_Q, ARC_KEY_R, ARC_KEY_S, ARC_KEY_T, ARC_KEY_U, ARC_KEY_V, ARC_KEY_W, ARC_KEY_X, ARC_KEY_Y, ARC_KEY_Z, ARC_KEY_0, ARC_KEY_1, ARC_KEY_2, ARC_KEY_3, ARC_KEY_4, ARC_KEY_5, ARC_KEY_6, ARC_KEY_7, ARC_KEY_8, ARC_KEY_9, ARC_KEY_SPACE, ARC_KEY_ESC, ARC_KEY_ENTER, } ARC_Keyboard_Key; ARC_KeyboardState ARC_Keyboard_GetState(ARC_Keyboard *keyboard, enum ARC_KeyboardKey key); #ifdef __cplusplus } #endif #endif // !ARC_GRAPHICS_KEYBOARD_H_