summaryrefslogtreecommitdiff
path: root/src/input_common/sdl
AgeCommit message (Collapse)Author
2021-05-15input_common: Implement SDL motiongerman77
2021-04-18general: Ignore implicit-fallthrough for SDL.hlat9nq
SDL 2.0.14 introduces an incompatibility with Clang, causing it to trigger -Wimplicit-fallthrough even though it is marked. Ignore it for now, with a comment mentioning why this is needed.
2021-04-15Merge pull request #6119 from german77/SDLMappingbunnei
InputCommon: Address mapping and naming issues with SDL2
2021-04-14common: Move settings to common from core.bunnei
- Removes a dependency on core and input_common from common.
2021-03-30InputCommon: Name properly xbox 360 and one controllers, Fix mappings for ↵german77
Nintendo Pro controllers
2021-02-18Revert "Port citra-emu/citra#5123: "SDL: Disable hidapi drivers due to ↵Morph
compatibility problems with certain controllers""
2021-02-15Merge pull request #3603 from FearlessTobi/port-5123bunnei
Port citra-emu/citra#5123: "SDL: Disable hidapi drivers due to compatibility problems with certain controllers"
2021-02-06Make settings controller image change with controller inputgerman
2021-01-23sdl_impl: Set the maximum vibration duration to 1 secondMorph
2020-12-30Merge pull request #5265 from german77/port5509bunnei
Port citra-emu/citra#5509 "Look at direction of analog axis travel instead of instantaneous sample"
2020-12-30Port citra-emu/citra#5509german
2020-12-26Allow to invert analog axis with right clickgerman
2020-11-23input_common: Add more missing [[maybe_unused]] from #4927.bunnei
2020-11-22input_common: Treat warnings as errorsLioncash
Migrates over warnings as errors for input common to match how the common library treats warnings as errors.
2020-11-19Modify rumble amplificationgerman77
2020-11-15sdl_impl: Pump SDL Events at 1000 HzMorph
2020-11-15sdl_impl: Revert to the "old" method of mapping sticksMorph
Not all controllers have a SDL_GameController binding. This caused controllers not present in the SDL GameController database to have buttons mapped instead of axes. Furthermore, it was not possible to invert the axes when it could be useful such as emulating a horizontal single joycon or other potential cases. This allows us to invert the axes by reversing the order of mapping (vertical, then horizontal).
2020-11-15controllers/npad: Remove the old vibration filterMorph
Previously we used a vibration filter that filters out amplitudes close to each other. It turns out there are cases where this results into vibrations that are too inaccurate. Remove this and move the 100Hz vibration filter (Only allowing a maximum of 100 vibrations per second) from sdl_impl to npad when enable_accurate_vibrations is set to false.
2020-11-15input_common: Add VibrationDevice and VibrationDeviceFactoryMorph
A vibration device is an input device that returns an unsigned byte as status. It represents whether the vibration device supports vibration or not. If the status returns 1, it supports vibration. Otherwise, it does not support vibration.
2020-11-15controllers/npad: Add heuristics to reduce rumble state changesMorph
Sending too many state changes in a short period of time can cause massive performance issues. As a result, we have to use several heuristics to reduce the number of state changes to minimize/eliminate this performance impact while maintaining the quality of these vibrations as much as possible.
2020-10-21sdl_impl: Fix controller reconnection issuesMorph
It turns out that after a controller is disconnected, there is a chance that events from the previous controller are sent/processed after it has been disconnected. This causes the previously disconnected controller to reappear as connected due to GetSDLJoystickBySDLID() emplacing this controller back to the map. Fix this by only returning an SDLJoystick if and only if it exists in the map.
2020-10-16sdl_impl: Erase the SDLJoystick entry after removing a controllerMorph
Previously, disconnecting a controller still leaves a null SDLJoystick entry within the vector of SDLJoysticks mapped by GUID. When a DirectInput device of the same GUID is reconnected, it adds that device to a new port causing non-detectable input. Furthermore, opening the "Configure" menu would cause yuzu to crash since it first tries to resolve the name of a null SDLJoystick entry that was not removed. Resolve this by properly erasing the SDLJoystick entry from the vector.
2020-10-15input_common/CMakeLists: Make some warnings errorsLioncash
Makes the input_common code warnings consistent with the rest of the codebase.
2020-10-08Merge pull request #4677 from german77/ShakeFromButtonbunnei
InputCommon: Add random motion input for buttons
2020-09-29First implementation of controller rumblegerman
2020-09-25Add random motion input to SDLgerman
2020-08-30sdl_joystick: disable the use of the hidapi drivers due to many problems ↵Vitor Kiguchi
caused by them. The main problem is the loss of compatibility with some controllers, but there are also unwanted changes to the behaviour of PS4 controllers (hardcoded lightbar color).
2020-08-28sdl_impl: Reduce allocations in GetButtonMappingForDevice()Lioncash
These maps can be constexpr arrays of std::pair.
2020-08-28sdl_impl: Make use of std::move on std::string where applicableLioncash
Avoids redundant copies.
2020-08-28sdl_impl: Make use of insert_or_assign() where applicableLioncash
Avoids churning ParamPackage instances.
2020-08-28sdl_impl: Prevent type truncation in BuildAnalogParamPackageForButton() ↵Lioncash
default arguments We need to add the 'f' suffix to make the right hand side a float and not a double.
2020-08-28sdl_impl: Simplify make_tuple callLioncash
The purpose of make_tuple is that you don't need to explicitly type out the types of the things that comprise said tuple. Given this just returns default values, we can simplify this a bit.
2020-08-28sdl_impl: Mark FromEvent() as a const member functionLioncash
This doesn't modify internal member state, so it can be marked as const.
2020-08-28input_common/main: Remove unnecessary headersLioncash
2020-08-26input_common: Fix directional deadzone valuesMorph
The hardware tested value is 0.5 which translates to SHRT_MAX / 2
2020-08-26Address feedbackMorph
2020-08-26Project Mjölnir: Part 1Morph
Co-authored-by: James Rowe <jroweboy@gmail.com> Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-08-10Remove UI changesameerj
This PR is now only the Analog devices handling the range value defaulting at 100%
2020-08-10undo unnecessary newlines, slider range 50-150Ameer
2020-08-10Add range slider for analog sticksAmeer
2020-04-15CMakeLists: Specify -Wextra on linux buildsLioncash
Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well.
2020-01-15Moved analog direction logic to sdl_implCJBok
2019-06-03input_common/sdl/sdl_impl: Correct logging string in SDLState constructorLioncash
If this path was ever taken, a runtime exception would occur due to the lack of a formatting specifier to insert the error code into the format string.
2019-06-03input_common/sdl/sdl_impl: Move documentation comments to header where ↵Lioncash
applicable Places the documentation comments with the rest of SDLState's member function documentation.
2019-06-03input_common/sdl/sdl_impl: Amend names for axes for SDLAnalogPollerLioncash
Adds another underscore to clearly indicate the axis names.
2019-06-03input_common/sdl/sdl_impl: Mark variables const where applicableLioncash
Make it explicit that these aren't modified elsewhere (either through functions by reference, or by other operations).
2019-06-03input_common/sdl/sdl_impl: Mark SDLEventToButtonParamPackage() as staticLioncash
Its prototype declared at the top of the translation unit contains the static qualifier, so the function itself should also contain it to make it a proper internally linked function.
2019-06-03input_common/sdl/sdl_impl: Convert reinterpret_cast into a static_castLioncash
It's valid to static_cast a void pointer back into its proper type.
2019-06-03input_common/sdl/sdl_impl: Use insert_or_assign() where applicableLioncash
Same behavior, but without a potential need to unnecessarily default construct a value.
2019-06-03input_common/sdl/sdl_impl: Simplify SDL_Joystick deleter handlingLioncash
The deleter can just be set in the constructor and maintained throughout the lifetime of the object. If a contained pointer is null, then the deleter won't execute, so this is safe to do. We don't need to swap it out with a version of a deleter that does nothing.