From c98c07fc7da05df3c53fde98ff95b1fb959e1213 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 29 Dec 2016 17:00:54 +0300 Subject: Add constexpr into keyboardconfig. --- src/input/keyboardconfig.h | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) (limited to 'src/input/keyboardconfig.h') diff --git a/src/input/keyboardconfig.h b/src/input/keyboardconfig.h index ad5e89ad8..a14afd200 100644 --- a/src/input/keyboardconfig.h +++ b/src/input/keyboardconfig.h @@ -32,14 +32,13 @@ _SDL_stdinc_h #ifdef USE_SDL2 #pragma GCC diagnostic pop #endif // USE_SDL2 +#include #include #include "sdlshared.h" #include "events/inputevent.h" -union SDL_Event; - class KeyboardConfig final { public: @@ -80,9 +79,32 @@ class KeyboardConfig final static std::string getKeyShortString(const std::string &key) A_WARN_UNUSED; - static SDLKey getKeyFromEvent(const SDL_Event &event) A_WARN_UNUSED; + constexpr static SDLKey getKeyFromEvent(const SDL_Event &event) + A_WARN_UNUSED + { +#ifdef USE_SDL2 + return event.key.keysym.scancode; +#else // USE_SDL2 + + return event.key.keysym.sym; +#endif // USE_SDL2 + } + + constexpr static int getKeyValueFromEvent(const SDL_Event &event) + A_WARN_UNUSED + { +#ifdef USE_SDL2 + return event.key.keysym.scancode; +#else // USE_SDL2 + + if (event.key.keysym.sym) + return CAST_S32(event.key.keysym.sym); + else if (event.key.keysym.scancode > 1) + return -event.key.keysym.scancode; + return 0; +#endif // USE_SDL2 + } - static int getKeyValueFromEvent(const SDL_Event &event) A_WARN_UNUSED; KeysVector *getActionVector(const SDL_Event &event) A_WARN_UNUSED; -- cgit v1.2.3-70-g09d2