summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface
AgeCommit message (Collapse)Author
2022-10-22Merge pull request #10979 from tellowkrinkle/QuartzWindowSpeedJMC47
InputCommon:QuartzKB&M: Use KVO to watch window position
2022-10-03Android: Use input override system for touch controlsJosJuice
This is the first step of getting rid of the controller indirection on Android. (Needing a way for touch controls to provide input to the emulator core is the reason why the controller indirection exists to begin with as far as I understand it.)
2022-10-02WiimoteEmu: Update IR camera status from DesiredWiimoteState.Admiral H. Curtiss
2022-09-08Merge pull request #11038 from AdmiralCurtiss/steam-overlay-crash-fix-wgiAdmiral H. Curtiss
WGInput: Work around crash with Steam overlay.
2022-09-07InputCommon: Fix deadlock in EmulatedController::UpdateReferences().Admiral H. Curtiss
2022-09-07WGInput: Work around crash with Steam overlay.Admiral H. Curtiss
2022-08-27WGInput: implement error handlingShawn Hoffman
2022-08-26WGInput: use c++/winrtShawn Hoffman
2022-08-26ciface/win32: use CM_Register_Notification instead of wnd msgsShawn Hoffman
2022-08-18InputCommon:QuarzKB&M: Use view position instead of window positionTellowKrinkle
2022-08-18InputCommon:QuarzKB&M: Use KVO to watch window positionTellowKrinkle
CGWindowListCreateDescriptionFromArray would block for up to ~1ms, which isn't a great thing to do on the main emulation thread
2022-08-12InputCommon: Enable ARC for obj-c++TellowKrinkle
2022-07-26Merge pull request #10858 from AdmiralCurtiss/mouse-center-hotkeyAdmiral H. Curtiss
Add hotkey for centering mouse in render window.
2022-07-25StripSpaces: only strip spacesShawn Hoffman
StripWhitespace maintains old behavior
2022-07-25Quartz: Handle mouse centering hotkey.Admiral H. Curtiss
Co-authored-by: Dentomologist <dentomologist@gmail.com>
2022-07-25XInput2: Handle mouse centering hotkey.Admiral H. Curtiss
2022-07-25DInput: Handle mouse centering hotkey.Admiral H. Curtiss
2022-07-25Add hotkey for centering mouse in render window.Admiral H. Curtiss
2022-07-15InputCommon: Get rid of static strings.Admiral H. Curtiss
2022-07-13InputCommon: Don't force-link against SDL2.lib on Windows.Admiral H. Curtiss
2022-07-10ci/sdl: pump messages for SDL_hidapi so device detection worksShawn Hoffman
2022-07-10sdl: enable SDL_HINT_JOYSTICK_THREADShawn Hoffman
fixes window message pumping
2022-07-10ci/win32: give the wndclass a unique nameShawn Hoffman
other things (like SDL) may try to use "Message"
2022-07-10ci/sdl: re-add the x360 controller blockShawn Hoffman
2022-07-10ci/sdl: minor cleanupShawn Hoffman
2022-07-10Add SDL as a submoduleJun Bo Bi
2022-07-10Add SDL motion input and rumble supportJun Bo Bi
2022-06-14InputCommon: SDL 2.0.22 init crash workaroundTellowKrinkle
See https://github.com/libsdl-org/SDL/pull/5598
2022-05-19Core/WGInput: Use fmt logging and include HRESULT in messagesPokechu22
2022-04-08Core/WGInput: Dynamically load winrt function addresses.Admiral H. Curtiss
2022-04-03ControllerInterface: Update sort priorities.Jordan Woyak
2022-04-03InputCommon: Add Windows.Gaming.Input to ControllerInterface.Jordan Woyak
2022-03-16MappingCommon: Fix detection of hotkey and conjunction expressions.Jordan Woyak
2022-03-06Move parts of MappingCommon out of DolphinQtJosJuice
Some of the functions in MappingCommon would be useful to use on mobile in the future.
2022-01-16Use Common::ToLower and Common::ToUpperPokechu22
2022-01-09Use HRWrap in remaining locationsPokechu22
Note that D3DCommon can't use DX11HRWrap or DX12HRWrap since it's shared between them.
2022-01-09Common/Assert: Actually use the ASSERT_MSG's log type parameterPokechu22
Since it was unused, nonexistent values were used in a few places. I've replaced them.
2022-01-01Replace remaining uses of zlib crc32 with Common/Hash.hPokechu22
2021-12-10Treewide: Adjust order of includesPokechu22
2021-12-05InputCommon: fix default input config default device not being loaded/foundFiloppi
Fixes bug: https://bugs.dolphin-emu.org/issues/12744 Before https://github.com/dolphin-emu/dolphin/commit/e1e3db13baabefa89991388d37db0bb260c4f535 the ControllerInterface m_devices_mutex was "wrongfully" locked for the whole Initialize() call, which included the first device population refresh, this has the unwanted (accidental) consequence of often preventing the different pads (GC Pad, Wii Contollers, ...) input configs from loading until that mutex was released (the input config defaults loading was blocked in EmulatedController::LoadDefaults()), which meant that the devices population would often have the time to finish adding its first device, which would then be selected as default device (by design, the first device added to the CI is the default default device, usually the "Keyboard and Mouse" device). After the commit mentioned above removed the unnecessary m_devices_mutex calls, the default default device would fail to load (be found) causing the default input mappings, which are specifically written for the default default device on every platform, to not be bound to any physical device input, breaking input on new dolphin installations (until a user tried to customize the default device manually). Default devices are now always added synchronously to avoid the problem, and so they should in the future (I added comments and warnings to help with that)
2021-11-20ControllerInterface: fix UpdateReferences() deadlockFiloppi
Removed useless locks to DeviceContainer::m_devices_mutex, as they were all already protected by m_devices_population_mutex. We have no interest in blocking other threads that were potentially reading devices at the same time so this seems fine. This simplifies the code, and I've adjusted a few comments which mentioned possible deadlock that should now be totally gone. The deadlock could have happen if a thread directly called EmulatedController::UpdateReferences(), while another another thread also reached EmulatedController::UpdateReferences() within a call to ControllerInterface::UpdateDevices(), as the mentioned function locked both the DeviceContainer::m_devices_mutex and s_get_state_mutex at the same time. The deadlock was frequent on game emulation startup on Android, due to the UpdateReferences() call in InputConfig::LoadConfig() and the UI thread triggering calls to ControllerInterface::UpdateDevices(). It could also have happened on Desktop if a user pressed "Refresh Devices" manually in the UI while the input config was loading. Also brought some UpdateReferences() comments and thread safety fixes from https://github.com/dolphin-emu/dolphin/pull/9489
2021-10-13Fix all uninitialized variable warnings (C26495)Pokechu22
2021-07-06QuartzKeyboardAndMouse: Ensure windowNumber is fetched on the main threadOatmealDome
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-07InputCommon: Make Wiimote rumble variable thread safeFiloppi
2021-06-07ControllerInterface: fix DSU thread safety and use PlatformPopulateDevices()Filoppi
2021-06-07ControllerInterface: polish DInput Keyboard and Mouse (add comments and logs)Filoppi
Also fix the cursor axis not being updated when the mouse device had failed aquiring, despite them being completely unrelated
2021-06-07ControllerInterface: DInput Joystick fix non thread safe static variableFiloppi
also fix devices being added to its own custom list of devices even when rejected by the CI
2021-06-07ControllerInterface: Implement ChangeWindow on DInput without recreating the ↵Filoppi
devices Also polished DInput code in general to try and mitigate issue 11702. Added a lot of logging and comments.
2021-06-07ControllerInterface: devices population is now async so implement devices ↵Filoppi
sorting priority This helps us keeping the most important devices (e.g. Mouse and Keyboard) on the top of the list of devices (they still are on all OSes supported by dolphin and to make hotplug devices like DSU appear at the bottom.