From 89c48d526e29bb3d06a5c02e23dab5be319194f6 Mon Sep 17 00:00:00 2001 From: "gregory.hainaut@gmail.com" Date: Tue, 28 Jun 2011 22:16:06 +0000 Subject: [PATCH] onepad: slim down a little more the KeyStatus API git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4781 96395faa-99c1-11dd-bbfe-3dabce05a288 --- plugins/onepad/KeyStatus.cpp | 39 +++++++++++++--------------------- plugins/onepad/KeyStatus.h | 10 ++++----- plugins/onepad/Linux/linux.cpp | 21 +++++++----------- plugins/onepad/onepad.cpp | 32 ++++++++++++++-------------- 4 files changed, 43 insertions(+), 59 deletions(-) diff --git a/plugins/onepad/KeyStatus.cpp b/plugins/onepad/KeyStatus.cpp index afed3544d8..98d438a084 100644 --- a/plugins/onepad/KeyStatus.cpp +++ b/plugins/onepad/KeyStatus.cpp @@ -33,10 +33,10 @@ void KeyStatus::Init() m_internal_button_pressure[pad][index] = 0xFF; } - analog[pad].lx = 0x80; - analog[pad].ly = 0x80; - analog[pad].rx = 0x80; - analog[pad].ry = 0x80; + m_analog[pad].lx = 0x80; + m_analog[pad].ly = 0x80; + m_analog[pad].rx = 0x80; + m_analog[pad].ry = 0x80; m_internal_analog_kbd[pad].lx = 0x80; m_internal_analog_kbd[pad].ly = 0x80; m_internal_analog_kbd[pad].rx = 0x80; @@ -51,6 +51,7 @@ void KeyStatus::Init() void KeyStatus::press(u32 pad, u32 index, s32 value) { if (!IsAnalogKey(index)) { + m_internal_button_pressure[pad][index] = value; if (m_state_acces[pad]) clear_bit(m_internal_button_kbd[pad], index); else @@ -90,16 +91,6 @@ u16 KeyStatus::get(u32 pad) return m_button[pad]; } -void KeyStatus::set_pressure(u32 pad, u32 index, u32 value) -{ - m_internal_button_pressure[pad][index] = value; -} - -u8 KeyStatus::get_pressure(u32 pad, u32 index) -{ - return m_button_pressure[pad][index]; -} - void KeyStatus::analog_set(u32 pad, u32 index, u8 value) { PADAnalog* m_internal_analog_ref; @@ -150,23 +141,23 @@ bool KeyStatus::analog_is_reversed(u32 index) } } -u8 KeyStatus::analog_get(u32 pad, u32 index) +u8 KeyStatus::get(u32 pad, u32 index) { switch (index) { case PAD_R_LEFT: - case PAD_R_RIGHT: return analog[pad].rx; + case PAD_R_RIGHT: return m_analog[pad].rx; case PAD_R_DOWN: - case PAD_R_UP: return analog[pad].ry; + case PAD_R_UP: return m_analog[pad].ry; case PAD_L_LEFT: - case PAD_L_RIGHT: return analog[pad].lx; + case PAD_L_RIGHT: return m_analog[pad].lx; case PAD_L_DOWN: - case PAD_L_UP: return analog[pad].ly; + case PAD_L_UP: return m_analog[pad].ly; - default: return 0; + default: return m_button_pressure[pad][index]; } } @@ -185,8 +176,8 @@ void KeyStatus::commit_status(u32 pad) for (int index = 0; index < MAX_KEYS; index++) m_button_pressure[pad][index] = m_internal_button_pressure[pad][index]; - analog[pad].lx = analog_merge(m_internal_analog_kbd[pad].lx, m_internal_analog_joy[pad].lx); - analog[pad].ly = analog_merge(m_internal_analog_kbd[pad].ly, m_internal_analog_joy[pad].ly); - analog[pad].rx = analog_merge(m_internal_analog_kbd[pad].rx, m_internal_analog_joy[pad].rx); - analog[pad].ry = analog_merge(m_internal_analog_kbd[pad].ry, m_internal_analog_joy[pad].ry); + m_analog[pad].lx = analog_merge(m_internal_analog_kbd[pad].lx, m_internal_analog_joy[pad].lx); + m_analog[pad].ly = analog_merge(m_internal_analog_kbd[pad].ly, m_internal_analog_joy[pad].ly); + m_analog[pad].rx = analog_merge(m_internal_analog_kbd[pad].rx, m_internal_analog_joy[pad].rx); + m_analog[pad].ry = analog_merge(m_internal_analog_kbd[pad].ry, m_internal_analog_joy[pad].ry); } diff --git a/plugins/onepad/KeyStatus.h b/plugins/onepad/KeyStatus.h index 21392e6169..847f64bc19 100644 --- a/plugins/onepad/KeyStatus.h +++ b/plugins/onepad/KeyStatus.h @@ -44,7 +44,7 @@ class KeyStatus bool m_state_acces[2]; - PADAnalog analog[2]; + PADAnalog m_analog[2]; PADAnalog m_internal_analog_kbd[2]; PADAnalog m_internal_analog_joy[2]; @@ -59,14 +59,12 @@ class KeyStatus void keyboard_state_acces(u32 pad) { m_state_acces[pad] = true; } void joystick_state_acces(u32 pad) { m_state_acces[pad] = false; } - void press(u32 pad, u32 index, s32 value = 0); + void press(u32 pad, u32 index, s32 value = 0xFF); void release(u32 pad, u32 index); + u16 get(u32 pad); + u8 get(u32 pad, u32 index); - void set_pressure(u32 pad, u32 index, u32 value); - u8 get_pressure(u32 pad, u32 index); - - u8 analog_get(u32 pad, u32 index); void commit_status(u32 pad); }; diff --git a/plugins/onepad/Linux/linux.cpp b/plugins/onepad/Linux/linux.cpp index fda7396eae..09e0d70966 100644 --- a/plugins/onepad/Linux/linux.cpp +++ b/plugins/onepad/Linux/linux.cpp @@ -139,23 +139,18 @@ void PollForJoystickInput(int cpad) } else { if (full_axis) { value += 0x8000; - if (value > pjoy->GetDeadzone()) { - key_status->press(cpad, i); - key_status->set_pressure(cpad, i, min(value/256 , 0xFF)); - } else { + if (value > pjoy->GetDeadzone()) + key_status->press(cpad, i, min(value/256 , 0xFF)); + else key_status->release(cpad, i); - } } else { - if (sign && (-value > pjoy->GetDeadzone())) { - key_status->press(cpad, i); - key_status->set_pressure(cpad, i, min(-value /128, 0xFF)); - } else if (!sign && (value > pjoy->GetDeadzone())) { - key_status->press(cpad, i); - key_status->set_pressure(cpad, i, min(value /128, 0xFF)); - } else { + if (sign && (-value > pjoy->GetDeadzone())) + key_status->press(cpad, i, min(-value /128, 0xFF)); + else if (!sign && (value > pjoy->GetDeadzone())) + key_status->press(cpad, i, min(value /128, 0xFF)); + else key_status->release(cpad, i); - } } } } diff --git a/plugins/onepad/onepad.cpp b/plugins/onepad/onepad.cpp index 1a6468fee2..ddcd317d4b 100644 --- a/plugins/onepad/onepad.cpp +++ b/plugins/onepad/onepad.cpp @@ -389,10 +389,10 @@ u8 _PADpoll(u8 value) stdpar[curPad][2] = key_status->get(curPad) >> 8; stdpar[curPad][3] = key_status->get(curPad) & 0xff; - stdpar[curPad][4] = key_status->analog_get(curPad, PAD_R_RIGHT); - stdpar[curPad][5] = key_status->analog_get(curPad, PAD_R_UP); - stdpar[curPad][6] = key_status->analog_get(curPad, PAD_L_RIGHT); - stdpar[curPad][7] = key_status->analog_get(curPad, PAD_L_UP); + stdpar[curPad][4] = key_status->get(curPad, PAD_R_RIGHT); + stdpar[curPad][5] = key_status->get(curPad, PAD_R_UP); + stdpar[curPad][6] = key_status->get(curPad, PAD_L_RIGHT); + stdpar[curPad][7] = key_status->get(curPad, PAD_L_UP); if (padMode[curPad] == 1) cmdLen = 20; @@ -403,35 +403,35 @@ u8 _PADpoll(u8 value) switch (stdpar[curPad][3]) { case 0xBF: // X - stdpar[curPad][14] = key_status->get_pressure(curPad, PAD_CROSS); + stdpar[curPad][14] = key_status->get(curPad, PAD_CROSS); break; case 0xDF: // Circle - stdpar[curPad][13] = key_status->get_pressure(curPad, PAD_CIRCLE); + stdpar[curPad][13] = key_status->get(curPad, PAD_CIRCLE); break; case 0xEF: // Triangle - stdpar[curPad][12] = key_status->get_pressure(curPad, PAD_TRIANGLE); + stdpar[curPad][12] = key_status->get(curPad, PAD_TRIANGLE); break; case 0x7F: // Square - stdpar[curPad][15] = key_status->get_pressure(curPad, PAD_SQUARE); + stdpar[curPad][15] = key_status->get(curPad, PAD_SQUARE); break; case 0xFB: // L1 - stdpar[curPad][16] = key_status->get_pressure(curPad, PAD_L1); + stdpar[curPad][16] = key_status->get(curPad, PAD_L1); break; case 0xF7: // R1 - stdpar[curPad][17] = key_status->get_pressure(curPad, PAD_R1); + stdpar[curPad][17] = key_status->get(curPad, PAD_R1); break; case 0xFE: // L2 - stdpar[curPad][18] = key_status->get_pressure(curPad, PAD_L2); + stdpar[curPad][18] = key_status->get(curPad, PAD_L2); break; case 0xFD: // R2 - stdpar[curPad][19] = key_status->get_pressure(curPad, PAD_R2); + stdpar[curPad][19] = key_status->get(curPad, PAD_R2); break; default: @@ -448,19 +448,19 @@ u8 _PADpoll(u8 value) switch (button_check) { case 0xE: // UP - stdpar[curPad][10] = key_status->get_pressure(curPad, PAD_UP); + stdpar[curPad][10] = key_status->get(curPad, PAD_UP); break; case 0xB: // DOWN - stdpar[curPad][11] =key_status->get_pressure(curPad, PAD_DOWN); + stdpar[curPad][11] =key_status->get(curPad, PAD_DOWN); break; case 0x7: // LEFT - stdpar[curPad][9] = key_status->get_pressure(curPad, PAD_LEFT); + stdpar[curPad][9] = key_status->get(curPad, PAD_LEFT); break; case 0xD: // RIGHT - stdpar[curPad][8] = key_status->get_pressure(curPad, PAD_RIGHT); + stdpar[curPad][8] = key_status->get(curPad, PAD_RIGHT); break; default: