hid: Add HidKeyboardKey & hidKeyboardStateGetKey

This commit is contained in:
fincs 2021-01-17 17:45:48 +01:00
parent 649f308d4b
commit 109bd683df
No known key found for this signature in database
GPG Key ID: 62C7609ADA219C60

View File

@ -47,6 +47,142 @@ typedef enum {
HidMouseButton_Back = BIT(4),
} HidMouseButton;
/// HidKeyboardKey
typedef enum {
HidKeyboardKey_A = 4,
HidKeyboardKey_B = 5,
HidKeyboardKey_C = 6,
HidKeyboardKey_D = 7,
HidKeyboardKey_E = 8,
HidKeyboardKey_F = 9,
HidKeyboardKey_G = 10,
HidKeyboardKey_H = 11,
HidKeyboardKey_I = 12,
HidKeyboardKey_J = 13,
HidKeyboardKey_K = 14,
HidKeyboardKey_L = 15,
HidKeyboardKey_M = 16,
HidKeyboardKey_N = 17,
HidKeyboardKey_O = 18,
HidKeyboardKey_P = 19,
HidKeyboardKey_Q = 20,
HidKeyboardKey_R = 21,
HidKeyboardKey_S = 22,
HidKeyboardKey_T = 23,
HidKeyboardKey_U = 24,
HidKeyboardKey_V = 25,
HidKeyboardKey_W = 26,
HidKeyboardKey_X = 27,
HidKeyboardKey_Y = 28,
HidKeyboardKey_Z = 29,
HidKeyboardKey_D1 = 30,
HidKeyboardKey_D2 = 31,
HidKeyboardKey_D3 = 32,
HidKeyboardKey_D4 = 33,
HidKeyboardKey_D5 = 34,
HidKeyboardKey_D6 = 35,
HidKeyboardKey_D7 = 36,
HidKeyboardKey_D8 = 37,
HidKeyboardKey_D9 = 38,
HidKeyboardKey_D0 = 39,
HidKeyboardKey_Return = 40,
HidKeyboardKey_Escape = 41,
HidKeyboardKey_Backspace = 42,
HidKeyboardKey_Tab = 43,
HidKeyboardKey_Space = 44,
HidKeyboardKey_Minus = 45,
HidKeyboardKey_Plus = 46,
HidKeyboardKey_OpenBracket = 47,
HidKeyboardKey_CloseBracket = 48,
HidKeyboardKey_Pipe = 49,
HidKeyboardKey_Tilde = 50,
HidKeyboardKey_Semicolon = 51,
HidKeyboardKey_Quote = 52,
HidKeyboardKey_Backquote = 53,
HidKeyboardKey_Comma = 54,
HidKeyboardKey_Period = 55,
HidKeyboardKey_Slash = 56,
HidKeyboardKey_CapsLock = 57,
HidKeyboardKey_F1 = 58,
HidKeyboardKey_F2 = 59,
HidKeyboardKey_F3 = 60,
HidKeyboardKey_F4 = 61,
HidKeyboardKey_F5 = 62,
HidKeyboardKey_F6 = 63,
HidKeyboardKey_F7 = 64,
HidKeyboardKey_F8 = 65,
HidKeyboardKey_F9 = 66,
HidKeyboardKey_F10 = 67,
HidKeyboardKey_F11 = 68,
HidKeyboardKey_F12 = 69,
HidKeyboardKey_PrintScreen = 70,
HidKeyboardKey_ScrollLock = 71,
HidKeyboardKey_Pause = 72,
HidKeyboardKey_Insert = 73,
HidKeyboardKey_Home = 74,
HidKeyboardKey_PageUp = 75,
HidKeyboardKey_Delete = 76,
HidKeyboardKey_End = 77,
HidKeyboardKey_PageDown = 78,
HidKeyboardKey_RightArrow = 79,
HidKeyboardKey_LeftArrow = 80,
HidKeyboardKey_DownArrow = 81,
HidKeyboardKey_UpArrow = 82,
HidKeyboardKey_NumLock = 83,
HidKeyboardKey_NumPadDivide = 84,
HidKeyboardKey_NumPadMultiply = 85,
HidKeyboardKey_NumPadSubtract = 86,
HidKeyboardKey_NumPadAdd = 87,
HidKeyboardKey_NumPadEnter = 88,
HidKeyboardKey_NumPad1 = 89,
HidKeyboardKey_NumPad2 = 90,
HidKeyboardKey_NumPad3 = 91,
HidKeyboardKey_NumPad4 = 92,
HidKeyboardKey_NumPad5 = 93,
HidKeyboardKey_NumPad6 = 94,
HidKeyboardKey_NumPad7 = 95,
HidKeyboardKey_NumPad8 = 96,
HidKeyboardKey_NumPad9 = 97,
HidKeyboardKey_NumPad0 = 98,
HidKeyboardKey_NumPadDot = 99,
HidKeyboardKey_Backslash = 100,
HidKeyboardKey_Application = 101,
HidKeyboardKey_Power = 102,
HidKeyboardKey_NumPadEquals = 103,
HidKeyboardKey_F13 = 104,
HidKeyboardKey_F14 = 105,
HidKeyboardKey_F15 = 106,
HidKeyboardKey_F16 = 107,
HidKeyboardKey_F17 = 108,
HidKeyboardKey_F18 = 109,
HidKeyboardKey_F19 = 110,
HidKeyboardKey_F20 = 111,
HidKeyboardKey_F21 = 112,
HidKeyboardKey_F22 = 113,
HidKeyboardKey_F23 = 114,
HidKeyboardKey_F24 = 115,
HidKeyboardKey_NumPadComma = 133,
HidKeyboardKey_Ro = 135,
HidKeyboardKey_KatakanaHiragana = 136,
HidKeyboardKey_Yen = 137,
HidKeyboardKey_Henkan = 138,
HidKeyboardKey_Muhenkan = 139,
HidKeyboardKey_NumPadCommaPc98 = 140,
HidKeyboardKey_HangulEnglish = 144,
HidKeyboardKey_Hanja = 145,
HidKeyboardKey_Katakana = 146,
HidKeyboardKey_Hiragana = 147,
HidKeyboardKey_ZenkakuHankaku = 148,
HidKeyboardKey_LeftControl = 224,
HidKeyboardKey_LeftShift = 225,
HidKeyboardKey_LeftAlt = 226,
HidKeyboardKey_LeftGui = 227,
HidKeyboardKey_RightControl = 228,
HidKeyboardKey_RightShift = 229,
HidKeyboardKey_RightAlt = 230,
HidKeyboardKey_RightGui = 231,
} HidKeyboardKey;
/// HidKeyboardModifier
typedef enum {
HidKeyboardModifier_Control = BIT(0),
@ -1071,6 +1207,16 @@ void hidInitializeKeyboard(void);
*/
size_t hidGetKeyboardStates(HidKeyboardState *states, size_t count);
/**
* @brief Gets the state of a key in a \ref HidKeyboardState.
* @param[in] state \ref HidKeyboardState.
* @param[in] key \ref HidKeyboardKey.
* @return true if the key is pressed, false if not.
*/
NX_CONSTEXPR bool hidKeyboardStateGetKey(const HidKeyboardState *state, HidKeyboardKey key) {
return (state->keys[key / 64] & (1UL << (key & 63))) != 0;
}
///@}
///@name Npad