From 5f35cf1376425c16b348b4e0dbc9193d59b8a321 Mon Sep 17 00:00:00 2001 From: arcum42 Date: Sun, 3 May 2009 11:49:25 +0000 Subject: [PATCH] ZeroPad: Commit bolche's Analog control code, ifdeffed out, so I don't forget to add a gui for it and enable it some day. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1126 96395faa-99c1-11dd-bbfe-3dabce05a288 --- plugins/zeropad/Linux/linux.cpp | 83 +++++++++++++++++++++++++++++++++ plugins/zeropad/zeropad.h | 19 ++++++++ 2 files changed, 102 insertions(+) diff --git a/plugins/zeropad/Linux/linux.cpp b/plugins/zeropad/Linux/linux.cpp index 2c5707deba..d14aebbe60 100644 --- a/plugins/zeropad/Linux/linux.cpp +++ b/plugins/zeropad/Linux/linux.cpp @@ -278,6 +278,59 @@ void CALLBACK PADupdate(int pad) case KeyPress: key = XLookupKeysym((XKeyEvent *)&E, 0); +#ifdef ANALOG_CONTROLS_HACK + switch(key) { + case KEY_PAD_LX_LEFT: + g_lanalog[pad].x = DEF_VALUE/256; + if( conf.options&PADOPTION_REVERTLX ) + g_lanalog[pad].x = -g_lanalog[pad].x; + g_lanalog[pad].x += 0x80; + break; + case KEY_PAD_LX_RIGHT: + g_lanalog[pad].x = -DEF_VALUE/256; + if( conf.options&PADOPTION_REVERTLX ) + g_lanalog[pad].x = -g_lanalog[pad].x; + g_lanalog[pad].x += 0x80; + break; + case KEY_PAD_LY_UP: + g_lanalog[pad].y = DEF_VALUE/256; + if( conf.options&PADOPTION_REVERTLY ) + g_lanalog[pad].y = -g_lanalog[pad].y; + g_lanalog[pad].y += 0x80; + break; + case KEY_PAD_LY_DOWN: + g_lanalog[pad].y = -DEF_VALUE/256; + if( conf.options&PADOPTION_REVERTLY ) + g_lanalog[pad].y = -g_lanalog[pad].y; + g_lanalog[pad].y += 0x80; + break; + case KEY_PAD_RX_LEFT: + g_ranalog[pad].x = DEF_VALUE/256; + if( conf.options&PADOPTION_REVERTRX ) + g_ranalog[pad].x = -g_ranalog[pad].x; + g_ranalog[pad].x += 0x80; + break; + case KEY_PAD_RX_RIGHT: + g_ranalog[pad].x = -DEF_VALUE/256; + if( conf.options&PADOPTION_REVERTRX ) + g_ranalog[pad].x = -g_ranalog[pad].x; + g_ranalog[pad].x += 0x80; + break; + case KEY_PAD_RY_UP: + g_ranalog[pad].y = DEF_VALUE/256; + if( conf.options&PADOPTION_REVERTRY ) + g_ranalog[pad].y = -g_ranalog[pad].y; + g_ranalog[pad].y += 0x80; + break; + case KEY_PAD_RY_DOWN: + g_ranalog[pad].y = -DEF_VALUE/256; + if( conf.options&PADOPTION_REVERTRY ) + g_ranalog[pad].y = -g_ranalog[pad].y; + g_ranalog[pad].y += 0x80; + break; + } +#endif + i = FindKey(key, pad); keyPress |= (1 << i); keyRelease &= ~(1 << i); @@ -287,6 +340,36 @@ void CALLBACK PADupdate(int pad) break; case KeyRelease: key = XLookupKeysym((XKeyEvent *)&E, 0); + +#ifdef ANALOG_CONTROLS_HACK + switch(key) { + case KEY_PAD_LX_LEFT: + g_lanalog[pad].x = 0x80; + break; + case KEY_PAD_LY_UP: + g_lanalog[pad].y = 0x80; + break; + case KEY_PAD_RX_LEFT: + g_ranalog[pad].x = 0x80; + break; + case KEY_PAD_RY_UP: + g_ranalog[pad].y = 0x80; + break; + case KEY_PAD_LX_RIGHT: + g_lanalog[pad].x = 0x80; + break; + case KEY_PAD_LY_DOWN: + g_lanalog[pad].y = 0x80; + break; + case KEY_PAD_RX_RIGHT: + g_ranalog[pad].x = 0x80; + break; + case KEY_PAD_RY_DOWN: + g_ranalog[pad].y = 0x80; + break; + } +#endif + i = FindKey(key, pad); keyPress &= ~(1<