76 lines
No EOL
1.3 KiB
C
76 lines
No EOL
1.3 KiB
C
#ifndef ARC_GRAPHICS_KEYBOARD_H_
|
|
#define ARC_GRAPHICS_KEYBOARD_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <stdint.h>
|
|
|
|
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_Create(ARC_Keyboard **keyboard, ARC_KeyboardInfo *info);
|
|
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_
|