diff options
| author | Jordan Woyak <jordan.woyak@gmail.com> | 2011-03-14 01:20:11 +0000 |
|---|---|---|
| committer | Jordan Woyak <jordan.woyak@gmail.com> | 2011-03-14 01:20:11 +0000 |
| commit | 8fedc3db383b8a39f756f4d1f037e0e45662d41a (patch) | |
| tree | 8e05259aab1988f18ef779c2e197a1d455521512 /Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp | |
| parent | 37e31f2df60774a04627f12c157d000acfa6dd4b (diff) | |
Clean up "ControllerInterface" a bit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7339 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp')
| -rw-r--r-- | Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp | 47 |
1 files changed, 18 insertions, 29 deletions
diff --git a/Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp b/Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp index 536f105dee..450080bfd2 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp @@ -22,7 +22,7 @@ KeyboardMouse::KeyboardMouse(Window window) : m_window(window) // Keyboard Keys for (int i = min_keycode; i <= max_keycode; ++i) { - Key *temp_key = new Key(m_display, i); + Key *temp_key = new Key(m_display, i, m_state.keyboard); if (temp_key->m_keyname.length()) AddInput(temp_key); else @@ -30,15 +30,15 @@ KeyboardMouse::KeyboardMouse(Window window) : m_window(window) } // Mouse Buttons - AddInput(new Button(Button1Mask)); - AddInput(new Button(Button2Mask)); - AddInput(new Button(Button3Mask)); - AddInput(new Button(Button4Mask)); - AddInput(new Button(Button5Mask)); + AddInput(new Button(Button1Mask, m_state.buttons)); + AddInput(new Button(Button2Mask, m_state.buttons)); + AddInput(new Button(Button3Mask, m_state.buttons)); + AddInput(new Button(Button4Mask, m_state.buttons)); + AddInput(new Button(Button5Mask, m_state.buttons)); // Mouse Cursor, X-/+ and Y-/+ - for (unsigned int i=0; i<4; ++i) - AddInput(new Cursor(!!(i&2), !!(i&1))); + for (int i = 0; i != 4; ++i) + AddInput(new Cursor(!!(i & 2), !!(i & 1), (&m_state.cursor.x)[!!(i & 2)])); } KeyboardMouse::~KeyboardMouse() @@ -46,16 +46,6 @@ KeyboardMouse::~KeyboardMouse() XCloseDisplay(m_display); } -ControlState KeyboardMouse::GetInputState(const ControllerInterface::Device::Input* const input) const -{ - return ((Input*)input)->GetState(&m_state); -} - -void KeyboardMouse::SetOutputState(const ControllerInterface::Device::Output* const output, const ControlState state) -{ - -} - bool KeyboardMouse::UpdateInput() { XQueryKeymap(m_display, m_state.keyboard); @@ -96,9 +86,8 @@ int KeyboardMouse::GetId() const return 0; } - -KeyboardMouse::Key::Key(Display* const display, KeyCode keycode) - : m_display(display), m_keycode(keycode) +KeyboardMouse::Key::Key(Display* const display, KeyCode keycode, const char* keyboard) + : m_display(display), m_keyboard(keyboard), m_keycode(keycode) { int i = 0; KeySym keysym = 0; @@ -122,21 +111,21 @@ KeyboardMouse::Key::Key(Display* const display, KeyCode keycode) m_keyname = std::string(XKeysymToString(keysym)); } -ControlState KeyboardMouse::Key::GetState(const State* const state) const +ControlState KeyboardMouse::Key::GetState() const { - KeyCode shift = XKeysymToKeycode(m_display, XK_Shift_L); - return (state->keyboard[m_keycode/8] & (1 << (m_keycode%8))) != 0 - && (state->keyboard[shift/8] & (1 << (shift%8))) == 0; + const KeyCode shift = XKeysymToKeycode(m_display, XK_Shift_L); + return (m_keyboard[m_keycode / 8] & (1 << (m_keycode % 8))) != 0 + && (m_keyboard[shift / 8] & (1 << (shift % 8))) == 0; } -ControlState KeyboardMouse::Button::GetState(const State* const state) const +ControlState KeyboardMouse::Button::GetState() const { - return ((state->buttons & m_index) > 0); + return ((m_buttons & m_index) != 0); } -ControlState KeyboardMouse::Cursor::GetState(const State* const state) const +ControlState KeyboardMouse::Cursor::GetState() const { - return std::max(0.0f, ControlState((&state->cursor.x)[m_index]) / (m_positive ? 1.0f : -1.0f)); + return std::max(0.0f, m_cursor / (m_positive ? 1.0f : -1.0f)); } std::string KeyboardMouse::Key::GetName() const |
