summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface
AgeCommit message (Collapse)Author
2019-04-20ControllerInterface/DInput: Optimize cursor position updating.Jordan Woyak
2019-04-13ControllerInterface: Rename full surface analog inputs to be more visually ↵Jordan Woyak
dissimilar from their underlying inputs. e.g. "Full Axis X+".
2019-04-06Merge pull request #7689 from jordan-woyak/sdl-improveJMC47
ControllerInterface: SDL cleanups/fixes
2019-03-31InputCommon: Fix Win32 init race.Jordan Woyak
2019-03-29ControllerInterface/Win32: Prevent devcies from losing their "id" on a ↵Jordan Woyak
hotplug event.
2019-03-29Add hotplug support to DInput and XInput controller backendsMichael M
2019-03-29Add ControllerInterface::Win32 to wrap XInput and DInputMichael M
2019-03-22Merge pull request #7918 from spycrab/iokit_refactorspycrab
InputCommon/OSX: Refactor IOKit controller interface
2019-03-22InputCommon/OSX: Refactor IOKit controller interfacespycrab
2019-03-21Merge pull request #7906 from jordan-woyak/leak-fixTilka
DolphinQt/InputCommon: Fix a few memory leaks.
2019-03-19ControllerInterface: Unbreak DirectInput POV Hats having bad values on init.Jordan Woyak
2019-03-17DolphinQt/InputCommon: Fix a few memory leaks.Jordan Woyak
2019-03-17ControllerInterface: SDL: Replace unclear bool parameter with enum class.Jordan Woyak
2019-03-17ControllerInterface: SDL cleanup and FF effect fixes.Jordan Woyak
2019-03-03ControllerInterface/DolphinQt: Make mapping "all devices" way less hacky.Jordan Woyak
2019-03-03ControllerInterface: Input detection improvements.Jordan Woyak
2019-02-03Merge pull request #7688 from jordan-woyak/evdev-improveAnthony
ControllerInterface: evdev: Cleanups and effect processing fixes.
2019-01-26Android: Optimize rumble callzackhow
Moved rumble call to IDCache since GetMethodID is expensive
2019-01-19Android: Add touch to move pointer in overlayzackhow
2019-01-17ControllerInterface: evdev: Replace unclear bool parameter with enum class.Jordan Woyak
2019-01-17ControllerInterface: evdev: Cleanup rumble effect processing so effects ↵Jordan Woyak
aren't removed and re-uploaded with every SetState() call. Split the "LeftRight" output into separate "Strong" and "Weak" outputs. Other minor cleanups.
2019-01-16Merge pull request #7693 from jordan-woyak/hotplug-callback-fixLéo Lam
ControllerInterface: Hotplug callback fixes.
2019-01-16Merge pull request #7680 from jordan-woyak/dinput-axis-rangeLéo Lam
DirectInput: Use more than 8 bits of precision on axis inputs.
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-08Merge pull request #7666 from jordan-woyak/input-shutdown-fixJosJuice
ControllerInterface: Shutdown order and race condition fix.
2019-01-07Android: Change all analoginputs to just inputszackhow
Android doesn't report values for the inputs generated by FullAnalogInput so there isn't a reason to add them as such. This also avoids a bug(for android) where if there are three inputs(say 12, 11, and 121), and you generate a FullAnalogInput with 12/11 then it will create another input with the name 121 which can cause conficts with the real 121 input. This is probably not an issue on PC since most Axis inputs are named and not numbered.
2019-01-06DirectInput: Use more than 8 bits of precision on axis inputs.Jordan Woyak
2019-01-05ControllerInterface: Set DInput FF effect parameters sanely. This fixes a ↵Jordan Woyak
crash with periodic effects and my GCPad adapter (probably a divide by zero behind the scenes).
2019-01-02ControllerInterface: Shutdown order and race condition fix.Jordan Woyak
2018-12-24ControllerInterface: DInput: Update force feedback effects in a thread. This ↵Jordan Woyak
should prevent slowdowns experienced by a handful of users.
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-10-08evdev: simplify codeTillmann Karras
No need to check write access if we call open() right after which checks that anyway. Also only get the device name once.
2018-09-07Android: Add rumble for phonezackhow
This currently only supports using the internal vibrate on a phone for rumble.
2018-08-27InputCommon/XInput2: Increase mouse buttons to 32Techjar
Xlib supports many mouse buttons, though there are 9 standard buttons, and they aren't arranged like other mouse APIs. Using only 5 buttons was preventing the use of buttons besides left/right/middle click and the scroll wheel. Here's what all the standard buttons are: 1. left button 2. middle button (pressing the scroll wheel) 3. right button 4. turn scroll wheel up 5. turn scroll wheel down 6. push scroll wheel left 7. push scroll wheel right 8. 4th button (aka browser backward button) 9. 5th button (aka browser forward button) The remaining button indices are non-standard and device-specific, and technically far more than 32 are supported, but this seems like a reasonable limit to avoid cluttering the list with tons of useless mouse buttons. What mouse has more than 32 buttons anyways?
2018-06-04Add hotplug support to SDL2 controller backendMichael M
2018-06-04SDLJoystick: store name on creationMichael M
Otherwise, Dolphin will crash when the joystick is removed.
2018-06-04CMake: make SDL a private dep of InputCommonMichael M
2018-04-12Reformat all the things!spycrab
2018-03-14Assert: Uppercase assertion macrosLioncash
Macros should be all upper-cased. This is also kind of a wart that's been sticking out for quite a while now (we avoid prefixing underscores).
2018-02-07Merge pull request #6355 from myfreeweb/clang6-warningAnthony
Add -Wno-register to calm down clang 6.0.0 (C++17 mode)
2018-02-05Ignore -Wregister to calm down recent clang and GCC (C++17 mode)Greg V
The 'register' keyword is used by a header included from Xlib (X11/XKBlib.h).
2018-02-05evdev: Always unref received udev devicesLéo Lam
Whenever udev_monitor_receive_device() returns a non-null pointer, the device must be unref'd after use with udev_device_unref(). We previously missed some unref calls for non-evdev devices.
2018-02-04evdev: Don't leak eventfd on shutdownLéo Lam
2018-02-04evdev: Fix select() callLéo Lam
It's not guaranteed that the eventfd is smaller than the monitor fd, because fds are not always monotonically allocated. To select() correctly in all cases, use the max between the monitor fd and eventfd.
2017-12-15Merge pull request #6166 from ligfx/invokedeviceschangedcallbacksLeo Lam
ControllerInterface: cleanup callbacks API and logic
2017-11-19DeviceQualifier: small cleanupMichael M
2017-11-19GCPadEmu: only connected if default device connectedMichael Maltese
This lets Dolphin know if a configured GameCube Controller should actually be treated as connected or not. Talked to @JMC47 a bit about this last night. My use-case is that all of my controllers are the same hardware (Xbox One controllers) so share the same configuration (modulo device number). Treating them all as always connected isn't a problem for most games, but in some (Smash Bros.) it forces me to go find a keyboard/mouse and unconfigure any controllers that I don't actually have connected. Hotplugging devices (works on macOS, at least) + this patch remove my need to ever touch the Controller Config dialog while in a game. This patch makes the following changes: - A new `BooleanSetting` in `GCPadEmu` called "Always Connected", which defaults to false. - `ControllerEmu` tracks whether the default device is connected on every call to `UpdateReferences()`. - `GCPadEmu.GetStatus()` now sets err bit to `PAD_ERR_NO_CONTROLLER` if the default device isn't connected. - `SIDevice_GCController` handles `PAD_ERR_NO_CONTROLLER` by imitating the behaviour of `SIDevice_Null` (as far as I can tell, this is the only use of the error bit from `GCPadStatus`). I wanted to add an OSD message akin to the ones when Wiimotes get connected/disconnected, but I haven't yet found where to put the logic.
2017-11-11evdev: Correctly calculate axis range for min values greater than 0.Scott Pleb
Axis range was previously calculated as max + abs(min), which relies on the assumption that min will not exceed 0. For (min, max) values like (0, 255) or (-128, 127), which I assume to be the most common cases, the range is correctly calculated as 255. However, given (20, 235), the range is erroneously calculated as 255, leading to axis values being normalized incorrectly. SDL already handles this case correctly. After changing the range calculation to max - min, the axis values received from the evdev backend are practically identical to the values received from the SDL backend.
2017-11-10ControllerInterface: don't call InvokeDevicesChangedCallbacks more than once ↵Michael M
when refreshing