void translateKeyDownEvent(const SDL_Event& event) { SDL_Keysym keysym = event.key.keysym; // ALT+RETURN = Fullscreen toggle if (keysym.sym == SDLK_RETURN && (keysym.mod & KMOD_LALT)) { PPEvent myEvent(eFullScreen); RaiseEventSerialized(&myEvent); return; } preTranslateKey(keysym); #ifdef DEBUG printf ("DEBUG: Key pressed: VK: %d, SC: %d, Scancode: %d\n", toVK(keysym), toSC(keysym), keysym.sym); #endif pp_uint16 chr[3] = {toVK(keysym), toSC(keysym), keysym.sym}; #ifndef NOT_PC_KB // Hack for azerty keyboards (num keys are shifted, so we use the scancodes) if (stdKb) { if (chr[1] >= 2 && chr[1] <= 10) chr[0] = chr[1] + 47; // 1-9 else if (chr[1] == 11) chr[0] = 48; // 0 } #endif PPEvent myEvent(eKeyDown, &chr, sizeof(chr)); RaiseEventSerialized(&myEvent); }
void translateKeyUpEvent(const SDL_Event& event) { SDL_Keysym keysym = event.key.keysym; preTranslateKey(keysym); pp_uint16 chr[3] = {toVK(keysym), toSC(keysym), keysym.sym}; #ifndef NOT_PC_KB if (stdKb) { if(chr[1] >= 2 && chr[1] <= 10) chr[0] = chr[1] + 47; else if(chr[1] == 11) chr[0] = 48; } #endif PPEvent myEvent(eKeyUp, &chr, sizeof(chr)); RaiseEventSerialized(&myEvent); }
void translateKeyDownEvent(const SDL_Event& event) { SDL_keysym keysym = event.key.keysym; // ALT+RETURN = Fullscreen toggle if (keysym.sym == SDLK_RETURN && (keysym.mod & KMOD_LALT)) { PPEvent myEvent(eFullScreen); RaiseEventSerialized(&myEvent); return; } preTranslateKey(keysym); pp_uint16 character = event.key.keysym.unicode; pp_uint16 chr[3] = {toVK(keysym), toSC(keysym), character}; #ifndef NOT_PC_KB // Hack for azerty keyboards (num keys are shifted, so we use the scancodes) if (stdKb) { if (chr[1] >= 2 && chr[1] <= 10) chr[0] = chr[1] + 47; // 1-9 else if (chr[1] == 11) chr[0] = 48; // 0 } #endif PPEvent myEvent(eKeyDown, &chr, sizeof(chr)); RaiseEventSerialized(&myEvent); if(character == 127) character = VK_BACK; if (character >= 32 && character <= 127) { PPEvent myEvent2(eKeyChar, &character, sizeof(character)); RaiseEventSerialized(&myEvent2); } }