summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface/Xlib
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2016-09-03 15:23:34 -0700
committerJasper St. Pierre <jstpierre@mecheye.net>2016-09-04 10:44:22 -0700
commit928d05ec47a3dd46c6968088e934ff1555fc7fc5 (patch)
treec3e7ce52af0a13a3a9c8fef0bfcdb57888b7b868 /Source/Core/InputCommon/ControllerInterface/Xlib
parent2b640a4f7d961880d53ba7b193774e4aa4a80c65 (diff)
InputCommon: Remove the Xlib backend
The XInput2 backend is more performant, so let's default to it and remove the old, core-only backend.
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface/Xlib')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp161
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.h91
2 files changed, 0 insertions, 252 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp b/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp
deleted file mode 100644
index c0ee39ac68..0000000000
--- a/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-// Copyright 2010 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
-
-#include <X11/XKBlib.h>
-#include <cstring>
-
-#include "InputCommon/ControllerInterface/Xlib/Xlib.h"
-
-namespace ciface
-{
-namespace Xlib
-{
-void Init(void* const hwnd)
-{
- g_controller_interface.AddDevice(std::make_shared<KeyboardMouse>((Window)hwnd));
-}
-
-KeyboardMouse::KeyboardMouse(Window window) : m_window(window)
-{
- memset(&m_state, 0, sizeof(m_state));
-
- m_display = XOpenDisplay(nullptr);
-
- int min_keycode, max_keycode;
- XDisplayKeycodes(m_display, &min_keycode, &max_keycode);
-
- // Keyboard Keys
- for (int i = min_keycode; i <= max_keycode; ++i)
- {
- Key* temp_key = new Key(m_display, i, m_state.keyboard);
- if (temp_key->m_keyname.length())
- AddInput(temp_key);
- else
- delete temp_key;
- }
-
- // Mouse Buttons
- 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 (int i = 0; i != 4; ++i)
- AddInput(new Cursor(!!(i & 2), !!(i & 1), (&m_state.cursor.x)[!!(i & 2)]));
-}
-
-KeyboardMouse::~KeyboardMouse()
-{
- XCloseDisplay(m_display);
-}
-
-void KeyboardMouse::UpdateInput()
-{
- XQueryKeymap(m_display, m_state.keyboard);
-
- int root_x, root_y, win_x, win_y;
- Window root, child;
- XQueryPointer(m_display, m_window, &root, &child, &root_x, &root_y, &win_x, &win_y,
- &m_state.buttons);
-
- // update mouse cursor
- XWindowAttributes win_attribs;
- XGetWindowAttributes(m_display, m_window, &win_attribs);
-
- // the mouse position as a range from -1 to 1
- m_state.cursor.x = (float)win_x / (float)win_attribs.width * 2 - 1;
- m_state.cursor.y = (float)win_y / (float)win_attribs.height * 2 - 1;
-}
-
-std::string KeyboardMouse::GetName() const
-{
- return "Keyboard Mouse";
-}
-
-std::string KeyboardMouse::GetSource() const
-{
- return "Xlib";
-}
-
-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;
- do
- {
- keysym = XkbKeycodeToKeysym(m_display, keycode, i, 0);
- i++;
- } while (keysym == NoSymbol && i < 8);
-
- // Convert to upper case for the keyname
- if (keysym >= 97 && keysym <= 122)
- keysym -= 32;
-
- // 0x0110ffff is the top of the unicode character range according
- // to keysymdef.h although it is probably more than we need.
- if (keysym == NoSymbol || keysym > 0x0110ffff || XKeysymToString(keysym) == nullptr)
- m_keyname = std::string();
- else
- m_keyname = std::string(XKeysymToString(keysym));
-}
-
-ControlState KeyboardMouse::Key::GetState() const
-{
- return (m_keyboard[m_keycode / 8] & (1 << (m_keycode % 8))) != 0;
-}
-
-ControlState KeyboardMouse::Button::GetState() const
-{
- return ((m_buttons & m_index) != 0);
-}
-
-ControlState KeyboardMouse::Cursor::GetState() const
-{
- return std::max(0.0f, m_cursor / (m_positive ? 1.0f : -1.0f));
-}
-
-std::string KeyboardMouse::Key::GetName() const
-{
- return m_keyname;
-}
-
-std::string KeyboardMouse::Cursor::GetName() const
-{
- static char tmpstr[] = "Cursor ..";
- tmpstr[7] = (char)('X' + m_index);
- tmpstr[8] = (m_positive ? '+' : '-');
- return tmpstr;
-}
-
-std::string KeyboardMouse::Button::GetName() const
-{
- char button = '0';
- switch (m_index)
- {
- case Button1Mask:
- button = '1';
- break;
- case Button2Mask:
- button = '2';
- break;
- case Button3Mask:
- button = '3';
- break;
- case Button4Mask:
- button = '4';
- break;
- case Button5Mask:
- button = '5';
- break;
- }
-
- static char tmpstr[] = "Click .";
- tmpstr[6] = button;
- return tmpstr;
-}
-}
-}
diff --git a/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.h b/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.h
deleted file mode 100644
index ef0d5777a3..0000000000
--- a/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.h
+++ /dev/null
@@ -1,91 +0,0 @@
-// Copyright 2010 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
-
-#pragma once
-
-#include <X11/Xlib.h>
-#include <X11/keysym.h>
-
-#include "InputCommon/ControllerInterface/ControllerInterface.h"
-
-namespace ciface
-{
-namespace Xlib
-{
-void Init(void* const hwnd);
-
-class KeyboardMouse : public Core::Device
-{
-private:
- struct State
- {
- char keyboard[32];
- unsigned int buttons;
- struct
- {
- float x, y;
- } cursor;
- };
-
- class Key : public Input
- {
- friend class KeyboardMouse;
-
- public:
- std::string GetName() const override;
- Key(Display* display, KeyCode keycode, const char* keyboard);
- ControlState GetState() const override;
-
- private:
- std::string m_keyname;
- Display* const m_display;
- const char* const m_keyboard;
- const KeyCode m_keycode;
- };
-
- class Button : public Input
- {
- public:
- std::string GetName() const override;
- Button(unsigned int index, unsigned int& buttons) : m_buttons(buttons), m_index(index) {}
- ControlState GetState() const override;
-
- private:
- const unsigned int& m_buttons;
- const unsigned int m_index;
- };
-
- class Cursor : public Input
- {
- public:
- std::string GetName() const override;
- bool IsDetectable() override { return false; }
- Cursor(u8 index, bool positive, const float& cursor)
- : m_cursor(cursor), m_index(index), m_positive(positive)
- {
- }
- ControlState GetState() const override;
-
- private:
- const float& m_cursor;
- const u8 m_index;
- const bool m_positive;
- };
-
-public:
- void UpdateInput() override;
-
- KeyboardMouse(Window window);
- ~KeyboardMouse();
-
- std::string GetName() const override;
- std::string GetSource() const override;
-
-private:
- Window m_window;
- Display* m_display;
- State m_state;
-};
-}
-}