151 lines
5.5 KiB
C++
151 lines
5.5 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
|
|
namespace maple::ft6::scan_code {
|
|
constexpr uint32_t no_operation = 0x0;
|
|
constexpr uint32_t rollover_error = 0x1;
|
|
constexpr uint32_t post_fail = 0x2;
|
|
constexpr uint32_t undefined_error = 0x3;
|
|
constexpr uint32_t a_A = 0x4;
|
|
constexpr uint32_t b_B = 0x5;
|
|
constexpr uint32_t c_C = 0x6;
|
|
constexpr uint32_t d_D = 0x7;
|
|
constexpr uint32_t e_E = 0x8;
|
|
constexpr uint32_t f_F = 0x9;
|
|
constexpr uint32_t g_G = 0xa;
|
|
constexpr uint32_t h_H = 0xb;
|
|
constexpr uint32_t i_I = 0xc;
|
|
constexpr uint32_t j_J = 0xd;
|
|
constexpr uint32_t k_K = 0xe;
|
|
constexpr uint32_t l_L = 0xf;
|
|
constexpr uint32_t m_M = 0x10;
|
|
constexpr uint32_t n_N = 0x11;
|
|
constexpr uint32_t o_O = 0x12;
|
|
constexpr uint32_t p_P = 0x13;
|
|
constexpr uint32_t q_Q = 0x14;
|
|
constexpr uint32_t r_R = 0x15;
|
|
constexpr uint32_t s_S = 0x16;
|
|
constexpr uint32_t t_T = 0x17;
|
|
constexpr uint32_t u_U = 0x18;
|
|
constexpr uint32_t v_V = 0x19;
|
|
constexpr uint32_t w_W = 0x1a;
|
|
constexpr uint32_t x_X = 0x1b;
|
|
constexpr uint32_t y_Y = 0x1c;
|
|
constexpr uint32_t z_Z = 0x1d;
|
|
constexpr uint32_t _1_exclam = 0x1e;
|
|
constexpr uint32_t _2_at = 0x1f;
|
|
constexpr uint32_t _3_numbersign = 0x20;
|
|
constexpr uint32_t _4_dollar = 0x21;
|
|
constexpr uint32_t _5_percent = 0x22;
|
|
constexpr uint32_t _6_asciicircum = 0x23;
|
|
constexpr uint32_t _7_ampersand = 0x24;
|
|
constexpr uint32_t _8_asterisk = 0x25;
|
|
constexpr uint32_t _9_parenleft = 0x26;
|
|
constexpr uint32_t _0_parenright = 0x27;
|
|
constexpr uint32_t _return = 0x28;
|
|
constexpr uint32_t esc = 0x29;
|
|
constexpr uint32_t backspace = 0x2a;
|
|
constexpr uint32_t tab = 0x2b;
|
|
constexpr uint32_t spacebar = 0x2c;
|
|
constexpr uint32_t minus_underscore = 0x2d;
|
|
constexpr uint32_t equal_plus = 0x2e;
|
|
constexpr uint32_t bracketleft_braceleft = 0x2f;
|
|
constexpr uint32_t bracketright_braceright = 0x30;
|
|
constexpr uint32_t backslash_bar = 0x31;
|
|
constexpr uint32_t iso_numbersign_tilde = 0x32;
|
|
constexpr uint32_t semicolon_colon = 0x33;
|
|
constexpr uint32_t apostrophe_quotedbl = 0x34;
|
|
constexpr uint32_t grave_asciitilde = 0x35;
|
|
constexpr uint32_t comma_less = 0x36;
|
|
constexpr uint32_t period_greater = 0x37;
|
|
constexpr uint32_t slash_question = 0x38;
|
|
constexpr uint32_t caps_lock = 0x39;
|
|
constexpr uint32_t F1 = 0x3a;
|
|
constexpr uint32_t F2 = 0x3b;
|
|
constexpr uint32_t F3 = 0x3c;
|
|
constexpr uint32_t F4 = 0x3d;
|
|
constexpr uint32_t F5 = 0x3e;
|
|
constexpr uint32_t F6 = 0x3f;
|
|
constexpr uint32_t F7 = 0x40;
|
|
constexpr uint32_t F8 = 0x41;
|
|
constexpr uint32_t F9 = 0x42;
|
|
constexpr uint32_t F10 = 0x43;
|
|
constexpr uint32_t F11 = 0x44;
|
|
constexpr uint32_t F12 = 0x45;
|
|
constexpr uint32_t print_screen = 0x46;
|
|
constexpr uint32_t scroll_lock = 0x47;
|
|
constexpr uint32_t pause = 0x48;
|
|
constexpr uint32_t insert = 0x49;
|
|
constexpr uint32_t home = 0x4a;
|
|
constexpr uint32_t page_up = 0x4b;
|
|
constexpr uint32_t _delete = 0x4c;
|
|
constexpr uint32_t end = 0x4d;
|
|
constexpr uint32_t page_down = 0x4e;
|
|
constexpr uint32_t right_arrow = 0x4f;
|
|
constexpr uint32_t left_arrow = 0x50;
|
|
constexpr uint32_t down_arrow = 0x51;
|
|
constexpr uint32_t up_arrow = 0x52;
|
|
constexpr uint32_t last_printable = 0x38;
|
|
|
|
static const uint8_t code_point[last_printable + 1][2] = {
|
|
[scan_code::no_operation] = { 0, 0 },
|
|
[scan_code::rollover_error] = { 0, 0 },
|
|
[scan_code::post_fail] = { 0, 0 },
|
|
[scan_code::undefined_error] = { 0, 0 },
|
|
[scan_code::a_A] = { 'a', 'A' },
|
|
[scan_code::b_B] = { 'b', 'B' },
|
|
[scan_code::c_C] = { 'c', 'C' },
|
|
[scan_code::d_D] = { 'd', 'D' },
|
|
[scan_code::e_E] = { 'e', 'E' },
|
|
[scan_code::f_F] = { 'f', 'F' },
|
|
[scan_code::g_G] = { 'g', 'G' },
|
|
[scan_code::h_H] = { 'h', 'H' },
|
|
[scan_code::i_I] = { 'i', 'I' },
|
|
[scan_code::j_J] = { 'j', 'J' },
|
|
[scan_code::k_K] = { 'k', 'K' },
|
|
[scan_code::l_L] = { 'l', 'L' },
|
|
[scan_code::m_M] = { 'm', 'M' },
|
|
[scan_code::n_N] = { 'n', 'N' },
|
|
[scan_code::o_O] = { 'o', 'O' },
|
|
[scan_code::p_P] = { 'p', 'P' },
|
|
[scan_code::q_Q] = { 'q', 'Q' },
|
|
[scan_code::r_R] = { 'r', 'R' },
|
|
[scan_code::s_S] = { 's', 'S' },
|
|
[scan_code::t_T] = { 't', 'T' },
|
|
[scan_code::u_U] = { 'u', 'U' },
|
|
[scan_code::v_V] = { 'v', 'V' },
|
|
[scan_code::w_W] = { 'w', 'W' },
|
|
[scan_code::x_X] = { 'x', 'X' },
|
|
[scan_code::y_Y] = { 'y', 'Y' },
|
|
[scan_code::z_Z] = { 'z', 'Z' },
|
|
[scan_code::_1_exclam] = { '1', '!' },
|
|
[scan_code::_2_at] = { '2', '@' },
|
|
[scan_code::_3_numbersign] = { '3', '#' },
|
|
[scan_code::_4_dollar] = { '4', '$' },
|
|
[scan_code::_5_percent] = { '5', '%' },
|
|
[scan_code::_6_asciicircum] = { '6', '^' },
|
|
[scan_code::_7_ampersand] = { '7', '&' },
|
|
[scan_code::_8_asterisk] = { '8', '*' },
|
|
[scan_code::_9_parenleft] = { '9', '(' },
|
|
[scan_code::_0_parenright] = { '0', ')' },
|
|
[scan_code::_return] = { 0, 0 },
|
|
[scan_code::esc] = { 0, 0 },
|
|
[scan_code::backspace] = { 0, 0 },
|
|
[scan_code::tab] = { 0, 0 },
|
|
[scan_code::spacebar] = { ' ', ' ' },
|
|
[scan_code::minus_underscore] = { '-', '_' },
|
|
[scan_code::equal_plus] = { '=', '+' },
|
|
[scan_code::bracketleft_braceleft] = { '[', '{' },
|
|
[scan_code::bracketright_braceright] = { ']', '}' },
|
|
[scan_code::backslash_bar] = { '\\', '|' },
|
|
[scan_code::iso_numbersign_tilde] = { '#', '~' },
|
|
[scan_code::semicolon_colon] = { ';', ':' },
|
|
[scan_code::apostrophe_quotedbl] = { '\'', '"' },
|
|
[scan_code::grave_asciitilde] = { '\'', '~' },
|
|
[scan_code::comma_less] = { ',', '<' },
|
|
[scan_code::period_greater] = { '.', '>' },
|
|
[scan_code::slash_question] = { '/', '?' },
|
|
};
|
|
}
|