From 6ca082489a8e6701a390ba42eb80177cc8de0208 Mon Sep 17 00:00:00 2001 From: "XTra.KrazzY" Date: Thu, 25 Sep 2008 20:40:17 +0000 Subject: [PATCH] Various issue fixes for PadSimple. Numpad support in DInput git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@695 8ced0084-cf51-0410-be5f-012b33b47a6e --- .../Plugin_PadSimple/Src/DirectInputBase.cpp | 35 ++++++++++++++++++- .../Plugin_PadSimple/Src/GUI/ConfigDlg.cpp | 3 +- .../Plugin_PadSimple/Src/PadSimple.cpp | 8 +++-- 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/Source/Plugins/Plugin_PadSimple/Src/DirectInputBase.cpp b/Source/Plugins/Plugin_PadSimple/Src/DirectInputBase.cpp index 9c2c7741f0..9e939a637d 100644 --- a/Source/Plugins/Plugin_PadSimple/Src/DirectInputBase.cpp +++ b/Source/Plugins/Plugin_PadSimple/Src/DirectInputBase.cpp @@ -64,7 +64,40 @@ void DInput::DIKToString(unsigned int keycode, char *keyStr) break; case DIK_PGDN: strcpy(keyStr, "PgDn"); - break; + break; + case DIK_NUMPAD0: + strcpy(keyStr, "Num 0"); + break; + case DIK_NUMPAD1: + strcpy(keyStr, "Num 1"); + break; + case DIK_NUMPAD2: + strcpy(keyStr, "Num 2"); + break; + case DIK_NUMPAD3: + strcpy(keyStr, "Num 3"); + break; + case DIK_NUMPAD4: + strcpy(keyStr, "Num 4"); + break; + case DIK_NUMPAD5: + strcpy(keyStr, "Num 5"); + break; + case DIK_NUMPAD6: + strcpy(keyStr, "Num 6"); + break; + case DIK_NUMPAD7: + strcpy(keyStr, "Num 7"); + break; + case DIK_NUMPAD8: + strcpy(keyStr, "Num 8"); + break; + case DIK_NUMPAD9: + strcpy(keyStr, "Num 9"); + break; + case DIK_NUMPADSLASH: + strcpy(keyStr, "Num /"); + break; default: GetKeyNameText(keycode << 16, keyStr, 64); break; diff --git a/Source/Plugins/Plugin_PadSimple/Src/GUI/ConfigDlg.cpp b/Source/Plugins/Plugin_PadSimple/Src/GUI/ConfigDlg.cpp index 5af206aa50..1462172450 100644 --- a/Source/Plugins/Plugin_PadSimple/Src/GUI/ConfigDlg.cpp +++ b/Source/Plugins/Plugin_PadSimple/Src/GUI/ConfigDlg.cpp @@ -135,7 +135,7 @@ void ConfigDialog::CreateGUIControls() sDeviceBottom[i] = new wxBoxSizer(wxHORIZONTAL); m_DeviceName[i] = new wxChoice(m_Controller[i], ID_DEVICENAME, wxDefaultPosition, wxDefaultSize, arrayStringFor_DeviceName, 0, wxDefaultValidator); m_Attached[i] = new wxCheckBox(m_Controller[i], ID_ATTACHED, wxT("Controller attached"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); - m_Disable[i] = new wxCheckBox(m_Controller[i], ID_DISABLE, wxT("Disable when dolphin isn't in foreground"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); + m_Disable[i] = new wxCheckBox(m_Controller[i], ID_DISABLE, wxT("Disable when Dolphin is not in focus"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); m_Rumble[i] = new wxCheckBox(m_Controller[i], ID_RUMBLE, wxT("Enable rumble"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); m_Attached[i]->SetValue(pad[i].attached); m_Disable[i]->SetValue(pad[i].disable); @@ -231,6 +231,7 @@ void ConfigDialog::OnKeyDown(wxKeyEvent& event) pad[page].keyForControl[clickedButton->GetId()] = i; DInput::DIKToString(i, keyStr); clickedButton->SetLabel(wxString::FromAscii(keyStr)); + break; } } #else diff --git a/Source/Plugins/Plugin_PadSimple/Src/PadSimple.cpp b/Source/Plugins/Plugin_PadSimple/Src/PadSimple.cpp index fe6c37d12c..10a9e5815c 100644 --- a/Source/Plugins/Plugin_PadSimple/Src/PadSimple.cpp +++ b/Source/Plugins/Plugin_PadSimple/Src/PadSimple.cpp @@ -679,10 +679,14 @@ void LoadConfig() file.Get(SectionName, "Attached", &pad[i].attached, i==0); file.Get(SectionName, "DisableOnBackground", &pad[i].disable, false); - for (int x = 0; x < NUMCONTROLS; x++) + for (int x = 0; x < NUMCONTROLS; x++) { file.Get(SectionName, controlNames[x], &pad[i].keyForControl[x], defaultKeyForControl[x]); - pad[i].keyForControl[x] = tolower(pad[i].keyForControl[x]); +#ifndef _WIN32 + // In linux we have a problem assigning the upper case of the + // keys because they're not being recognized + pad[i].keyForControl[x] = tolower(pad[i].keyForControl[x]); +#endif } } else