archeus/include/arc/input/keyboard.h

82 lines
1.4 KiB
C
Raw Permalink Normal View History

#ifndef ARC_GRAPHICS_KEYBOARD_H_
#define ARC_GRAPHICS_KEYBOARD_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
/**
* @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,
2023-09-17 19:37:37 -06:00
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_