From 4483f2c7b5f9f312995c4764235a667b5f13e618 Mon Sep 17 00:00:00 2001 From: fgfemperor Date: Sun, 27 Dec 2009 14:46:10 +0000 Subject: [PATCH] Some more key binding fixes. I know I should have made it in just one commit, I'm sorry, but I forgot to test some keys... This fixes on WiiMote Button Mapping: Num / Num * Num Decimal Num Separator Num Lock Right Alt -> But on keyboards that have "Alt Gr" keys it still gonnal report it as Left Ctrl, because when you press it, the OS sends a Left Ctrl then a Alt key... Also fixes on SimplePad Button Mapping: Num Decimal Num Separator Num Enter Num Lock Right Shift Right Ctrl Right Alt Also it now differs Left (Ctrl|Shift|Alt) from the Right ones... All keys should be working now... I left "Print Scrn" and "Pause" out because I don't think those can (or should) be bound... git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4735 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/InputCommon/Src/Configuration.cpp | 18 ++++++++--- .../Core/InputCommon/Src/DirectInputBase.cpp | 32 ++++++++++++++++++- 2 files changed, 45 insertions(+), 5 deletions(-) diff --git a/Source/Core/InputCommon/Src/Configuration.cpp b/Source/Core/InputCommon/Src/Configuration.cpp index c680decd48..5394877a64 100644 --- a/Source/Core/InputCommon/Src/Configuration.cpp +++ b/Source/Core/InputCommon/Src/Configuration.cpp @@ -260,10 +260,20 @@ std::string VKToString(int keycode) case VK_LEFT: return "LEFT"; case VK_RIGHT: return "RIGHT"; - case VK_LSHIFT: return "LEFT SHIFT"; - case VK_LCONTROL: return "LEFT CTRL"; - case VK_RCONTROL: return "RIGHT CTRL"; - case VK_LMENU: return "LEFT ALT"; + case VK_LSHIFT: return "Left Shift"; + case VK_RSHIFT: return "Right Shift"; + case VK_LCONTROL: return "Left Ctrl"; + case VK_RCONTROL: return "Right Ctrl"; + case VK_LMENU: return "Left Alt"; + case VK_RMENU: return "Right Alt"; + + case VK_NUMLOCK: return "Num Lock"; + case VK_MULTIPLY: return "Num *"; + case VK_ADD: return "Num +"; + case VK_SEPARATOR: return "Num Separator"; + case VK_SUBTRACT: return "Num -"; + case VK_DECIMAL: return "Num Decimal"; + case VK_DIVIDE: return "Num /"; default: return KeyString = KeyStr; } diff --git a/Source/Core/InputCommon/Src/DirectInputBase.cpp b/Source/Core/InputCommon/Src/DirectInputBase.cpp index 07aef5fbab..560aeaaa99 100644 --- a/Source/Core/InputCommon/Src/DirectInputBase.cpp +++ b/Source/Core/InputCommon/Src/DirectInputBase.cpp @@ -40,6 +40,24 @@ void DInput::DIKToString(unsigned int keycode, char *keyStr) case DIK_RETURN: sprintf(keyStr, "Enter"); break; + case DIK_LCONTROL: + sprintf(keyStr, "Left Ctrl"); + break; + case DIK_RCONTROL: + strcpy(keyStr, "Right Ctrl"); + break; + case DIK_LSHIFT: + sprintf(keyStr, "Left Shift"); + break; + case DIK_RSHIFT: + sprintf(keyStr, "Right Shift"); + break; + case DIK_LMENU: + sprintf(keyStr, "Left Alt"); + break; + case DIK_RMENU: + strcpy(keyStr, "Right Alt"); + break; case DIK_UP: sprintf(keyStr, "Up"); break; @@ -70,6 +88,9 @@ void DInput::DIKToString(unsigned int keycode, char *keyStr) case DIK_PGDN: strcpy(keyStr, "PgDn"); break; + case DIK_NUMLOCK: + strcpy(keyStr, "Num Lock"); + break; case DIK_NUMPAD0: strcpy(keyStr, "Num 0"); break; @@ -100,9 +121,18 @@ void DInput::DIKToString(unsigned int keycode, char *keyStr) case DIK_NUMPAD9: strcpy(keyStr, "Num 9"); break; - case DIK_NUMPADSLASH: + case DIK_DIVIDE: strcpy(keyStr, "Num /"); break; + case DIK_NUMPADENTER: + strcpy(keyStr, "Num Enter"); + break; + case DIK_DECIMAL: + strcpy(keyStr, "Num Decimal"); + break; + case DIK_NUMPADCOMMA: + strcpy(keyStr, "Num Separator"); + break; default: // TODO: Switch to unicode GetKeyNameText? GetKeyNameTextA(keycode << 16, keyStr, 64);