MCPcopy Create free account
hub / github.com/RetroAchievements/RALibretro / WindowsScanCodeToSDLScanCode

Function WindowsScanCodeToSDLScanCode

src/KeyBinds.cpp:1404–1479  ·  view source on GitHub ↗

subset of method here: http://hg.libsdl.org/SDL/file/131ea7dcc225/src/video/windows/SDL_windowsevents.c

Source from the content-addressed store, hash-verified

1402
1403// subset of method here: http://hg.libsdl.org/SDL/file/131ea7dcc225/src/video/windows/SDL_windowsevents.c
1404static SDL_Scancode WindowsScanCodeToSDLScanCode(LPARAM lparam, WPARAM wparam)
1405{
1406 switch (wparam)
1407 {
1408 case VK_PAUSE: return SDL_SCANCODE_PAUSE;
1409 case VK_NUMLOCK: return SDL_SCANCODE_NUMLOCKCLEAR;
1410 }
1411
1412 int nScanCode = (lparam >> 16) & 0xFF;
1413 SDL_Scancode code = (nScanCode <= 127) ? windows_scancode_table[nScanCode] : SDL_SCANCODE_UNKNOWN;
1414
1415 if (lparam & (1 << 24))
1416 {
1417 switch (code) {
1418 case SDL_SCANCODE_RETURN:
1419 code = SDL_SCANCODE_KP_ENTER;
1420 break;
1421 case SDL_SCANCODE_LALT:
1422 code = SDL_SCANCODE_RALT;
1423 break;
1424 case SDL_SCANCODE_LCTRL:
1425 code = SDL_SCANCODE_RCTRL;
1426 break;
1427 case SDL_SCANCODE_SLASH:
1428 code = SDL_SCANCODE_KP_DIVIDE;
1429 break;
1430 case SDL_SCANCODE_CAPSLOCK:
1431 code = SDL_SCANCODE_KP_PLUS;
1432 break;
1433 default:
1434 break;
1435 }
1436 }
1437 else
1438 {
1439 switch (code) {
1440 case SDL_SCANCODE_HOME:
1441 code = SDL_SCANCODE_KP_7;
1442 break;
1443 case SDL_SCANCODE_UP:
1444 code = SDL_SCANCODE_KP_8;
1445 break;
1446 case SDL_SCANCODE_PAGEUP:
1447 code = SDL_SCANCODE_KP_9;
1448 break;
1449 case SDL_SCANCODE_LEFT:
1450 code = SDL_SCANCODE_KP_4;
1451 break;
1452 case SDL_SCANCODE_RIGHT:
1453 code = SDL_SCANCODE_KP_6;
1454 break;
1455 case SDL_SCANCODE_END:
1456 code = SDL_SCANCODE_KP_1;
1457 break;
1458 case SDL_SCANCODE_DOWN:
1459 code = SDL_SCANCODE_KP_2;
1460 break;
1461 case SDL_SCANCODE_PAGEDOWN:

Callers 1

showMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected