Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As discussed in issue #3815, I added a function
SetGamepadVibration(int gamepad, float leftMotor, float rightMotor)
. I also added a new define,MAX_GAMEPAD_VIBRATION_TIME 2.0f
to control the maximum duration of the vibration. When the user sendsSetGamepadVibration(gamepad, float 0.0f, float 0.0f)
, it cancels the vibration. Otherwise it continues on for MAX_GAMEPAD_VIBRATION_TIME.It seems to work well on my end with an 8BitDo Pro 2 controller set both to Nintendo Switch Pro and Xbox One modes. Perhaps the max time could be changed to something else, but 2 seconds seem to be fine.
Currently the function is set as not returning a value, the SDL function returns -1 if rumble isn't supported on the controller. Should something like that be returned from the SetGamepadVibration function as well?