132 lines
2.5 KiB
C++
132 lines
2.5 KiB
C++
#pragma once
|
|
#include <luna/Types.h>
|
|
|
|
namespace moon
|
|
{
|
|
enum KeyCode : u8
|
|
{
|
|
// Function keys
|
|
K_F1,
|
|
K_F2,
|
|
K_F3,
|
|
K_F4,
|
|
K_F5,
|
|
K_F6,
|
|
K_F7,
|
|
K_F8,
|
|
K_F9,
|
|
K_F10,
|
|
K_F11,
|
|
K_F12,
|
|
// System keys
|
|
K_Esc,
|
|
K_PrtScr,
|
|
K_Pause,
|
|
K_Super,
|
|
K_Menu,
|
|
// Modifier keys
|
|
K_LeftShift,
|
|
K_RightShift,
|
|
K_LeftAlt,
|
|
K_RightAlt, // or AltGr on some keyboards
|
|
K_LeftControl,
|
|
K_RightControl,
|
|
// Navigation keys
|
|
K_Tab,
|
|
K_Home,
|
|
K_End,
|
|
K_PageUp,
|
|
K_PageDown,
|
|
K_RightArrow,
|
|
K_LeftArrow,
|
|
K_UpArrow,
|
|
K_DownArrow,
|
|
// Editing keys
|
|
K_Backspace,
|
|
K_Enter,
|
|
K_Insert,
|
|
K_Delete,
|
|
K_KeypadEnter,
|
|
// Lock keys
|
|
K_ScrollLock,
|
|
K_CapsLock,
|
|
K_NumLock,
|
|
// Keypad keys
|
|
K_Keypad0,
|
|
K_Keypad1,
|
|
K_Keypad2,
|
|
K_Keypad3,
|
|
K_Keypad4,
|
|
K_Keypad5,
|
|
K_Keypad6,
|
|
K_Keypad7,
|
|
K_Keypad8,
|
|
K_Keypad9,
|
|
K_KeypadDot,
|
|
K_KeypadPlus,
|
|
K_KeypadMinus,
|
|
K_KeypadMul,
|
|
K_KeypadDiv,
|
|
// Character keys (depending on keyboard layout), examples in US QWERTY
|
|
K_CH00, // `
|
|
K_CH01, // 1
|
|
K_CH02, // 2
|
|
K_CH03, // 3
|
|
K_CH04, // 4
|
|
K_CH05, // 5
|
|
K_CH06, // 6
|
|
K_CH07, // 7
|
|
K_CH08, // 8
|
|
K_CH09, // 9
|
|
K_CH10, // 0
|
|
K_CH11, // -
|
|
K_CH12, // =
|
|
K_CH13, // Q
|
|
K_CH14, // W
|
|
K_CH15, // E
|
|
K_CH16, // R
|
|
K_CH17, // T
|
|
K_CH18, // Y
|
|
K_CH19, // U
|
|
K_CH20, // I
|
|
K_CH21, // O
|
|
K_CH22, // P
|
|
K_CH23, // [
|
|
K_CH24, // ]
|
|
K_CH25, // A
|
|
K_CH26, // S
|
|
K_CH27, // D
|
|
K_CH28, // F
|
|
K_CH29, // G
|
|
K_CH30, // H
|
|
K_CH31, // J
|
|
K_CH32, // K
|
|
K_CH33, // L
|
|
K_CH34, // ;
|
|
K_CH35, // '
|
|
K_CH36, // #
|
|
K_CH37, // Backslash
|
|
K_CH38, // Z
|
|
K_CH39, // X
|
|
K_CH40, // C
|
|
K_CH41, // V
|
|
K_CH42, // B
|
|
K_CH43, // N
|
|
K_CH44, // M
|
|
K_CH45, // ,
|
|
K_CH46, // .
|
|
K_CH47, // /
|
|
K_CH48, // Space
|
|
// Unknown key
|
|
K_Unknown,
|
|
};
|
|
|
|
struct [[gnu::packed]] KeyboardPacket
|
|
{
|
|
u8 key;
|
|
bool released;
|
|
};
|
|
|
|
static_assert(sizeof(KeyboardPacket) == 2);
|
|
}
|