Joystick: add support for 8-way hat switch #24515
Merged
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.
Description
Hat switches function a little differently to regular joystick axes, in that they have a "null" state rather than always having a value. Therefore it cannot simply be added by increasing the axis count.
Currently the report descriptor has been set up for an 8-way hat switch, but this could potentially be increased to anything that divides evenly into 360 and gives a maximum angle that is a whole number (so not 16-way as the pitch is 22.5 degrees and the max angle is 337.5). I've not checked whether the physical min/max tags are necessary so maybe this restriction is irrelevant.
Tested on Proton-C, V-USB not tested but should work too.
Types of Changes
Issues Fixed or Closed by This PR
Checklist