This seems to be a known limitation (mentioned in the commit introducing the DS4 buttonmap), but hard to find, unless you know the right terms or take a deep dive into the code.
These are reported as:
IOHIDElementGetUsagePage(..) = GENERIC_DESKTOP_USAGE_PAGE (0x01)
IOHIDElementGetUsage(..) = 0x39
IOHIDValueGetIntegerValue(..) ranging from 0 to 7 indicating eight possible directions and an out-of-range (8 for DS4) value for the unpressed state (as explained here).
...and should end up calling CJoystick::SetHatValue.
One can look into https://bugzilla.mozilla.org/show_bug.cgi?id=1107801 for implementation inspiration.
This seems to be a known limitation (mentioned in the commit introducing the DS4 buttonmap), but hard to find, unless you know the right terms or take a deep dive into the code.
These are reported as:
IOHIDElementGetUsagePage(..)= GENERIC_DESKTOP_USAGE_PAGE (0x01)IOHIDElementGetUsage(..)= 0x39IOHIDValueGetIntegerValue(..)ranging from 0 to 7 indicating eight possible directions and an out-of-range (8 for DS4) value for the unpressed state (as explained here)....and should end up calling
CJoystick::SetHatValue.One can look into https://bugzilla.mozilla.org/show_bug.cgi?id=1107801 for implementation inspiration.