Event sdl_key(SDL_Keycode code, SDL_Keymod mod) { // sdl values for non printable keys if (code & (1 << 30)) { return Event(event_class::OTHER, code, sdl_mod(mod)); } else { event_class ec; char c = (code & 0xff); if (isdigit(c)) { ec = event_class::DIGIT; } else if (isalpha(c)) { ec = event_class::ALPHA; } else if (isprint(c)) { ec = event_class::PRINT; } else { ec = event_class::NONPRINT; } return Event(ec, code, sdl_mod(mod)); } }
modset_t InputManager::get_mod() const { SDL_Keymod mod = SDL_GetModState(); return sdl_mod(mod); }