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