Commit Graph

51 Commits (b5e72de753ae4de5c5fae7087abb00dc4242451d)

Author SHA1 Message Date
german77 b5e72de753 kraken: Address comments from review
review fixes
3 years ago
german77 af55dd1935 configuration: Migrate controller settings to emulated controller 3 years ago
german77 e0da5c1bbc kraken: Fix errors from rebase and format files 3 years ago
german77 06a5ef5874 core/hid: Add output devices 3 years ago
german77 29ae42f3e2 input_common: Rewrite main and add the new drivers 3 years ago
german77 5a785ed794 input_common: Rewrite keyboard 3 years ago
german77 4c6f2c2547 input_common: Move touch and analog from button. Move udp protocol 3 years ago
ameerj 73666fb262 general: Update style to clang-format-12 4 years ago
german77 75d8ec1e9f UI: Relocate tas menu and add brief description 4 years ago
german77 c01a872c8e config: Move TAS options to it's own menu 4 years ago
MonsterDruide1 b42c3ce21d input_common/tas: Base playback & recording system
The base playback system supports up to 8 controllers (specified by `PLAYER_NUMBER` in `tas_input.h`), which all change their inputs simulataneously when `TAS::UpdateThread` is called.

The recording system uses the controller debugger to read the state of the first controller and forwards that data to the TASing system for recording. Currently, this process sadly is not frame-perfect and pixel-accurate.

Co-authored-by: Naii-the-Baf <sfabian200@gmail.com>
Co-authored-by: Narr-the-Reg <juangerman-13@hotmail.com>
4 years ago
german77 48b6d41f1b input_common: Improve SDL joystick and hide toggle option 4 years ago
german77 289f59dabd input_common: Fix build with sdl disabled 4 years ago
german77 f20f4587e6 input_common: Implement SDL motion 4 years ago
bunnei 25f650e075
Merge pull request #4937 from german77/multiUDP
InputCommon: Add multiple udp server support
4 years ago
german e46f0e084c Implement full mouse support 4 years ago
german 2c2b586d86 Add multiple udp server support 4 years ago
Morph e9e1876e82 input_common: Add VibrationDevice and VibrationDeviceFactory
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.
5 years ago
Morph ceb7b11f16 configure_input_player: Change "Defaults" button behavior
RestoreDefaults() now restores the selected devices' mappings using UpdateMappingWithDefaults().
This allows us to move the keyboard mapping from RestoreDefaults() to UpdateMappingWithDefaults().
5 years ago
Morph 75eaab2e0f configure_input_player: Implement input exclusivity and persistence
With this, the "Input Devices" combobox should accurately reflect the input device being used and disallows inputs from other input devices unless the input device is set to "Any".
5 years ago
Lioncash 046c0c91a3 input_common/CMakeLists: Make some warnings errors
Makes the input_common code warnings consistent with the rest of the
codebase.
5 years ago
german 2978232390 Add random motion input to keyboard 5 years ago
german c5e257017f Add automap feature for GC adapter 5 years ago
german 6ee8eab670 Add cemu hook changes related to PR #4609 5 years ago
FearlessTobi d176feffad Address review comments and fix code compilation 5 years ago
FearlessTobi e6bd1fd1b8 yuzu: Add motion and touch configuration 5 years ago
Lioncash 9e1b0af259 input_common: Eliminate most global state
Abstracts most of the input mechanisms under an InputSubsystem class
that is managed by the frontends, eliminating any static constructors
and destructors. This gets rid of global accessor functions and also
allows the frontends to have a more fine-grained control over the
lifecycle of the input subsystem.

This also makes it explicit which interfaces rely on the input subsystem
instead of making it opaque in the interface functions. All that remains
to migrate over is the factories, which can be done in a separate
change.
5 years ago
Morph 8ffc491546 input_common/main: Add "/Mouse" to the display name 5 years ago
Morph efa0b7a056 Address feedback 5 years ago
Morph f0fac0c7fb Project Mjölnir: Part 1
Co-authored-by: James Rowe <jroweboy@gmail.com>
Co-authored-by: Its-Rei <kupfel@gmail.com>
5 years ago
Ameer b284c43385 input_common: drop unused libusb.h include
Remnant of an early implementation.
5 years ago
Ameer 6e1639c7b0 Fix unnecessary diffs 5 years ago
Ameer d4e07fd95e Fix deallocation of GC Adapter 5 years ago
ameerj f5d2a1e8bd Update src/input_common/main.cpp
Co-authored-by: LC <mathew1800@gmail.com>

update libusb submodule (hopefully windows build error fixed)
5 years ago
Ameer 28046ae3a9 Tidy up the pointers, use pair over tuple where appropriate 5 years ago
Ameer 46b4461fbb shared_ptr for the GC adapter class, constexpr constants 5 years ago
Ameer 968d631aa5 std::arrays where appropriate, clear q in adapter class, other touch ups 5 years ago
Ameer 121af3646d Singleton GC Adapter class, remove globals, fix naming convention
Fix clang formatting

Manual fix for configure_input_player formatting

Add missing lib usb cmake command
5 years ago
Ameer 0076a08d04 Cleanup after linter 5 years ago
Ameer 0248614add GC Adapter Implementation 5 years ago
FearlessTobi 3d1e741645 input_common: fix build when SDL2 is disabled 5 years ago
Lioncash c7678c3044 input_common/udp: Ensure that UDP is shut down within Shutdown()
Previously the UDP backend would never actually get shut down.
5 years ago
fearlessTobi ac3690f205 Input: UDP Client to provide motion and touch controls
An implementation of the cemuhook motion/touch protocol, this adds the
ability for users to connect several different devices to citra to send
direct motion and touch data to citra.

Co-Authored-By: jroweboy <jroweboy@gmail.com>
5 years ago
James Rowe 09ac66388c Input: Remove global variables from SDL Input
Changes the interface as well to remove any unique methods that
frontends needed to call such as StartJoystickEventHandler by
conditionally starting the polling thread only if the frontend hasn't
started it already. Additionally, moves all global state into a single
SDLState class in order to guarantee that the destructors are called in
the proper order
6 years ago
Tobias 804115b2a4 Port #4141 from citra: Joystick hotplug support (#1275)
* Joystick hotplug support (#4141)

* use SDL_PollEvent instead of SDL_JoystickUpdate

Register hot plugged controller by GUID if they were configured in a previous session

* Move SDL_PollEvent into its own thread

* Don't store SDLJoystick pointer in Input Device; Get pointer on each GetStatus call

* Fix that joystick_list gets cleared after SDL_Quit

* Add VirtualJoystick for InputDevices thats never nullptr

* fixup! Add VirtualJoystick for InputDevices thats never nullptr

* fixup! fixup! Add VirtualJoystick for InputDevices thats never nullptr

* Remove SDL_GameController, make SDL_Joystick* unique_ptr

* fixup! Remove SDL_GameController, make SDL_Joystick* unique_ptr

* Adressed feedback; fixed handling of same guid reconnects

* fixup! Adressed feedback; fixed handling of same guid reconnects

* merge the two joystick_lists into one

* make SDLJoystick a member of VirtualJoystick

* fixup! make SDLJoystick a member of VirtualJoystick

* fixup! make SDLJoystick a member of VirtualJoystick

* fixup! fixup! make SDLJoystick a member of VirtualJoystick

* SDLJoystick: Addressed review comments

* Address one missed review comment
7 years ago
James Rowe 096be16636 Format: Run the new clang format on everything 7 years ago
muemart eaff98dbb3 Adding meumart's Citra SDL Joystick support. Citra PR #3116 7 years ago
wwylele 188194908c move MotionEmu from core/frontend to input_common as a InputDevice 8 years ago
wwylele 51b1c1f211 InputCommon: add SDL joystick support 8 years ago
wwylele a6bd7917cb InputCommon: add AnalogFromButton 8 years ago