131 lines
5.4 KiB
C
131 lines
5.4 KiB
C
/* Keyboard scancode mapping from SDL to Mac codes
|
|
*
|
|
* From Mini vMac's OSGLUSDL.c, which is Copyright (C) 2012 Paul
|
|
* C. Pratt, Manuel Alfayate, and released under GPLv2.
|
|
*/
|
|
|
|
#ifndef KEYMAP_SDL_H
|
|
#define KEYMAP_SDL_H
|
|
|
|
#include "keymap.h"
|
|
|
|
static inline int SDLScan2MacKeyCode(SDL_Scancode i)
|
|
{
|
|
int v = MKC_None;
|
|
|
|
switch (i) {
|
|
case SDL_SCANCODE_BACKSPACE: v = MKC_BackSpace; break;
|
|
case SDL_SCANCODE_TAB: v = MKC_Tab; break;
|
|
case SDL_SCANCODE_CLEAR: v = MKC_Clear; break;
|
|
case SDL_SCANCODE_RETURN: v = MKC_Return; break;
|
|
case SDL_SCANCODE_PAUSE: v = MKC_Pause; break;
|
|
case SDL_SCANCODE_ESCAPE: v = MKC_Escape; break;
|
|
case SDL_SCANCODE_SPACE: v = MKC_Space; break;
|
|
case SDL_SCANCODE_APOSTROPHE: v = MKC_SingleQuote; break;
|
|
case SDL_SCANCODE_COMMA: v = MKC_Comma; break;
|
|
case SDL_SCANCODE_MINUS: v = MKC_Minus; break;
|
|
case SDL_SCANCODE_PERIOD: v = MKC_Period; break;
|
|
case SDL_SCANCODE_SLASH: v = MKC_Slash; break;
|
|
case SDL_SCANCODE_0: v = MKC_0; break;
|
|
case SDL_SCANCODE_1: v = MKC_1; break;
|
|
case SDL_SCANCODE_2: v = MKC_2; break;
|
|
case SDL_SCANCODE_3: v = MKC_3; break;
|
|
case SDL_SCANCODE_4: v = MKC_4; break;
|
|
case SDL_SCANCODE_5: v = MKC_5; break;
|
|
case SDL_SCANCODE_6: v = MKC_6; break;
|
|
case SDL_SCANCODE_7: v = MKC_7; break;
|
|
case SDL_SCANCODE_8: v = MKC_8; break;
|
|
case SDL_SCANCODE_9: v = MKC_9; break;
|
|
case SDL_SCANCODE_SEMICOLON: v = MKC_SemiColon; break;
|
|
case SDL_SCANCODE_EQUALS: v = MKC_Equal; break;
|
|
|
|
case SDL_SCANCODE_LEFTBRACKET: v = MKC_LeftBracket; break;
|
|
case SDL_SCANCODE_BACKSLASH: v = MKC_BackSlash; break;
|
|
case SDL_SCANCODE_RIGHTBRACKET: v = MKC_RightBracket; break;
|
|
case SDL_SCANCODE_GRAVE: v = MKC_Grave; break;
|
|
|
|
case SDL_SCANCODE_A: v = MKC_A; break;
|
|
case SDL_SCANCODE_B: v = MKC_B; break;
|
|
case SDL_SCANCODE_C: v = MKC_C; break;
|
|
case SDL_SCANCODE_D: v = MKC_D; break;
|
|
case SDL_SCANCODE_E: v = MKC_E; break;
|
|
case SDL_SCANCODE_F: v = MKC_F; break;
|
|
case SDL_SCANCODE_G: v = MKC_G; break;
|
|
case SDL_SCANCODE_H: v = MKC_H; break;
|
|
case SDL_SCANCODE_I: v = MKC_I; break;
|
|
case SDL_SCANCODE_J: v = MKC_J; break;
|
|
case SDL_SCANCODE_K: v = MKC_K; break;
|
|
case SDL_SCANCODE_L: v = MKC_L; break;
|
|
case SDL_SCANCODE_M: v = MKC_M; break;
|
|
case SDL_SCANCODE_N: v = MKC_N; break;
|
|
case SDL_SCANCODE_O: v = MKC_O; break;
|
|
case SDL_SCANCODE_P: v = MKC_P; break;
|
|
case SDL_SCANCODE_Q: v = MKC_Q; break;
|
|
case SDL_SCANCODE_R: v = MKC_R; break;
|
|
case SDL_SCANCODE_S: v = MKC_S; break;
|
|
case SDL_SCANCODE_T: v = MKC_T; break;
|
|
case SDL_SCANCODE_U: v = MKC_U; break;
|
|
case SDL_SCANCODE_V: v = MKC_V; break;
|
|
case SDL_SCANCODE_W: v = MKC_W; break;
|
|
case SDL_SCANCODE_X: v = MKC_X; break;
|
|
case SDL_SCANCODE_Y: v = MKC_Y; break;
|
|
case SDL_SCANCODE_Z: v = MKC_Z; break;
|
|
|
|
case SDL_SCANCODE_KP_0: v = MKC_KP0; break;
|
|
case SDL_SCANCODE_KP_1: v = MKC_KP1; break;
|
|
case SDL_SCANCODE_KP_2: v = MKC_KP2; break;
|
|
case SDL_SCANCODE_KP_3: v = MKC_KP3; break;
|
|
case SDL_SCANCODE_KP_4: v = MKC_KP4; break;
|
|
case SDL_SCANCODE_KP_5: v = MKC_KP5; break;
|
|
case SDL_SCANCODE_KP_6: v = MKC_KP6; break;
|
|
case SDL_SCANCODE_KP_7: v = MKC_KP7; break;
|
|
case SDL_SCANCODE_KP_8: v = MKC_KP8; break;
|
|
case SDL_SCANCODE_KP_9: v = MKC_KP9; break;
|
|
|
|
case SDL_SCANCODE_KP_PERIOD: v = MKC_Decimal; break;
|
|
case SDL_SCANCODE_KP_DIVIDE: v = MKC_KPDevide; break;
|
|
case SDL_SCANCODE_KP_MULTIPLY: v = MKC_KPMultiply; break;
|
|
case SDL_SCANCODE_KP_MINUS: v = MKC_KPSubtract; break;
|
|
case SDL_SCANCODE_KP_PLUS: v = MKC_KPAdd; break;
|
|
case SDL_SCANCODE_KP_ENTER: v = MKC_Enter; break;
|
|
case SDL_SCANCODE_KP_EQUALS: v = MKC_KPEqual; break;
|
|
|
|
case SDL_SCANCODE_UP: v = MKC_Up; break;
|
|
case SDL_SCANCODE_DOWN: v = MKC_Down; break;
|
|
case SDL_SCANCODE_RIGHT: v = MKC_Right; break;
|
|
case SDL_SCANCODE_LEFT: v = MKC_Left; break;
|
|
case SDL_SCANCODE_INSERT: v = MKC_Help; break;
|
|
case SDL_SCANCODE_HOME: v = MKC_Home; break;
|
|
case SDL_SCANCODE_END: v = MKC_End; break;
|
|
case SDL_SCANCODE_PAGEUP: v = MKC_PageUp; break;
|
|
case SDL_SCANCODE_PAGEDOWN: v = MKC_PageDown; break;
|
|
/* FIXME, case SDL_SCANCODE_CAPSLOCK and MKC_formac_CapsLock */
|
|
case SDL_SCANCODE_RSHIFT:
|
|
case SDL_SCANCODE_LSHIFT: v = MKC_Shift; break;
|
|
case SDL_SCANCODE_RCTRL:
|
|
case SDL_SCANCODE_LCTRL: v = MKC_Control; break;
|
|
case SDL_SCANCODE_RALT:
|
|
case SDL_SCANCODE_LALT: v = MKC_Option; break;
|
|
case SDL_SCANCODE_RGUI:
|
|
case SDL_SCANCODE_LGUI: v = MKC_Command; break;
|
|
|
|
case SDL_SCANCODE_KP_A: v = MKC_A; break;
|
|
case SDL_SCANCODE_KP_B: v = MKC_B; break;
|
|
case SDL_SCANCODE_KP_C: v = MKC_C; break;
|
|
case SDL_SCANCODE_KP_D: v = MKC_D; break;
|
|
case SDL_SCANCODE_KP_E: v = MKC_E; break;
|
|
case SDL_SCANCODE_KP_F: v = MKC_F; break;
|
|
|
|
case SDL_SCANCODE_KP_BACKSPACE: v = MKC_BackSpace; break;
|
|
case SDL_SCANCODE_KP_CLEAR: v = MKC_Clear; break;
|
|
case SDL_SCANCODE_KP_COMMA: v = MKC_Comma; break;
|
|
case SDL_SCANCODE_KP_DECIMAL: v = MKC_Decimal; break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return v;
|
|
}
|
|
|
|
#endif
|