summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h
AgeCommit message (Collapse)Author
2021-07-05treewide: convert GPLv2+ license info to SPDX tagsPierre Bourdon
SPDX standardizes how source code conveys its copyright and licensing information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX tags are adopted in many large projects, including things like the Linux kernel.
2021-06-07ControllerInterface: Remove OSX window handleFiloppi
also make it more thread safe (avoid rare deadlock) and fix it trying to add devices before the CI has init
2021-06-07ControllerInterface: RefactorFiloppi
-Fix Add/Remove/Refresh device safety, devices could be added and removed at the same time, causing missing or duplicated devices (rare but possible) -Fix other devices population race conditions in ControllerInterface -Avoid re-creating all devices when dolphin is being shut down -Avoid re-creating devices when the render window handle has changed (just the relevantr ones now) -Avoid sending Devices Changed events if devices haven't actually changed -Made most devices populations will be made async, to increase performance and avoid hanging the host or CPU thread on manual devices refresh
2021-06-07ControllerInterface: mixed commentsFiloppi
2021-03-17InputCommon / DolphinQt / Core: Add a "RelativeMouse" input which provides ↵iwubcode
the raw delta mouse input Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
2021-02-22Cleanup X11 and XRANDR MacrosNorbert Lange
This fixes build with X11 enabled and XRANDR disabled.
2021-01-27rename InputCommon/ControllerInterface/Device to CoreDeviceShawn Hoffman
2020-12-13InputCommon: Fix callback dispatch deadlockseth
Make sure m_is_populating_devices is true when a WM_INPUT_DEVICE_CHANGE event is received directly on the ciface thread, so that callbacks do not occur while removing devices. This breaks a hold-and-wait deadlock between the ciface thread and the CPU thread when using emulated Wiimotes. Co-authored-by: brainleq <brainleq@users.noreply.github.com> Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2020-01-24InputCommon: Make "Cursor" inputs aware of the rendered aspect ratio.Jordan Woyak
2019-10-27Rename all instances of "CemuhookUDPServer"/"UDPServer" to ↵rlnilsen
"DualShockUDPClient"/"DSUClient".
2019-10-26Add support for motion controllers via the CemuHook controller input protocol.rlnilsen
This is done by: 1) Implementing said protocol in a new controller input class CemuHookUDPServer. 2) Adding functionality in the WiimoteEmu class for pushing that motion input to the emulated Wiimote and MotionPlus. 3) Suitably modifying the UI for configuring an Emulated Wii Remote.
2019-03-29Add ControllerInterface::Win32 to wrap XInput and DInputMichael M
2019-01-10ControllerInterface: Allow hotplug callbacks to be unregistered and don't ↵Jordan Woyak
reload the entire config from the ini file on hotplug, just update the control references. This should fix a crash on shutdown on Android.
2019-01-02ControllerInterface: Shutdown order and race condition fix.Jordan Woyak
2018-10-29Core: Switch controller interface to render widget on bootingStenzek
Previously, the Qt frontend would initialize the controller interface on starting, resulting in the cursor position being relative to the main window, instead of the render window.
2018-10-29ControllerInterface: Don't crash on non-X11 QPAStenzek
2018-06-04CMake: make SDL a private dep of InputCommonMichael M
2017-11-10ControllerInterface: don't call InvokeDevicesChangedCallbacks more than once ↵Michael M
when refreshing
2017-11-10ControllerInterface: add mutex around callbacks vectorMichael M
2017-11-10ControllerInterface: HotplugCallbacks -> DevicesChangedCallbacksMichael M
2017-11-10ControllerInterface: invoke callbacks in AddDevice/RemoveDeviceMichael M
Some backends already cause this to happen, so make it consistent across systems.
2017-02-20Add missing "functional" includeSteven Newbury
Building fails on GCC7 without an explicit
2017-02-07InputCommon: Extract ControlReference from ControllerInterfaceMichael Maltese
Better separation of concerns. Relegates `ControllerInterface` to enumerating input controls, and the new `ControlReference` deals with combining inputs and configuration expression parsing.
2016-11-30ControllerInterface: replace Reinitialize with RefreshDevicesMichael Maltese
The SDL backend crashes when you close a joystick after SDL_Quit has been called. Some backends don't need to be shutdown and re-initialized everytime, we can just ask to enumerate devices again.
2016-09-04InputCommon: Remove the Xlib backendJasper St. Pierre
The XInput2 backend is more performant, so let's default to it and remove the old, core-only backend.
2016-07-29ControllerInterface: Add RemoveDevice()Léo Lam
This adds RemoveDevice() to ControllerInterface, fixes ExpressionParser and some other code to support device removals without crashing, and adds an IsValid() method to Device, to prepare for hotplugging.
2016-07-29ControllerInterface: Add a way to register callbacksLéo Lam
This adds RegisterHotplugCallback() to register a callback which will be invoked by the input backends' hotplug threads when there is a new device, so that Core (GCKeyboard, GCPad, Wiimote, Hotkey) can reload the configuration without adding a dependency to Core from InputCommon.
2016-06-25ControllerInterface: Switch to std::shared_ptrLéo Lam
Small cleanup by using std::shared_ptr and getting rid of ciface.Devices() which just returned the m_devices (which defeats the point of making m_devices protected). Incidentally, this should make the code safer when we have different threads accessing devices in the future (for hotplug?). A lot of code use Device references directly so there is no easy way to remove FindDevice() and make those unique_ptrs.
2016-06-25ControllerInterface: Add synchronisationLéo Lam
Since we may have to add/access devices from different threads, this adds synchronisation to anything that touches m_devices.
2016-06-25ControllerInterface: Don't pass m_devices to the backendsLéo Lam
Previously, the devices vector would be passed to all backends. They would then manually push_back to it to add new devices. This was fine but caused issues when trying to add synchronisation. Instead, backends now call AddDevice() to fill m_devices so that it is not accessible from the outside.
2016-06-24Reformat all the things. Have fun with merge conflicts.Pierre Bourdon
2016-02-05Use cmake to determine if we are enabling the Android Controller InterfaceRyan Houdek
2015-10-24GC controller input using named pipesspxtr
Currently only works on unix, but can be extended to other systems. Can also be extended to do wiimotes. Searches the Pipes folder for readable named pipes and creates a dolphin input device out of them. Send controller inputs to the game by writing to the file. Commands are described in Pipes.h.
2015-07-01Linux: Add an evdev based controller backend, to replace SDL.Scott Mansell
2015-05-25Set copyright year to when a file was createdTillmann Karras
2015-05-25Update license headers to GPLv2+Tillmann Karras
2015-03-12Removed the controller update lock as it is no longer needed.skidau
2014-11-28HW: Remove UpdateOutputJasper St. Pierre
All of the rumble interfaces are now immediate mode.
2014-11-28ControllerInterface: Make UpdateInput / UpdateOutput return voidJasper St. Pierre
The return values here have never been checked, so it doesn't make sense to return a value to begin with.
2014-11-28ControllerInterface: Remove unused "force" parameterJasper St. Pierre
I'm not sure when this nonsense of forcing locking the mutex when it's already taken should have ever taken effect, but let's be thankful it isn't now. That was a badly worded sentence.
2014-10-15ControllerInterface: Get rid of SetHwnd(), introduce Reinitialize()Lioncash
Initialize now just takes the handle directly. Reinitialize is added because it is much more straightforward in comparison to doing the Shutdown-Initialize manually.
2014-09-08Include CommonTypes.h instead of Common.h.Rohit Nirmal
2014-09-04Controller Interface: Remove "using namespace" in header file.Rohit Nirmal
2014-05-04Remove SDL from Externals.Jordan Woyak
2014-05-04Disable SDL input on Windows.Jordan Woyak
2014-03-09clang-modernize -use-nullptrTillmann Karras
and s/\bNULL\b/nullptr/g for *.cpp/h/mm files not compiled on my machine
2014-03-09clang-modernize -add-overrideTillmann Karras
2014-02-20Fix more header sorting issues in InputCommon/ (now check-includes clean).Pierre Bourdon
2014-02-18Convert all includes to relative paths.Lioncash
2014-02-10Replace all include guard ifdefs with "#pragma once"lioncash