Messages in this thread | | | Date | Wed, 30 Aug 2023 00:53:51 +0900 | Subject | Re: [PATCH 2/2] hid-sony: DS3: Report analog buttons for Sixaxis | From | Max Staudt <> |
| |
On 8/27/23 00:21, Max Staudt wrote: > This change exposes these buttons as axes in a way that is as backwards > compatible and as close to the Linux gamepad spec as possible. > > [...] > > - The D-Pad as ABS_HAT0X/ABS_HAT0Y, -255 to 255
One further idea:
The DualShock 3 reports all 4 D-pad buttons separately, and hid-sony currently reports them as discrete digital buttons to userspace.
Would it be better to do the same with the analog buttons, i.e. to report the 4 measurements as discrete axes, rather than the current patch's approach of merging them into two logical axes?
Of course, this would require 4 more axes, this would not fit into any existing scheme, and since we've run out of ABS_MISC+n at this point, this could be a further reason for officially reserving a range of axes for analog buttons. Something like:
#define ABS_BTN_SOUTH 0x40 #define ABS_BTN_A ABS_BTN_SOUTH #define ABS_BTN_EAST 0x41 #define ABS_BTN_B ABS_BTN_EAST #define ABS_BTN_C 0x42 #define ABS_BTN_NORTH 0x43 #define ABS_BTN_X ABS_BTN_NORTH #define ABS_BTN_WEST 0x44 #define ABS_BTN_Y ABS_BTN_WEST #define ABS_BTN_Z 0x45
#define ABS_BTN_DPAD_UP 0x46 #define ABS_BTN_DPAD_DOWN 0x47 #define ABS_BTN_DPAD_LEFT 0x48 #define ABS_BTN_DPAD_RIGHT 0x49
#define ABS_MAX 0x4f #define ABS_CNT (ABS_MAX+1)
Max
| |