Support keycode events in SDL2 backend

This commit is contained in:
Nikita Lisitsa 2023-07-21 01:29:36 +03:00
parent a4a07c0d29
commit f5f094bdc6

View file

@ -24,9 +24,121 @@ namespace psemek::sdl2
}
}
std::optional<app::keycode> keycode(SDL_Keysym)
std::optional<app::keycode> keycode(SDL_Keysym key)
{
return std::nullopt;
switch (key.scancode)
{
case SDL_SCANCODE_A: return app::keycode::A;
case SDL_SCANCODE_B: return app::keycode::B;
case SDL_SCANCODE_C: return app::keycode::C;
case SDL_SCANCODE_D: return app::keycode::D;
case SDL_SCANCODE_E: return app::keycode::E;
case SDL_SCANCODE_F: return app::keycode::F;
case SDL_SCANCODE_G: return app::keycode::G;
case SDL_SCANCODE_H: return app::keycode::H;
case SDL_SCANCODE_I: return app::keycode::I;
case SDL_SCANCODE_J: return app::keycode::J;
case SDL_SCANCODE_K: return app::keycode::K;
case SDL_SCANCODE_L: return app::keycode::L;
case SDL_SCANCODE_M: return app::keycode::M;
case SDL_SCANCODE_N: return app::keycode::N;
case SDL_SCANCODE_O: return app::keycode::O;
case SDL_SCANCODE_P: return app::keycode::P;
case SDL_SCANCODE_Q: return app::keycode::Q;
case SDL_SCANCODE_R: return app::keycode::R;
case SDL_SCANCODE_S: return app::keycode::S;
case SDL_SCANCODE_T: return app::keycode::T;
case SDL_SCANCODE_U: return app::keycode::U;
case SDL_SCANCODE_V: return app::keycode::V;
case SDL_SCANCODE_W: return app::keycode::W;
case SDL_SCANCODE_X: return app::keycode::X;
case SDL_SCANCODE_Y: return app::keycode::Y;
case SDL_SCANCODE_Z: return app::keycode::Z;
case SDL_SCANCODE_1: return app::keycode::NUM_1;
case SDL_SCANCODE_2: return app::keycode::NUM_2;
case SDL_SCANCODE_3: return app::keycode::NUM_3;
case SDL_SCANCODE_4: return app::keycode::NUM_4;
case SDL_SCANCODE_5: return app::keycode::NUM_5;
case SDL_SCANCODE_6: return app::keycode::NUM_6;
case SDL_SCANCODE_7: return app::keycode::NUM_7;
case SDL_SCANCODE_8: return app::keycode::NUM_8;
case SDL_SCANCODE_9: return app::keycode::NUM_9;
case SDL_SCANCODE_0: return app::keycode::NUM_0;
case SDL_SCANCODE_RETURN: return app::keycode::RETURN;
case SDL_SCANCODE_ESCAPE: return app::keycode::ESCAPE;
case SDL_SCANCODE_BACKSPACE: return app::keycode::BACKSPACE;
case SDL_SCANCODE_TAB: return app::keycode::TAB;
case SDL_SCANCODE_SPACE: return app::keycode::SPACE;
case SDL_SCANCODE_MINUS: return app::keycode::MINUS;
case SDL_SCANCODE_EQUALS: return app::keycode::EQUALS;
case SDL_SCANCODE_LEFTBRACKET: return app::keycode::LEFTBRACKET;
case SDL_SCANCODE_RIGHTBRACKET: return app::keycode::RIGHTBRACKET;
case SDL_SCANCODE_BACKSLASH: return app::keycode::BACKSLASH;
case SDL_SCANCODE_NONUSHASH: return app::keycode::NONUSHASH;
case SDL_SCANCODE_SEMICOLON: return app::keycode::SEMICOLON;
case SDL_SCANCODE_APOSTROPHE: return app::keycode::APOSTROPHE;
case SDL_SCANCODE_GRAVE: return app::keycode::GRAVE;
case SDL_SCANCODE_COMMA: return app::keycode::COMMA;
case SDL_SCANCODE_PERIOD: return app::keycode::PERIOD;
case SDL_SCANCODE_SLASH: return app::keycode::SLASH;
case SDL_SCANCODE_CAPSLOCK: return app::keycode::CAPSLOCK;
case SDL_SCANCODE_F1: return app::keycode::F1;
case SDL_SCANCODE_F2: return app::keycode::F2;
case SDL_SCANCODE_F3: return app::keycode::F3;
case SDL_SCANCODE_F4: return app::keycode::F4;
case SDL_SCANCODE_F5: return app::keycode::F5;
case SDL_SCANCODE_F6: return app::keycode::F6;
case SDL_SCANCODE_F7: return app::keycode::F7;
case SDL_SCANCODE_F8: return app::keycode::F8;
case SDL_SCANCODE_F9: return app::keycode::F9;
case SDL_SCANCODE_F10: return app::keycode::F10;
case SDL_SCANCODE_F11: return app::keycode::F11;
case SDL_SCANCODE_F12: return app::keycode::F12;
case SDL_SCANCODE_PRINTSCREEN: return app::keycode::PRINTSCREEN;
case SDL_SCANCODE_SCROLLLOCK: return app::keycode::SCROLLLOCK;
case SDL_SCANCODE_PAUSE: return app::keycode::PAUSE;
case SDL_SCANCODE_INSERT: return app::keycode::INSERT;
case SDL_SCANCODE_HOME: return app::keycode::HOME;
case SDL_SCANCODE_PAGEUP: return app::keycode::PAGEUP;
case SDL_SCANCODE_DELETE: return app::keycode::DELETE;
case SDL_SCANCODE_END: return app::keycode::END;
case SDL_SCANCODE_PAGEDOWN: return app::keycode::PAGEDOWN;
case SDL_SCANCODE_RIGHT: return app::keycode::RIGHT;
case SDL_SCANCODE_LEFT: return app::keycode::LEFT;
case SDL_SCANCODE_DOWN: return app::keycode::DOWN;
case SDL_SCANCODE_UP: return app::keycode::UP;
case SDL_SCANCODE_NUMLOCKCLEAR: return app::keycode::NUMLOCKCLEAR;
case SDL_SCANCODE_KP_DIVIDE: return app::keycode::KP_DIVIDE;
case SDL_SCANCODE_KP_MULTIPLY: return app::keycode::KP_MULTIPLY;
case SDL_SCANCODE_KP_MINUS: return app::keycode::KP_MINUS;
case SDL_SCANCODE_KP_PLUS: return app::keycode::KP_PLUS;
case SDL_SCANCODE_KP_ENTER: return app::keycode::KP_ENTER;
case SDL_SCANCODE_KP_1: return app::keycode::KP_1;
case SDL_SCANCODE_KP_2: return app::keycode::KP_2;
case SDL_SCANCODE_KP_3: return app::keycode::KP_3;
case SDL_SCANCODE_KP_4: return app::keycode::KP_4;
case SDL_SCANCODE_KP_5: return app::keycode::KP_5;
case SDL_SCANCODE_KP_6: return app::keycode::KP_6;
case SDL_SCANCODE_KP_7: return app::keycode::KP_7;
case SDL_SCANCODE_KP_8: return app::keycode::KP_8;
case SDL_SCANCODE_KP_9: return app::keycode::KP_9;
case SDL_SCANCODE_KP_0: return app::keycode::KP_0;
case SDL_SCANCODE_KP_PERIOD: return app::keycode::KP_PERIOD;
case SDL_SCANCODE_APPLICATION: return app::keycode::APPLICATION;
case SDL_SCANCODE_MUTE: return app::keycode::MUTE;
case SDL_SCANCODE_VOLUMEUP: return app::keycode::VOLUMEUP;
case SDL_SCANCODE_VOLUMEDOWN: return app::keycode::VOLUMEDOWN;
case SDL_SCANCODE_LCTRL: return app::keycode::LCTRL;
case SDL_SCANCODE_LSHIFT: return app::keycode::LSHIFT;
case SDL_SCANCODE_LALT: return app::keycode::LALT;
case SDL_SCANCODE_LGUI: return app::keycode::LGUI;
case SDL_SCANCODE_RCTRL: return app::keycode::RCTRL;
case SDL_SCANCODE_RSHIFT: return app::keycode::RSHIFT;
case SDL_SCANCODE_RALT: return app::keycode::RALT;
case SDL_SCANCODE_RGUI: return app::keycode::RGUI;
default:
return std::nullopt;
}
}
}