src/events/scancodes_windows.h
author Jørgen P. Tjernø <jorgen@valvesoftware.com>
Mon, 25 Feb 2013 16:52:42 -0800
changeset 6922 91d157d9f283
parent 6885 700f1b25f77f
child 6925 59fedfb8faaf
permissions -rw-r--r--
sdl2
- change the windows scancode logic to use the scan code value in lparam rather than VK's to get a stable scancode value across different KB layouts
slouken@2308
     1
/*
slouken@5535
     2
  Simple DirectMedia Layer
slouken@6885
     3
  Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
slouken@2308
     4
slouken@5535
     5
  This software is provided 'as-is', without any express or implied
slouken@5535
     6
  warranty.  In no event will the authors be held liable for any damages
slouken@5535
     7
  arising from the use of this software.
slouken@2308
     8
slouken@5535
     9
  Permission is granted to anyone to use this software for any purpose,
slouken@5535
    10
  including commercial applications, and to alter it and redistribute it
slouken@5535
    11
  freely, subject to the following restrictions:
slouken@2308
    12
slouken@5535
    13
  1. The origin of this software must not be misrepresented; you must not
slouken@5535
    14
     claim that you wrote the original software. If you use this software
slouken@5535
    15
     in a product, an acknowledgment in the product documentation would be
slouken@5535
    16
     appreciated but is not required.
slouken@5535
    17
  2. Altered source versions must be plainly marked as such, and must not be
slouken@5535
    18
     misrepresented as being the original software.
slouken@5535
    19
  3. This notice may not be removed or altered from any source distribution.
slouken@2308
    20
*/
slouken@2308
    21
#include "../../include/SDL_scancode.h"
slouken@2308
    22
slouken@2308
    23
/* Win32 virtual key code to SDL scancode mapping table
slouken@2308
    24
   Sources:
slouken@2308
    25
   - msdn.microsoft.com
slouken@2308
    26
*/
slouken@2308
    27
/* *INDENT-OFF* */
jorgen@6922
    28
// this maps non-translated keyboard scan codes to engine key codes
jorgen@6922
    29
// Google for 'Keyboard Scan Code Specification'
jorgen@6922
    30
static const SDL_Scancode windows_scancode_table[] = 
jorgen@6922
    31
{ 
jorgen@6922
    32
	//	0						1							2						3						4							5							6						7 
jorgen@6922
    33
	//	8						9							A						B						C							D							E						F 
jorgen@6922
    34
	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_ESCAPE,		SDL_SCANCODE_1,			SDL_SCANCODE_2,				SDL_SCANCODE_3,			SDL_SCANCODE_4,				SDL_SCANCODE_5,			SDL_SCANCODE_6,			// 0
jorgen@6922
    35
	SDL_SCANCODE_7,				SDL_SCANCODE_8,				SDL_SCANCODE_9,			SDL_SCANCODE_0,				SDL_SCANCODE_MINUS,		SDL_SCANCODE_EQUALS,		SDL_SCANCODE_BACKSPACE,	SDL_SCANCODE_TAB,		// 0 
jorgen@6922
    36
jorgen@6922
    37
	SDL_SCANCODE_Q,				SDL_SCANCODE_W,			SDL_SCANCODE_E,				SDL_SCANCODE_R,				SDL_SCANCODE_T,			SDL_SCANCODE_Y,				SDL_SCANCODE_U,			SDL_SCANCODE_I,			// 1
jorgen@6922
    38
	SDL_SCANCODE_O,				SDL_SCANCODE_P,			SDL_SCANCODE_LEFTBRACKET,	SDL_SCANCODE_RIGHTBRACKET,	SDL_SCANCODE_RETURN,	SDL_SCANCODE_LCTRL,			SDL_SCANCODE_A,			SDL_SCANCODE_S,			// 1 
jorgen@6922
    39
jorgen@6922
    40
	SDL_SCANCODE_D,				SDL_SCANCODE_F,			SDL_SCANCODE_G,				SDL_SCANCODE_H,				SDL_SCANCODE_J,			SDL_SCANCODE_K,				SDL_SCANCODE_L,			SDL_SCANCODE_SEMICOLON,	// 2 
jorgen@6922
    41
	SDL_SCANCODE_APOSTROPHE,	SDL_SCANCODE_GRAVE,		SDL_SCANCODE_LSHIFT,		SDL_SCANCODE_BACKSLASH,		SDL_SCANCODE_Z,			SDL_SCANCODE_X,				SDL_SCANCODE_C,			SDL_SCANCODE_V,			// 2 
jorgen@6922
    42
jorgen@6922
    43
	SDL_SCANCODE_B,				SDL_SCANCODE_N,			SDL_SCANCODE_M,				SDL_SCANCODE_COMMA,			SDL_SCANCODE_PERIOD,	SDL_SCANCODE_SLASH,			SDL_SCANCODE_RSHIFT,	SDL_SCANCODE_PRINTSCREEN,// 3
jorgen@6922
    44
	SDL_SCANCODE_LALT,			SDL_SCANCODE_SPACE,		SDL_SCANCODE_CAPSLOCK,		SDL_SCANCODE_F1,			SDL_SCANCODE_F2,		SDL_SCANCODE_F3,			SDL_SCANCODE_F4,		SDL_SCANCODE_F5,			// 3 
jorgen@6922
    45
jorgen@6922
    46
	SDL_SCANCODE_F6,			SDL_SCANCODE_F7,		SDL_SCANCODE_F8,			SDL_SCANCODE_F9,			SDL_SCANCODE_F10,		SDL_SCANCODE_NUMLOCKCLEAR,	SDL_SCANCODE_SCROLLLOCK,SDL_SCANCODE_HOME,		// 4
jorgen@6922
    47
	SDL_SCANCODE_UP,			SDL_SCANCODE_PAGEUP,	SDL_SCANCODE_KP_MINUS,		SDL_SCANCODE_LEFT,			SDL_SCANCODE_KP_5,		SDL_SCANCODE_RIGHT,			SDL_SCANCODE_KP_PLUS,	SDL_SCANCODE_END,		// 4 
jorgen@6922
    48
jorgen@6922
    49
	SDL_SCANCODE_DOWN,			SDL_SCANCODE_PAGEDOWN,	SDL_SCANCODE_INSERT,		SDL_SCANCODE_DELETE,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_F11,		// 5
jorgen@6922
    50
	SDL_SCANCODE_F12,			SDL_SCANCODE_PAUSE,		SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_LGUI,			SDL_SCANCODE_RGUI,		SDL_SCANCODE_APPLICATION,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN,		// 5
jorgen@6922
    51
jorgen@6922
    52
	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN,		// 6
jorgen@6922
    53
	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN,		// 6 
jorgen@6922
    54
	
jorgen@6922
    55
	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN,		// 7
jorgen@6922
    56
	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN,		SDL_SCANCODE_UNKNOWN,	SDL_SCANCODE_UNKNOWN		// 7 
slouken@2308
    57
};
jorgen@6922
    58
slouken@2308
    59
/* *INDENT-ON* */