mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 09:09:52 -06:00
Move XInputBase from PadSimple to InputCommon,
Start work on X11 input for wiimote plugin mapping (copy XTra-KrazzY's fix for PadSimple) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3721 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -106,7 +106,7 @@ inline void AddControl(wxPanel *pan, wxButton **button, wxStaticBoxSizer *sizer,
|
||||
#ifdef _WIN32
|
||||
DInput::DIKToString(pad[controller].keyForControl[ctl], keyStr);
|
||||
#elif defined(HAVE_X11) && HAVE_X11
|
||||
XKeyToString(pad[controller].keyForControl[ctl], keyStr);
|
||||
InputCommon::XKeyToString(pad[controller].keyForControl[ctl], keyStr);
|
||||
#endif
|
||||
|
||||
// Add the button to its sizer
|
||||
@ -355,9 +355,9 @@ void PADConfigDialogSimple::OnKeyDown(wxKeyEvent& event)
|
||||
}
|
||||
}
|
||||
#elif defined(HAVE_X11) && HAVE_X11
|
||||
pad[page].keyForControl[ClickedButton->GetId()] = wxCharCodeWXToX(event.GetKeyCode());
|
||||
pad[page].keyForControl[ClickedButton->GetId()] = InputCommon::wxCharCodeWXToX(event.GetKeyCode());
|
||||
|
||||
XKeyToString(pad[page].keyForControl[ClickedButton->GetId()], keyStr);
|
||||
InputCommon::XKeyToString(pad[page].keyForControl[ClickedButton->GetId()], keyStr);
|
||||
ClickedButton->SetLabel(wxString::FromAscii(keyStr));
|
||||
#endif
|
||||
ClickedButton->Disconnect();
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include <wx/gbsizer.h>
|
||||
|
||||
#if defined(HAVE_X11) && HAVE_X11
|
||||
#include "../XInputBase.h"
|
||||
#include "X11InputBase.h"
|
||||
#endif
|
||||
|
||||
class PADConfigDialogSimple : public wxDialog
|
||||
|
@ -28,15 +28,10 @@ if padenv['HAVE_WX']:
|
||||
"GUI/ConfigDlg.cpp",
|
||||
]
|
||||
|
||||
if env['HAVE_X11']:
|
||||
files += [
|
||||
"XInputBase.cpp",
|
||||
]
|
||||
|
||||
if padenv['HAVE_COCOA']:
|
||||
padenv.Append( CXXFLAGS = compileFlags,
|
||||
LIBS = [ 'common' ])
|
||||
else:
|
||||
padenv.Append(LIBS = [ 'common' ])
|
||||
padenv.Append(LIBS = [ 'common', 'inputcommon' ])
|
||||
|
||||
padenv.SharedLibrary(env['plugin_dir']+name, files)
|
||||
|
@ -1,129 +0,0 @@
|
||||
|
||||
#include "XInputBase.h"
|
||||
|
||||
// Taken from wxw source code
|
||||
KeySym wxCharCodeWXToX(int id)
|
||||
{
|
||||
KeySym keySym;
|
||||
|
||||
switch (id)
|
||||
{
|
||||
case WXK_CANCEL: keySym = XK_Cancel; break;
|
||||
case WXK_BACK: keySym = XK_BackSpace; break;
|
||||
case WXK_TAB: keySym = XK_Tab; break;
|
||||
case WXK_CLEAR: keySym = XK_Clear; break;
|
||||
case WXK_RETURN: keySym = XK_Return; break;
|
||||
case WXK_SHIFT: keySym = XK_Shift_L; break;
|
||||
case WXK_CONTROL: keySym = XK_Control_L; break;
|
||||
case WXK_ALT: keySym = XK_Meta_L; break;
|
||||
case WXK_CAPITAL: keySym = XK_Caps_Lock; break;
|
||||
case WXK_MENU : keySym = XK_Menu; break;
|
||||
case WXK_PAUSE: keySym = XK_Pause; break;
|
||||
case WXK_ESCAPE: keySym = XK_Escape; break;
|
||||
case WXK_SPACE: keySym = ' '; break;
|
||||
case WXK_PAGEUP: keySym = XK_Prior; break;
|
||||
case WXK_PAGEDOWN: keySym = XK_Next; break;
|
||||
case WXK_END: keySym = XK_End; break;
|
||||
case WXK_HOME : keySym = XK_Home; break;
|
||||
case WXK_LEFT : keySym = XK_Left; break;
|
||||
case WXK_UP: keySym = XK_Up; break;
|
||||
case WXK_RIGHT: keySym = XK_Right; break;
|
||||
case WXK_DOWN : keySym = XK_Down; break;
|
||||
case WXK_SELECT: keySym = XK_Select; break;
|
||||
case WXK_PRINT: keySym = XK_Print; break;
|
||||
case WXK_EXECUTE: keySym = XK_Execute; break;
|
||||
case WXK_INSERT: keySym = XK_Insert; break;
|
||||
case WXK_DELETE: keySym = XK_Delete; break;
|
||||
case WXK_HELP : keySym = XK_Help; break;
|
||||
case WXK_NUMPAD0: keySym = XK_KP_0; break; case WXK_NUMPAD_INSERT: keySym = XK_KP_Insert; break;
|
||||
case WXK_NUMPAD1: keySym = XK_KP_1; break; case WXK_NUMPAD_END: keySym = XK_KP_End; break;
|
||||
case WXK_NUMPAD2: keySym = XK_KP_2; break; case WXK_NUMPAD_DOWN: keySym = XK_KP_Down; break;
|
||||
case WXK_NUMPAD3: keySym = XK_KP_3; break; case WXK_NUMPAD_PAGEDOWN: keySym = XK_KP_Page_Down; break;
|
||||
case WXK_NUMPAD4: keySym = XK_KP_4; break; case WXK_NUMPAD_LEFT: keySym = XK_KP_Left; break;
|
||||
case WXK_NUMPAD5: keySym = XK_KP_5; break;
|
||||
case WXK_NUMPAD6: keySym = XK_KP_6; break; case WXK_NUMPAD_RIGHT: keySym = XK_KP_Right; break;
|
||||
case WXK_NUMPAD7: keySym = XK_KP_7; break; case WXK_NUMPAD_HOME: keySym = XK_KP_Home; break;
|
||||
case WXK_NUMPAD8: keySym = XK_KP_8; break; case WXK_NUMPAD_UP: keySym = XK_KP_Up; break;
|
||||
case WXK_NUMPAD9: keySym = XK_KP_9; break; case WXK_NUMPAD_PAGEUP: keySym = XK_KP_Page_Up; break;
|
||||
case WXK_NUMPAD_DECIMAL: keySym = XK_KP_Decimal; break; case WXK_NUMPAD_DELETE: keySym = XK_KP_Delete; break;
|
||||
case WXK_NUMPAD_MULTIPLY: keySym = XK_KP_Multiply; break;
|
||||
case WXK_NUMPAD_ADD: keySym = XK_KP_Add; break;
|
||||
case WXK_NUMPAD_SUBTRACT: keySym = XK_KP_Subtract; break;
|
||||
case WXK_NUMPAD_DIVIDE: keySym = XK_KP_Divide; break;
|
||||
case WXK_NUMPAD_ENTER: keySym = XK_KP_Enter; break;
|
||||
case WXK_NUMPAD_SEPARATOR: keySym = XK_KP_Separator; break;
|
||||
case WXK_F1: keySym = XK_F1; break;
|
||||
case WXK_F2: keySym = XK_F2; break;
|
||||
case WXK_F3: keySym = XK_F3; break;
|
||||
case WXK_F4: keySym = XK_F4; break;
|
||||
case WXK_F5: keySym = XK_F5; break;
|
||||
case WXK_F6: keySym = XK_F6; break;
|
||||
case WXK_F7: keySym = XK_F7; break;
|
||||
case WXK_F8: keySym = XK_F8; break;
|
||||
case WXK_F9: keySym = XK_F9; break;
|
||||
case WXK_F10: keySym = XK_F10; break;
|
||||
case WXK_F11: keySym = XK_F11; break;
|
||||
case WXK_F12: keySym = XK_F12; break;
|
||||
case WXK_F13: keySym = XK_F13; break;
|
||||
case WXK_F14: keySym = XK_F14; break;
|
||||
case WXK_F15: keySym = XK_F15; break;
|
||||
case WXK_F16: keySym = XK_F16; break;
|
||||
case WXK_F17: keySym = XK_F17; break;
|
||||
case WXK_F18: keySym = XK_F18; break;
|
||||
case WXK_F19: keySym = XK_F19; break;
|
||||
case WXK_F20: keySym = XK_F20; break;
|
||||
case WXK_F21: keySym = XK_F21; break;
|
||||
case WXK_F22: keySym = XK_F22; break;
|
||||
case WXK_F23: keySym = XK_F23; break;
|
||||
case WXK_F24: keySym = XK_F24; break;
|
||||
case WXK_NUMLOCK: keySym = XK_Num_Lock; break;
|
||||
case WXK_SCROLL: keySym = XK_Scroll_Lock; break;
|
||||
default: keySym = id <= 255 ? (KeySym)id : 0;
|
||||
}
|
||||
|
||||
return keySym;
|
||||
}
|
||||
|
||||
void XKeyToString(unsigned int keycode, char *keyStr) {
|
||||
switch (keycode) {
|
||||
|
||||
case XK_Left:
|
||||
sprintf(keyStr, "LEFT");
|
||||
break;
|
||||
case XK_Up:
|
||||
sprintf(keyStr, "UP");
|
||||
break;
|
||||
case XK_Right:
|
||||
sprintf(keyStr, "RIGHT");
|
||||
break;
|
||||
case XK_Down:
|
||||
sprintf(keyStr, "DOWN");
|
||||
break;
|
||||
case XK_Return:
|
||||
sprintf(keyStr, "RETURN");
|
||||
break;
|
||||
case XK_KP_Enter:
|
||||
sprintf(keyStr, "KP ENTER");
|
||||
break;
|
||||
case XK_KP_Left:
|
||||
sprintf(keyStr, "KP LEFT");
|
||||
break;
|
||||
case XK_KP_Up:
|
||||
sprintf(keyStr, "KP UP");
|
||||
break;
|
||||
case XK_KP_Right:
|
||||
sprintf(keyStr, "KP RIGHT");
|
||||
break;
|
||||
case XK_KP_Down:
|
||||
sprintf(keyStr, "KP DOWN");
|
||||
break;
|
||||
case XK_Shift_L:
|
||||
sprintf(keyStr, "LShift");
|
||||
break;
|
||||
case XK_Control_L:
|
||||
sprintf(keyStr, "LControl");
|
||||
break;
|
||||
default:
|
||||
sprintf(keyStr, "%c", toupper(keycode));
|
||||
}
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
|
||||
#ifndef XINPUTBASE_H
|
||||
#define XINPUTBASE_H
|
||||
|
||||
#include <X11/X.h>
|
||||
#include <X11/keysym.h>
|
||||
#include <wx/wx.h>
|
||||
|
||||
KeySym wxCharCodeWXToX(int id);
|
||||
void XKeyToString(unsigned int keycode, char *keyStr);
|
||||
|
||||
#endif
|
@ -26,18 +26,6 @@
|
||||
#include "EmuDefinitions.h" // for PadMapping
|
||||
#include "main.h"
|
||||
|
||||
// TODO: Figure out what to do for non-Win32
|
||||
#ifndef _WIN32
|
||||
#define VK_LEFT 0
|
||||
#define VK_RIGHT 0
|
||||
#define VK_UP 0
|
||||
#define VK_DOWN 0
|
||||
#define VK_NUMPAD4 0
|
||||
#define VK_NUMPAD6 0
|
||||
#define VK_NUMPAD8 0
|
||||
#define VK_NUMPAD5 0
|
||||
#endif
|
||||
|
||||
Config g_Config;
|
||||
|
||||
Config::Config()
|
||||
|
@ -199,12 +199,15 @@ static int wmDefaultControls[] =
|
||||
VK_LEFT, // Regular directional keys
|
||||
VK_RIGHT,
|
||||
VK_UP,
|
||||
VK_DOWN,
|
||||
VK_DOWN,
|
||||
#else
|
||||
0,0,0,0,
|
||||
#endif
|
||||
83, // WmShake (S)
|
||||
51, // WmPitchL (3)
|
||||
52, // WmPitchR (4)
|
||||
};
|
||||
|
||||
static int nCDefaultControls[] =
|
||||
{
|
||||
90, // NcZ Z
|
||||
@ -214,6 +217,8 @@ static int nCDefaultControls[] =
|
||||
VK_NUMPAD6, // NcR
|
||||
VK_NUMPAD8, // NcU
|
||||
VK_NUMPAD5, // NcD
|
||||
#else
|
||||
0,0,0,0,
|
||||
#endif
|
||||
68, // NcShake D
|
||||
};
|
||||
@ -236,6 +241,8 @@ static int ccDefaultControls[] =
|
||||
VK_NUMPAD8, // CcDu
|
||||
VK_NUMPAD6, // CcDr
|
||||
VK_NUMPAD5, // CcDd
|
||||
#else
|
||||
0,0,0,0,
|
||||
#endif
|
||||
0x4a, // CcLl J
|
||||
0x49, // CcLu I
|
||||
|
@ -199,6 +199,17 @@ void WiimotePadConfigDialog::UpdateGUIButtonMapping(int controller)
|
||||
m_Button_GH3[x][controller]->SetLabel(wxString::FromAscii(
|
||||
InputCommon::VKToString(WiiMoteEmu::PadMapping[controller].GH3c.keyForControls[x]).c_str()));
|
||||
}
|
||||
#else
|
||||
if(g_Config.iExtensionConnected == EXT_GUITARHERO3_CONTROLLER)
|
||||
{
|
||||
//TODO: fix this and add for all key settings
|
||||
for (int x = 0; x < GH3_CONTROLS; x++)
|
||||
{
|
||||
char keyStr[10] = {0};
|
||||
//InputCommon::XKeyToString(WiiMoteEmu::PadMapping[controller].GH3c.keyForControls[x], keyStr);
|
||||
m_Button_GH3[x][controller]->SetLabel(wxString::FromAscii(keyStr));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
//INFO_LOG(CONSOLE, "m_bWmA[%i] = %i = %s\n", controller, WiiMoteEmu::PadMapping[controller].Wm.keyForControls[0], InputCommon::VKToString(WiiMoteEmu::PadMapping[controller].Wm.keyForControls[0]).c_str());
|
||||
|
@ -142,7 +142,7 @@ void WiimotePadConfigDialog::OnKeyDown(wxKeyEvent& event)
|
||||
g_Pressed = event.GetKeyCode();
|
||||
|
||||
// Handle the keyboard key mapping
|
||||
std::string StrKey;
|
||||
char keyStr[64] = {0};
|
||||
if(ClickedButton != NULL)
|
||||
{
|
||||
// Allow the escape key to set a blank key
|
||||
@ -164,15 +164,17 @@ void WiimotePadConfigDialog::OnKeyDown(wxKeyEvent& event)
|
||||
// Use the left and right specific keys instead of the common ones
|
||||
if (i == VK_SHIFT || i == VK_CONTROL || i == VK_MENU) continue;
|
||||
// Update the button label
|
||||
char KeyStr[64] = {0}; strcpy(KeyStr, InputCommon::VKToString(i).c_str());
|
||||
SetButtonText(ClickedButton->GetId(), KeyStr);
|
||||
strcpy(keyStr, InputCommon::VKToString(i).c_str());
|
||||
SetButtonText(ClickedButton->GetId(), keyStr);
|
||||
// Save the setting
|
||||
SaveKeyboardMapping(Page, ClickedButton->GetId(), i);
|
||||
}
|
||||
}
|
||||
#elif defined(HAVE_X11) && HAVE_X11
|
||||
//pad[page].keyForControl[ClickedButton->GetId()] = wxCharCodeWXToX(event.GetKeyCode());
|
||||
//ClickedButton->SetLabel(wxString::Format(_T("%c"), event.GetKeyCode()));
|
||||
g_Pressed = InputCommon::wxCharCodeWXToX(g_Pressed);
|
||||
InputCommon::XKeyToString(g_Pressed, keyStr);
|
||||
SetButtonText(ClickedButton->GetId(), keyStr);
|
||||
SaveKeyboardMapping(Page, ClickedButton->GetId(), g_Pressed);
|
||||
#endif
|
||||
}
|
||||
ClickedButton = NULL;
|
||||
|
@ -31,6 +31,14 @@
|
||||
#include <wx/panel.h>
|
||||
#include <wx/gbsizer.h>
|
||||
|
||||
#if defined(HAVE_X11) && HAVE_X11
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/keysym.h>
|
||||
#include <X11/XKBlib.h>
|
||||
#include "X11InputBase.h"
|
||||
#endif
|
||||
|
||||
#define GH3_CONTROLS 14
|
||||
|
||||
class WiimotePadConfigDialog : public wxDialog
|
||||
|
@ -26,6 +26,10 @@ if wmenv['HAVE_WX']:
|
||||
"ConfigRecording.cpp",
|
||||
"FillReport.cpp",
|
||||
]
|
||||
if wmenv['HAVE_X11']:
|
||||
files += [
|
||||
"XInputBase.cpp",
|
||||
]
|
||||
|
||||
libs = [ 'common', 'inputcommon' ]
|
||||
|
||||
|
Reference in New Issue
Block a user