[Scummvm-git-logs] scummvm master -> 9fc24522d7bcfd4ad8c78ef6e34a4d69a2f55a87

bluegr bluegr at gmail.com
Tue Jan 21 01:28:26 UTC 2020


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
9fc24522d7 BACKENDS: Add more keycodes


Commit: 9fc24522d7bcfd4ad8c78ef6e34a4d69a2f55a87
    https://github.com/scummvm/scummvm/commit/9fc24522d7bcfd4ad8c78ef6e34a4d69a2f55a87
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2020-01-21T03:28:22+02:00

Commit Message:
BACKENDS: Add more keycodes

Changed paths:
    backends/events/androidsdl/androidsdl-events.cpp
    backends/events/sdl/sdl-events.cpp
    backends/keymapper/hardware-input.cpp
    backends/platform/android/events.h
    backends/platform/ps2/ps2input.cpp
    common/keyboard.h
    engines/wintermute/base/base_keyboard_state.cpp


diff --git a/backends/events/androidsdl/androidsdl-events.cpp b/backends/events/androidsdl/androidsdl-events.cpp
index 0282b23..dcc1c14 100644
--- a/backends/events/androidsdl/androidsdl-events.cpp
+++ b/backends/events/androidsdl/androidsdl-events.cpp
@@ -86,7 +86,7 @@ int AndroidSdlEventSource::mapKey(SDLKey sdlKey, SDLMod mod, Uint16 unicode) {
 		return key;
 	} else if (key >= 'a' && key <= 'z' && (mod & KMOD_SHIFT)) {
 		return key & ~0x20;
-	} else if (key >= Common::KEYCODE_NUMLOCK && key <= Common::KEYCODE_EURO) {
+	} else if (key >= Common::KEYCODE_NUMLOCK && key < Common::KEYCODE_LAST) {
 		return 0;
 	} else {
 		return key;
diff --git a/backends/events/sdl/sdl-events.cpp b/backends/events/sdl/sdl-events.cpp
index eba4434..e8ea55f 100644
--- a/backends/events/sdl/sdl-events.cpp
+++ b/backends/events/sdl/sdl-events.cpp
@@ -188,7 +188,7 @@ int SdlEventSource::mapKey(SDLKey sdlKey, SDLMod mod, Uint16 unicode) {
 		return unicode;
 	} else if (key >= 'a' && key <= 'z' && (mod & KMOD_SHIFT)) {
 		return key & ~0x20;
-	} else if (key >= Common::KEYCODE_NUMLOCK && key <= Common::KEYCODE_EURO) {
+	} else if (key >= Common::KEYCODE_NUMLOCK && key < Common::KEYCODE_LAST) {
 		return 0;
 	} else {
 		return key;
@@ -444,11 +444,6 @@ Common::KeyCode SdlEventSource::SDLToOSystemKeycode(const SDLKey key) {
 	case SDLK_y: return Common::KEYCODE_y;
 	case SDLK_z: return Common::KEYCODE_z;
 	case SDLK_DELETE: return Common::KEYCODE_DELETE;
-#if SDL_VERSION_ATLEAST(2, 0, 0)
-	case SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_GRAVE): return Common::KEYCODE_TILDE;
-#else
-	case SDLK_WORLD_16: return Common::KEYCODE_TILDE;
-#endif
 	case SDLK_KP0: return Common::KEYCODE_KP0;
 	case SDLK_KP1: return Common::KEYCODE_KP1;
 	case SDLK_KP2: return Common::KEYCODE_KP2;
@@ -506,12 +501,51 @@ Common::KeyCode SdlEventSource::SDLToOSystemKeycode(const SDLKey key) {
 	case SDLK_HELP: return Common::KEYCODE_HELP;
 	case SDLK_PRINT: return Common::KEYCODE_PRINT;
 	case SDLK_SYSREQ: return Common::KEYCODE_SYSREQ;
-#if !SDL_VERSION_ATLEAST(2, 0, 0)
-	case SDLK_BREAK: return Common::KEYCODE_BREAK;
-#endif
 	case SDLK_MENU: return Common::KEYCODE_MENU;
 	case SDLK_POWER: return Common::KEYCODE_POWER;
 	case SDLK_UNDO: return Common::KEYCODE_UNDO;
+#if SDL_VERSION_ATLEAST(2, 0, 0)
+	case SDLK_PERCENT: return Common::KEYCODE_PERCENT;
+	case SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_GRAVE): return Common::KEYCODE_TILDE;
+	case SDLK_F16: return Common::KEYCODE_F16;
+	case SDLK_F17: return Common::KEYCODE_F17;
+	case SDLK_F18: return Common::KEYCODE_F18;
+	case SDLK_SLEEP: return Common::KEYCODE_SLEEP;
+	case SDLK_MUTE: return Common::KEYCODE_MUTE;
+	case SDLK_VOLUMEUP: return Common::KEYCODE_VOLUMEUP;
+	case SDLK_VOLUMEDOWN: return Common::KEYCODE_VOLUMEDOWN;
+	case SDLK_EJECT: return Common::KEYCODE_EJECT;
+	case SDLK_WWW: return Common::KEYCODE_WWW;
+	case SDLK_MAIL: return Common::KEYCODE_MAIL;
+	case SDLK_CALCULATOR: return Common::KEYCODE_CALCULATOR;
+	case SDLK_CUT: return Common::KEYCODE_CUT;
+	case SDLK_COPY: return Common::KEYCODE_COPY;
+	case SDLK_PASTE: return Common::KEYCODE_PASTE;
+	case SDLK_SELECT: return Common::KEYCODE_SELECT;
+	case SDLK_CANCEL: return Common::KEYCODE_CANCEL;
+	case SDLK_AC_SEARCH: return Common::KEYCODE_AC_SEARCH;
+	case SDLK_AC_HOME: return Common::KEYCODE_AC_HOME;
+	case SDLK_AC_BACK: return Common::KEYCODE_AC_BACK;
+	case SDLK_AC_FORWARD: return Common::KEYCODE_AC_FORWARD;
+	case SDLK_AC_STOP: return Common::KEYCODE_AC_STOP;
+	case SDLK_AC_REFRESH: return Common::KEYCODE_AC_REFRESH;
+	case SDLK_AC_BOOKMARKS: return Common::KEYCODE_AC_BOOKMARKS;
+	case SDLK_AUDIONEXT: return Common::KEYCODE_AUDIONEXT;
+	case SDLK_AUDIOPREV: return Common::KEYCODE_AUDIOPREV;
+	case SDLK_AUDIOSTOP: return Common::KEYCODE_AUDIOSTOP;
+	case SDLK_AUDIOPLAY: return Common::KEYCODE_AUDIOPLAYPAUSE;
+	case SDLK_AUDIOMUTE: return Common::KEYCODE_AUDIOMUTE;
+#if SDL_VERSION_ATLEAST(2, 0, 6)
+	case SDLK_AUDIOREWIND: return Common::KEYCODE_AUDIOREWIND;
+	case SDLK_AUDIOFASTFORWARD: return Common::KEYCODE_AUDIOFASTFORWARD;
+#endif
+#else
+	case SDLK_WORLD_16: return Common::KEYCODE_TILDE;
+	case SDLK_BREAK: return Common::KEYCODE_BREAK;
+	case SDLK_LMETA: return Common::KEYCODE_LMETA;
+	case SDLK_RMETA: return Common::KEYCODE_RMETA;
+	case SDLK_EURO: return Common::KEYCODE_EURO;
+#endif
 	default: return Common::KEYCODE_INVALID;
 	}
 }
diff --git a/backends/keymapper/hardware-input.cpp b/backends/keymapper/hardware-input.cpp
index d4b5ff5..9798b76 100644
--- a/backends/keymapper/hardware-input.cpp
+++ b/backends/keymapper/hardware-input.cpp
@@ -40,6 +40,7 @@ static const KeyTableEntry defaultKeys[] = {
 	{"QUOTEDBL", KEYCODE_QUOTEDBL, '"', "\"", false},
 	{"HASH", KEYCODE_HASH, '#', "#", false},
 	{"DOLLAR", KEYCODE_DOLLAR, '$', "$", false},
+	{"PERCENT", KEYCODE_PERCENT, '%', "%", false},
 	{"AMPERSAND", KEYCODE_AMPERSAND, '&', "&", false},
 	{"QUOTE", KEYCODE_QUOTE, '\'', "'", false},
 	{"LEFTPAREN", KEYCODE_LEFTPAREN, '(', "(", false},
@@ -148,6 +149,9 @@ static const KeyTableEntry defaultKeys[] = {
 	{"F13", KEYCODE_F13, 0, "F13", false},
 	{"F14", KEYCODE_F14, 0, "F14", false},
 	{"F15", KEYCODE_F15, 0, "F15", false},
+	{"F16", KEYCODE_F16, 0, "F16", false},
+	{"F17", KEYCODE_F17, 0, "F17", false},
+	{"F18", KEYCODE_F18, 0, "F18", false},
 
 	// Miscellaneous function keys
 	{"HELP", KEYCODE_HELP, 0, "Help", false},
@@ -161,6 +165,45 @@ static const KeyTableEntry defaultKeys[] = {
 	{"EURO", KEYCODE_EURO, 0, "Euro", false},
 		// Atari keyboard has Undo
 	{"UNDO", KEYCODE_UNDO, 0, "Undo", false},
+	{"SLEEP", KEYCODE_SLEEP, 0, "Sleep", false},
+	{"MUTE", KEYCODE_MUTE, 0, "Mute", false},
+	{"EJECT", KEYCODE_EJECT, 0, "Eject", false},
+	{"VOLUMEUP", KEYCODE_VOLUMEUP, 0, "Volume Up", false},
+	{"VOLUMEDOWN", KEYCODE_VOLUMEDOWN, 0, "Volume Down", false},
+	{"LEFTSOFT", KEYCODE_LEFTSOFT, 0, "Left Soft", false},
+	{"RIGHTSOFT", KEYCODE_RIGHTSOFT, 0, "Right Soft", false},
+	{"CALL", KEYCODE_CALL, 0, "Call", false},
+	{"HANGUP", KEYCODE_HANGUP, 0, "Hang up", false},
+	{"CAMERA", KEYCODE_CAMERA, 0, "Camera", false},
+	{"WWW", KEYCODE_WWW, 0, "WWW", false},
+	{"MAIL", KEYCODE_MAIL, 0, "Mail", false},
+	{"CALCULATOR", KEYCODE_CALCULATOR, 0, "Calculator", false},
+	{"CUT", KEYCODE_CUT, 0, "Cut", false},
+	{"COPY", KEYCODE_COPY, 0, "Copy", false},
+	{"PASTE", KEYCODE_PASTE, 0, "Paste", false},
+	{"SELECT", KEYCODE_SELECT, 0, "Select", false},
+	{"CANCEL", KEYCODE_CANCEL, 0, "Cancel", false},
+
+	// Action keys
+	{"AC_SEARCH", KEYCODE_AC_SEARCH, 0, "AC Search", false},
+	{"AC_HOME", KEYCODE_AC_HOME, 0, "AC Home", false},
+	{"AC_BACK", KEYCODE_AC_BACK, 0, "AC Back", false},
+	{"AC_FORWARD", KEYCODE_AC_FORWARD, 0, "AC Forward", false},
+	{"AC_STOP", KEYCODE_AC_STOP, 0, "AC Stop", false},
+	{"AC_REFRESH", KEYCODE_AC_REFRESH, 0, "AC Refresh", false},
+	{"AC_BOOKMARKS", KEYCODE_AC_BOOKMARKS, 0, "AC Bookmarks", false},
+
+	// Audio keys
+	{"AUDIONEXT", KEYCODE_AUDIONEXT, 0, "Audio Next", false},
+	{"AUDIOPREV", KEYCODE_AUDIOPREV, 0, "Audio Previous", false},
+	{"AUDIOSTOP", KEYCODE_AUDIOSTOP, 0, "Audio Stop", false},
+	{"AUDIOPLAY", KEYCODE_AUDIOPLAY, 0, "Audio Play", false},
+	{"AUDIOPAUSE", KEYCODE_AUDIOPAUSE, 0, "Audio Pause", false},
+	{"AUDIOPLAYPAUSE", KEYCODE_AUDIOPLAYPAUSE, 0, "Audio Play/Pause", false},
+	{"AUDIOMUTE", KEYCODE_AUDIOMUTE, 0, "Audio Mute", false},
+	{"AUDIOREWIND", KEYCODE_AUDIOREWIND, 0, "Audio Rewind", false},
+	{"AUDIOFASTFORWARD", KEYCODE_AUDIOFASTFORWARD, 0, "Audio Fast-Forward", false},
+
 	{0, KEYCODE_INVALID, 0, 0, false}
 };
 
diff --git a/backends/platform/android/events.h b/backends/platform/android/events.h
index 4c114ce..826bc80 100644
--- a/backends/platform/android/events.h
+++ b/backends/platform/android/events.h
@@ -145,12 +145,12 @@ enum {
 // map android key codes to our kbd codes
 static const Common::KeyCode jkeymap[] = {
 	Common::KEYCODE_INVALID, // KEYCODE_UNKNOWN
-	Common::KEYCODE_INVALID, // KEYCODE_SOFT_LEFT
-	Common::KEYCODE_INVALID, // KEYCODE_SOFT_RIGHT
-	Common::KEYCODE_INVALID, // KEYCODE_HOME
-	Common::KEYCODE_INVALID, // KEYCODE_BACK
-	Common::KEYCODE_INVALID, // KEYCODE_CALL
-	Common::KEYCODE_INVALID, // KEYCODE_ENDCALL
+	Common::KEYCODE_LEFTSOFT, // KEYCODE_SOFT_LEFT
+	Common::KEYCODE_RIGHTSOFT, // KEYCODE_SOFT_RIGHT
+	Common::KEYCODE_AC_HOME, // KEYCODE_HOME
+	Common::KEYCODE_AC_BACK, // KEYCODE_BACK
+	Common::KEYCODE_CALL, // KEYCODE_CALL
+	Common::KEYCODE_HANGUP, // KEYCODE_ENDCALL
 	Common::KEYCODE_0, // KEYCODE_0
 	Common::KEYCODE_1, // KEYCODE_1
 	Common::KEYCODE_2, // KEYCODE_2
@@ -167,11 +167,11 @@ static const Common::KeyCode jkeymap[] = {
 	Common::KEYCODE_DOWN, // KEYCODE_DPAD_DOWN
 	Common::KEYCODE_LEFT, // KEYCODE_DPAD_LEFT
 	Common::KEYCODE_RIGHT, // KEYCODE_DPAD_RIGHT
-	Common::KEYCODE_INVALID, // KEYCODE_DPAD_CENTER
-	Common::KEYCODE_INVALID, // KEYCODE_VOLUME_UP
-	Common::KEYCODE_INVALID, // KEYCODE_VOLUME_DOWN
-	Common::KEYCODE_INVALID, // KEYCODE_POWER
-	Common::KEYCODE_INVALID, // KEYCODE_CAMERA
+	Common::KEYCODE_SELECT, // KEYCODE_DPAD_CENTER
+	Common::KEYCODE_VOLUMEUP, // KEYCODE_VOLUME_UP
+	Common::KEYCODE_VOLUMEDOWN, // KEYCODE_VOLUME_DOWN
+	Common::KEYCODE_POWER, // KEYCODE_POWER
+	Common::KEYCODE_CAMERA, // KEYCODE_CAMERA
 	Common::KEYCODE_CLEAR, // KEYCODE_CLEAR
 	Common::KEYCODE_a, // KEYCODE_A
 	Common::KEYCODE_b, // KEYCODE_B
@@ -208,8 +208,8 @@ static const Common::KeyCode jkeymap[] = {
 	Common::KEYCODE_TAB, // KEYCODE_TAB
 	Common::KEYCODE_SPACE, // KEYCODE_SPACE
 	Common::KEYCODE_LCTRL, // KEYCODE_SYM
-	Common::KEYCODE_INVALID, // KEYCODE_EXPLORER
-	Common::KEYCODE_INVALID, // KEYCODE_ENVELOPE
+	Common::KEYCODE_WWW, // KEYCODE_EXPLORER
+	Common::KEYCODE_MAIL, // KEYCODE_ENVELOPE
 	Common::KEYCODE_RETURN, // KEYCODE_ENTER
 	Common::KEYCODE_BACKSPACE, // KEYCODE_DEL
 	Common::KEYCODE_BACKQUOTE, // KEYCODE_GRAVE
@@ -228,14 +228,14 @@ static const Common::KeyCode jkeymap[] = {
 	Common::KEYCODE_PLUS, // KEYCODE_PLUS
 	Common::KEYCODE_MENU, // KEYCODE_MENU
 	Common::KEYCODE_INVALID, // KEYCODE_NOTIFICATION
-	Common::KEYCODE_INVALID, // KEYCODE_SEARCH
-	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_PLAY_PAUSE
-	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_STOP
-	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_NEXT
-	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_PREVIOUS
-	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_REWIND
-	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_FAST_FORWARD
-	Common::KEYCODE_INVALID, // KEYCODE_MUTE
+	Common::KEYCODE_AC_SEARCH, // KEYCODE_SEARCH
+	Common::KEYCODE_AUDIOPLAYPAUSE, // KEYCODE_MEDIA_PLAY_PAUSE
+	Common::KEYCODE_AUDIOSTOP, // KEYCODE_MEDIA_STOP
+	Common::KEYCODE_AUDIONEXT, // KEYCODE_MEDIA_NEXT
+	Common::KEYCODE_AUDIOPREV, // KEYCODE_MEDIA_PREVIOUS
+	Common::KEYCODE_AUDIOREWIND, // KEYCODE_MEDIA_REWIND
+	Common::KEYCODE_AUDIOFASTFORWARD, // KEYCODE_MEDIA_FAST_FORWARD
+	Common::KEYCODE_MUTE, // KEYCODE_MUTE
 	Common::KEYCODE_PAGEUP, // KEYCODE_PAGE_UP
 	Common::KEYCODE_PAGEDOWN, // KEYCODE_PAGE_DOWN
 	Common::KEYCODE_INVALID, // KEYCODE_PICTSYMBOLS
@@ -269,11 +269,11 @@ static const Common::KeyCode jkeymap[] = {
 	Common::KEYCODE_HOME, // KEYCODE_MOVE_HOME
 	Common::KEYCODE_END, // KEYCODE_MOVE_END
 	Common::KEYCODE_INSERT, // KEYCODE_INSERT
-	Common::KEYCODE_INVALID, // KEYCODE_FORWARD
-	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_PLAY
-	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_PAUSE
+	Common::KEYCODE_AC_FORWARD, // KEYCODE_FORWARD
+	Common::KEYCODE_AUDIOPLAY, // KEYCODE_MEDIA_PLAY
+	Common::KEYCODE_AUDIOPAUSE, // KEYCODE_MEDIA_PAUSE
 	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_CLOSE
-	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_EJECT
+	Common::KEYCODE_EJECT, // KEYCODE_MEDIA_EJECT
 	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_RECORD
 	Common::KEYCODE_F1, // KEYCODE_F1
 	Common::KEYCODE_F2, // KEYCODE_F2
@@ -318,7 +318,7 @@ static const Common::KeyCode jkeymap[] = {
 	Common::KEYCODE_INVALID, // KEYCODE_WINDOW
 	Common::KEYCODE_INVALID, // KEYCODE_GUIDE
 	Common::KEYCODE_INVALID, // KEYCODE_DVR
-	Common::KEYCODE_INVALID, // KEYCODE_BOOKMARK
+	Common::KEYCODE_AC_BOOKMARKS, // KEYCODE_BOOKMARK
 	Common::KEYCODE_INVALID, // KEYCODE_CAPTIONS
 	Common::KEYCODE_INVALID, // KEYCODE_SETTINGS
 	Common::KEYCODE_INVALID, // KEYCODE_TV_POWER
@@ -354,7 +354,7 @@ static const Common::KeyCode jkeymap[] = {
 	Common::KEYCODE_INVALID, // KEYCODE_CONTACTS
 	Common::KEYCODE_INVALID, // KEYCODE_CALENDAR
 	Common::KEYCODE_INVALID, // KEYCODE_MUSIC
-	Common::KEYCODE_INVALID, // KEYCODE_CALCULATOR
+	Common::KEYCODE_CALCULATOR, // KEYCODE_CALCULATOR
 	Common::KEYCODE_INVALID, // KEYCODE_ZENKAKU_HANKAKU
 	Common::KEYCODE_INVALID, // KEYCODE_EISU
 	Common::KEYCODE_INVALID, // KEYCODE_MUHENKAN
@@ -367,7 +367,7 @@ static const Common::KeyCode jkeymap[] = {
 	Common::KEYCODE_INVALID, // KEYCODE_BRIGHTNESS_DOWN
 	Common::KEYCODE_INVALID, // KEYCODE_BRIGHTNESS_UP
 	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_AUDIO_TRACK
-	Common::KEYCODE_INVALID, // KEYCODE_SLEEP
+	Common::KEYCODE_SLEEP, // KEYCODE_SLEEP
 	Common::KEYCODE_INVALID, // KEYCODE_WAKEUP
 	Common::KEYCODE_INVALID, // KEYCODE_PAIRING
 	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_TOP_MENU
@@ -403,8 +403,27 @@ static const Common::KeyCode jkeymap[] = {
 	Common::KEYCODE_INVALID, // KEYCODE_TV_CONTENTS_MENU
 	Common::KEYCODE_INVALID, // KEYCODE_TV_MEDIA_CONTEXT_MENU
 	Common::KEYCODE_INVALID, // KEYCODE_TV_TIMER_PROGRAMMING
-	Common::KEYCODE_HELP // KEYCODE_HELP
-
+	Common::KEYCODE_HELP, // KEYCODE_HELP
+	Common::KEYCODE_INVALID, // KEYCODE_NAVIGATE_PREVIOUS
+	Common::KEYCODE_INVALID, // KEYCODE_NAVIGATE_NEXT
+	Common::KEYCODE_INVALID, // KEYCODE_NAVIGATE_IN
+	Common::KEYCODE_INVALID, // KEYCODE_NAVIGATE_OUT
+	Common::KEYCODE_INVALID, // KEYCODE_STEM_PRIMARY
+	Common::KEYCODE_INVALID, // KEYCODE_STEM_1
+	Common::KEYCODE_INVALID, // KEYCODE_STEM_2
+	Common::KEYCODE_INVALID, // KEYCODE_STEM_3
+	Common::KEYCODE_INVALID, // KEYCODE_DPAD_UP_LEFT
+	Common::KEYCODE_INVALID, // KEYCODE_DPAD_DOWN_LEFT
+	Common::KEYCODE_INVALID, // KEYCODE_DPAD_UP_RIGHT
+	Common::KEYCODE_INVALID, // KEYCODE_DPAD_DOWN_RIGHT
+	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_SKIP_FORWARD
+	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_SKIP_BACKWARD
+	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_STEP_FORWARD
+	Common::KEYCODE_INVALID, // KEYCODE_MEDIA_STEP_BACKWARD
+	Common::KEYCODE_INVALID, // KEYCODE_SOFT_SLEEP
+	Common::KEYCODE_CUT, // KEYCODE_CUT
+	Common::KEYCODE_COPY, // KEYCODE_COPY
+	Common::KEYCODE_PASTE // KEYCODE_PASTE
 };
 
 #endif
diff --git a/backends/platform/ps2/ps2input.cpp b/backends/platform/ps2/ps2input.cpp
index 636176e..f028be1 100644
--- a/backends/platform/ps2/ps2input.cpp
+++ b/backends/platform/ps2/ps2input.cpp
@@ -102,7 +102,7 @@ int Ps2Input::mapKey(int key, int mod) { // copied from sdl backend
 		return key;
 	} else if (key >= 'a' && key <= 'z' && mod & Common::KBD_SHIFT) {
 		return key & ~0x20;
-	} else if (key >= Common::KEYCODE_NUMLOCK && key <= Common::KEYCODE_EURO) {
+	} else if (key >= Common::KEYCODE_NUMLOCK && key < Common::KEYCODE_LAST) {
 		return 0;
 	}
 	return key;
diff --git a/common/keyboard.h b/common/keyboard.h
index e6e1f59..ca26e6b 100644
--- a/common/keyboard.h
+++ b/common/keyboard.h
@@ -50,16 +50,17 @@ enum KeyCode {
 	KEYCODE_QUOTEDBL    = 34,      // "
 	KEYCODE_HASH        = 35,      // #
 	KEYCODE_DOLLAR      = 36,      // $
+	KEYCODE_PERCENT     = 37,      // %
 	KEYCODE_AMPERSAND   = 38,      // &
 	KEYCODE_QUOTE       = 39,      // '
-	KEYCODE_LEFTPAREN   = 40,
-	KEYCODE_RIGHTPAREN  = 41,
+	KEYCODE_LEFTPAREN   = 40,      // (
+	KEYCODE_RIGHTPAREN  = 41,      // )
 	KEYCODE_ASTERISK    = 42,      // *
-	KEYCODE_PLUS        = 43,
-	KEYCODE_COMMA       = 44,
-	KEYCODE_MINUS       = 45,
-	KEYCODE_PERIOD      = 46,
-	KEYCODE_SLASH       = 47,
+	KEYCODE_PLUS        = 43,      // +
+	KEYCODE_COMMA       = 44,      // ,
+	KEYCODE_MINUS       = 45,      // -
+	KEYCODE_PERIOD      = 46,      // .
+	KEYCODE_SLASH       = 47,      // /
 	KEYCODE_0           = 48,
 	KEYCODE_1           = 49,
 	KEYCODE_2           = 50,
@@ -70,20 +71,20 @@ enum KeyCode {
 	KEYCODE_7           = 55,
 	KEYCODE_8           = 56,
 	KEYCODE_9           = 57,
-	KEYCODE_COLON       = 58,
-	KEYCODE_SEMICOLON   = 59,
-	KEYCODE_LESS        = 60,
-	KEYCODE_EQUALS      = 61,
-	KEYCODE_GREATER     = 62,
-	KEYCODE_QUESTION    = 63,
-	KEYCODE_AT          = 64,
+	KEYCODE_COLON       = 58,      // :
+	KEYCODE_SEMICOLON   = 59,      // ;
+	KEYCODE_LESS        = 60,      // <
+	KEYCODE_EQUALS      = 61,      // =
+	KEYCODE_GREATER     = 62,      // >
+	KEYCODE_QUESTION    = 63,      // ?
+	KEYCODE_AT          = 64,      // @
 
-	KEYCODE_LEFTBRACKET = 91,
-	KEYCODE_BACKSLASH   = 92,
-	KEYCODE_RIGHTBRACKET= 93,
-	KEYCODE_CARET       = 94,
-	KEYCODE_UNDERSCORE  = 95,
-	KEYCODE_BACKQUOTE   = 96,
+	KEYCODE_LEFTBRACKET = 91,      // [
+	KEYCODE_BACKSLASH   = 92,      // "\"
+	KEYCODE_RIGHTBRACKET= 93,      // ]
+	KEYCODE_CARET       = 94,      // ^
+	KEYCODE_UNDERSCORE  = 95,      // _
+	KEYCODE_BACKQUOTE   = 96,      // `
 	KEYCODE_a           = 97,
 	KEYCODE_b           = 98,
 	KEYCODE_c           = 99,
@@ -159,6 +160,9 @@ enum KeyCode {
 	KEYCODE_F13         = 294,
 	KEYCODE_F14         = 295,
 	KEYCODE_F15         = 296,
+	KEYCODE_F16         = 297,
+	KEYCODE_F17         = 298,
+	KEYCODE_F18         = 299,
 
 	// Key state modifier keys
 	KEYCODE_NUMLOCK     = 300,
@@ -185,7 +189,47 @@ enum KeyCode {
 	KEYCODE_MENU        = 319,
 	KEYCODE_POWER       = 320,      // Power Macintosh power key
 	KEYCODE_EURO        = 321,      // Some european keyboards
-	KEYCODE_UNDO        = 322       // Atari keyboard has Undo
+	KEYCODE_UNDO        = 322,      // Atari keyboard has Undo
+	KEYCODE_SLEEP       = 323,
+	KEYCODE_MUTE        = 324,
+	KEYCODE_EJECT       = 325,
+	KEYCODE_VOLUMEUP    = 326,
+	KEYCODE_VOLUMEDOWN  = 327,
+	KEYCODE_LEFTSOFT    = 328,
+	KEYCODE_RIGHTSOFT   = 329,
+	KEYCODE_CALL        = 330,
+	KEYCODE_HANGUP      = 331,
+	KEYCODE_CAMERA      = 332,
+	KEYCODE_WWW         = 333,
+	KEYCODE_MAIL        = 334,
+	KEYCODE_CALCULATOR  = 335,
+	KEYCODE_CUT         = 336,
+	KEYCODE_COPY        = 337,
+	KEYCODE_PASTE       = 338,
+	KEYCODE_SELECT      = 339,
+	KEYCODE_CANCEL      = 340,
+
+	// Action keys
+	KEYCODE_AC_SEARCH    = 341,
+	KEYCODE_AC_HOME      = 342,
+	KEYCODE_AC_BACK      = 343,
+	KEYCODE_AC_FORWARD   = 344,
+	KEYCODE_AC_STOP      = 345,
+	KEYCODE_AC_REFRESH   = 346,
+	KEYCODE_AC_BOOKMARKS = 347,
+
+	// Audio keys
+	KEYCODE_AUDIONEXT        = 348,
+	KEYCODE_AUDIOPREV        = 349,
+	KEYCODE_AUDIOSTOP        = 350,
+	KEYCODE_AUDIOPLAY        = 351,
+	KEYCODE_AUDIOPAUSE       = 352,
+	KEYCODE_AUDIOPLAYPAUSE   = 353,
+	KEYCODE_AUDIOMUTE        = 354,
+	KEYCODE_AUDIOREWIND      = 355,
+	KEYCODE_AUDIOFASTFORWARD = 356,
+
+	KEYCODE_LAST
 };
 
 /**
diff --git a/engines/wintermute/base/base_keyboard_state.cpp b/engines/wintermute/base/base_keyboard_state.cpp
index 502577c..4e87011 100644
--- a/engines/wintermute/base/base_keyboard_state.cpp
+++ b/engines/wintermute/base/base_keyboard_state.cpp
@@ -33,8 +33,6 @@
 #include "common/system.h"
 #include "common/keyboard.h"
 
-#define KEYSTATES_ARRAY_SIZE (Common::KEYCODE_UNDO + 1) // Hardcoded size for the common/keyboard.h enum
-
 namespace Wintermute {
 
 IMPLEMENT_PERSISTENT(BaseKeyboardState, false)
@@ -248,8 +246,8 @@ void BaseKeyboardState::init() {
 	_currentAlt = false;
 	_currentControl = false;
 
-	_keyStates = new uint8[KEYSTATES_ARRAY_SIZE];
-	for (int i = 0; i < KEYSTATES_ARRAY_SIZE; i++) {
+	_keyStates = new uint8[Common::KEYCODE_LAST];
+	for (int i = 0; i < Common::KEYCODE_LAST; i++) {
 		_keyStates[i] = false;
 	}
 




More information about the Scummvm-git-logs mailing list