1
0
mirror of synced 2025-02-11 16:22:59 +01:00

239 lines
14 KiB
C++

#include <hex/helpers/keys.hpp>
#include <GLFW/glfw3.h>
Keys scanCodeToKey(int scanCode) {
switch (scanCode) {
case GLFW_KEY_SPACE: return Keys::Space;
case GLFW_KEY_APOSTROPHE: return Keys::Apostrophe;
case GLFW_KEY_COMMA: return Keys::Comma;
case GLFW_KEY_MINUS: return Keys::Minus;
case GLFW_KEY_PERIOD: return Keys::Period;
case GLFW_KEY_SLASH: return Keys::Slash;
case GLFW_KEY_0: return Keys::Num0;
case GLFW_KEY_1: return Keys::Num1;
case GLFW_KEY_2: return Keys::Num2;
case GLFW_KEY_3: return Keys::Num3;
case GLFW_KEY_4: return Keys::Num4;
case GLFW_KEY_5: return Keys::Num5;
case GLFW_KEY_6: return Keys::Num6;
case GLFW_KEY_7: return Keys::Num7;
case GLFW_KEY_8: return Keys::Num8;
case GLFW_KEY_9: return Keys::Num9;
case GLFW_KEY_SEMICOLON: return Keys::Semicolon;
case GLFW_KEY_EQUAL: return Keys::Equals;
case GLFW_KEY_A: return Keys::A;
case GLFW_KEY_B: return Keys::B;
case GLFW_KEY_C: return Keys::C;
case GLFW_KEY_D: return Keys::D;
case GLFW_KEY_E: return Keys::E;
case GLFW_KEY_F: return Keys::F;
case GLFW_KEY_G: return Keys::G;
case GLFW_KEY_H: return Keys::H;
case GLFW_KEY_I: return Keys::I;
case GLFW_KEY_J: return Keys::J;
case GLFW_KEY_K: return Keys::K;
case GLFW_KEY_L: return Keys::L;
case GLFW_KEY_M: return Keys::M;
case GLFW_KEY_N: return Keys::N;
case GLFW_KEY_O: return Keys::O;
case GLFW_KEY_P: return Keys::P;
case GLFW_KEY_Q: return Keys::Q;
case GLFW_KEY_R: return Keys::R;
case GLFW_KEY_S: return Keys::S;
case GLFW_KEY_T: return Keys::T;
case GLFW_KEY_U: return Keys::U;
case GLFW_KEY_V: return Keys::V;
case GLFW_KEY_W: return Keys::W;
case GLFW_KEY_X: return Keys::X;
case GLFW_KEY_Y: return Keys::Y;
case GLFW_KEY_Z: return Keys::Z;
case GLFW_KEY_LEFT_BRACKET: return Keys::LeftBracket;
case GLFW_KEY_BACKSLASH: return Keys::Backslash;
case GLFW_KEY_RIGHT_BRACKET: return Keys::RightBracket;
case GLFW_KEY_GRAVE_ACCENT: return Keys::GraveAccent;
case GLFW_KEY_WORLD_1: return Keys::World1;
case GLFW_KEY_WORLD_2: return Keys::World2;
case GLFW_KEY_ESCAPE: return Keys::Escape;
case GLFW_KEY_ENTER: return Keys::Enter;
case GLFW_KEY_TAB: return Keys::Tab;
case GLFW_KEY_BACKSPACE: return Keys::Backspace;
case GLFW_KEY_INSERT: return Keys::Insert;
case GLFW_KEY_DELETE: return Keys::Delete;
case GLFW_KEY_RIGHT: return Keys::Right;
case GLFW_KEY_LEFT: return Keys::Left;
case GLFW_KEY_DOWN: return Keys::Down;
case GLFW_KEY_UP: return Keys::Up;
case GLFW_KEY_PAGE_UP: return Keys::PageUp;
case GLFW_KEY_PAGE_DOWN: return Keys::PageDown;
case GLFW_KEY_HOME: return Keys::Home;
case GLFW_KEY_END: return Keys::End;
case GLFW_KEY_CAPS_LOCK: return Keys::CapsLock;
case GLFW_KEY_SCROLL_LOCK: return Keys::ScrollLock;
case GLFW_KEY_NUM_LOCK: return Keys::NumLock;
case GLFW_KEY_PRINT_SCREEN: return Keys::PrintScreen;
case GLFW_KEY_PAUSE: return Keys::Pause;
case GLFW_KEY_F1: return Keys::F1;
case GLFW_KEY_F2: return Keys::F2;
case GLFW_KEY_F3: return Keys::F3;
case GLFW_KEY_F4: return Keys::F4;
case GLFW_KEY_F5: return Keys::F5;
case GLFW_KEY_F6: return Keys::F6;
case GLFW_KEY_F7: return Keys::F7;
case GLFW_KEY_F8: return Keys::F8;
case GLFW_KEY_F9: return Keys::F9;
case GLFW_KEY_F10: return Keys::F10;
case GLFW_KEY_F11: return Keys::F11;
case GLFW_KEY_F12: return Keys::F12;
case GLFW_KEY_F13: return Keys::F13;
case GLFW_KEY_F14: return Keys::F14;
case GLFW_KEY_F15: return Keys::F15;
case GLFW_KEY_F16: return Keys::F16;
case GLFW_KEY_F17: return Keys::F17;
case GLFW_KEY_F18: return Keys::F18;
case GLFW_KEY_F19: return Keys::F19;
case GLFW_KEY_F20: return Keys::F20;
case GLFW_KEY_F21: return Keys::F21;
case GLFW_KEY_F22: return Keys::F22;
case GLFW_KEY_F23: return Keys::F23;
case GLFW_KEY_F24: return Keys::F24;
case GLFW_KEY_F25: return Keys::F25;
case GLFW_KEY_KP_0: return Keys::KeyPad0;
case GLFW_KEY_KP_1: return Keys::KeyPad1;
case GLFW_KEY_KP_2: return Keys::KeyPad2;
case GLFW_KEY_KP_3: return Keys::KeyPad3;
case GLFW_KEY_KP_4: return Keys::KeyPad4;
case GLFW_KEY_KP_5: return Keys::KeyPad5;
case GLFW_KEY_KP_6: return Keys::KeyPad6;
case GLFW_KEY_KP_7: return Keys::KeyPad7;
case GLFW_KEY_KP_8: return Keys::KeyPad8;
case GLFW_KEY_KP_9: return Keys::KeyPad9;
case GLFW_KEY_KP_DECIMAL: return Keys::KeyPadDecimal;
case GLFW_KEY_KP_DIVIDE: return Keys::KeyPadDivide;
case GLFW_KEY_KP_MULTIPLY: return Keys::KeyPadMultiply;
case GLFW_KEY_KP_SUBTRACT: return Keys::KeyPadSubtract;
case GLFW_KEY_KP_ADD: return Keys::KeyPadAdd;
case GLFW_KEY_KP_ENTER: return Keys::KeyPadEnter;
case GLFW_KEY_KP_EQUAL: return Keys::KeyPadEqual;
case GLFW_KEY_MENU: return Keys::Menu;
default: return Keys::Invalid;
}
}
int keyToScanCode(Keys key) {
switch (key) {
case Keys::Space: return GLFW_KEY_SPACE;
case Keys::Apostrophe: return GLFW_KEY_APOSTROPHE;
case Keys::Comma: return GLFW_KEY_COMMA;
case Keys::Minus: return GLFW_KEY_MINUS;
case Keys::Period: return GLFW_KEY_PERIOD;
case Keys::Slash: return GLFW_KEY_SLASH;
case Keys::Num0: return GLFW_KEY_0;
case Keys::Num1: return GLFW_KEY_1;
case Keys::Num2: return GLFW_KEY_2;
case Keys::Num3: return GLFW_KEY_3;
case Keys::Num4: return GLFW_KEY_4;
case Keys::Num5: return GLFW_KEY_5;
case Keys::Num6: return GLFW_KEY_6;
case Keys::Num7: return GLFW_KEY_7;
case Keys::Num8: return GLFW_KEY_8;
case Keys::Num9: return GLFW_KEY_9;
case Keys::Semicolon: return GLFW_KEY_SEMICOLON;
case Keys::Equals: return GLFW_KEY_EQUAL;
case Keys::A: return GLFW_KEY_A;
case Keys::B: return GLFW_KEY_B;
case Keys::C: return GLFW_KEY_C;
case Keys::D: return GLFW_KEY_D;
case Keys::E: return GLFW_KEY_E;
case Keys::F: return GLFW_KEY_F;
case Keys::G: return GLFW_KEY_G;
case Keys::H: return GLFW_KEY_H;
case Keys::I: return GLFW_KEY_I;
case Keys::J: return GLFW_KEY_J;
case Keys::K: return GLFW_KEY_K;
case Keys::L: return GLFW_KEY_L;
case Keys::M: return GLFW_KEY_M;
case Keys::N: return GLFW_KEY_N;
case Keys::O: return GLFW_KEY_O;
case Keys::P: return GLFW_KEY_P;
case Keys::Q: return GLFW_KEY_Q;
case Keys::R: return GLFW_KEY_R;
case Keys::S: return GLFW_KEY_S;
case Keys::T: return GLFW_KEY_T;
case Keys::U: return GLFW_KEY_U;
case Keys::V: return GLFW_KEY_V;
case Keys::W: return GLFW_KEY_W;
case Keys::X: return GLFW_KEY_X;
case Keys::Y: return GLFW_KEY_Y;
case Keys::Z: return GLFW_KEY_Z;
case Keys::LeftBracket: return GLFW_KEY_LEFT_BRACKET;
case Keys::Backslash: return GLFW_KEY_BACKSLASH;
case Keys::RightBracket: return GLFW_KEY_RIGHT_BRACKET;
case Keys::GraveAccent: return GLFW_KEY_GRAVE_ACCENT;
case Keys::World1: return GLFW_KEY_WORLD_1;
case Keys::World2: return GLFW_KEY_WORLD_2;
case Keys::Escape: return GLFW_KEY_ESCAPE;
case Keys::Enter: return GLFW_KEY_ENTER;
case Keys::Tab: return GLFW_KEY_TAB;
case Keys::Backspace: return GLFW_KEY_BACKSPACE;
case Keys::Insert: return GLFW_KEY_INSERT;
case Keys::Delete: return GLFW_KEY_DELETE;
case Keys::Right: return GLFW_KEY_RIGHT;
case Keys::Left: return GLFW_KEY_LEFT;
case Keys::Down: return GLFW_KEY_DOWN;
case Keys::Up: return GLFW_KEY_UP;
case Keys::PageUp: return GLFW_KEY_PAGE_UP;
case Keys::PageDown: return GLFW_KEY_PAGE_DOWN;
case Keys::Home: return GLFW_KEY_HOME;
case Keys::End: return GLFW_KEY_END;
case Keys::CapsLock: return GLFW_KEY_CAPS_LOCK;
case Keys::ScrollLock: return GLFW_KEY_SCROLL_LOCK;
case Keys::NumLock: return GLFW_KEY_NUM_LOCK;
case Keys::PrintScreen: return GLFW_KEY_PRINT_SCREEN;
case Keys::Pause: return GLFW_KEY_PAUSE;
case Keys::F1: return GLFW_KEY_F1;
case Keys::F2: return GLFW_KEY_F2;
case Keys::F3: return GLFW_KEY_F3;
case Keys::F4: return GLFW_KEY_F4;
case Keys::F5: return GLFW_KEY_F5;
case Keys::F6: return GLFW_KEY_F6;
case Keys::F7: return GLFW_KEY_F7;
case Keys::F8: return GLFW_KEY_F8;
case Keys::F9: return GLFW_KEY_F9;
case Keys::F10: return GLFW_KEY_F10;
case Keys::F11: return GLFW_KEY_F11;
case Keys::F12: return GLFW_KEY_F12;
case Keys::F13: return GLFW_KEY_F13;
case Keys::F14: return GLFW_KEY_F14;
case Keys::F15: return GLFW_KEY_F15;
case Keys::F16: return GLFW_KEY_F16;
case Keys::F17: return GLFW_KEY_F17;
case Keys::F18: return GLFW_KEY_F18;
case Keys::F19: return GLFW_KEY_F19;
case Keys::F20: return GLFW_KEY_F20;
case Keys::F21: return GLFW_KEY_F21;
case Keys::F22: return GLFW_KEY_F22;
case Keys::F23: return GLFW_KEY_F23;
case Keys::F24: return GLFW_KEY_F24;
case Keys::F25: return GLFW_KEY_F25;
case Keys::KeyPad0: return GLFW_KEY_KP_0;
case Keys::KeyPad1: return GLFW_KEY_KP_1;
case Keys::KeyPad2: return GLFW_KEY_KP_2;
case Keys::KeyPad3: return GLFW_KEY_KP_3;
case Keys::KeyPad4: return GLFW_KEY_KP_4;
case Keys::KeyPad5: return GLFW_KEY_KP_5;
case Keys::KeyPad6: return GLFW_KEY_KP_6;
case Keys::KeyPad7: return GLFW_KEY_KP_7;
case Keys::KeyPad8: return GLFW_KEY_KP_8;
case Keys::KeyPad9: return GLFW_KEY_KP_9;
case Keys::KeyPadDecimal: return GLFW_KEY_KP_DECIMAL;
case Keys::KeyPadDivide: return GLFW_KEY_KP_DIVIDE;
case Keys::KeyPadMultiply: return GLFW_KEY_KP_MULTIPLY;
case Keys::KeyPadSubtract: return GLFW_KEY_KP_SUBTRACT;
case Keys::KeyPadAdd: return GLFW_KEY_KP_ADD;
case Keys::KeyPadEnter: return GLFW_KEY_KP_ENTER;
case Keys::KeyPadEqual: return GLFW_KEY_KP_EQUAL;
case Keys::Menu: return GLFW_KEY_MENU;
default: return 0;
}
}