Re: [AD] Triggers under Linux |
[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]
On 03/15/2015 11:24 AM, Max Savenkov wrote:
> I have a question about the some code in ljoynu.c. Why doesn't Allegro
> consider Triggers to be single-axis? Gamepad documentation at
> https://www.kernel.org/doc/Documentation/input/gamepad.txt tells us that:
>
> "Triggers: Trigger buttons can be available as digital or analog buttons
> or both. User- space must correctly deal with any situation and choose
> the most appropriate mode. Upper trigger buttons are reported as BTN_TR
> or ABS_HAT1X (right) and BTN_TL or ABS_HAT1Y (left). Lower trigger
> buttons are reported as BTN_TR2 or ABS_HAT2X (right/ZR) and BTN_TL2 or
> ABS_HAT2Y (left/ZL). If only one trigger-button combination is present
> (upper+lower), they are reported as "right" triggers (BTN_TR/ABS_HAT1X).
> (ABS trigger values start at 0, pressure is reported as positive values)"
>
> Allegro's treatment of Triggers leads to some very unpleasant effects,
> like sticks' ordering being all messed up. Also, Trigger button should
> have a range of 0.0f..1.0f (as per docs: "ABS trigger values start at 0,
> pressure is reported as positive values"), but currently provide values
> from -1.0f to 1.0f.
>
> Therefore, I propose to add a special case to fill_joystick_axes which
> would handle analogue AND digital triggers (BTN_TR,BTN_TR2, BTN_TL,
> BTN_TL2, ABS_HAT1X, ABS_HAT2X, ABS_HAT1Y, ABS_HAT2Y), and write them
> down as a single-axis sticks.
>
I'm open to any changes in behavior of this code as long as they're
configurable via allegro5.cfg if it means things work in a better/more
correct way. I am not at all an expert in this code so I can't judge
what's better, but I can defer to your experience in the matter if you
think things are done incorrectly. Do the other platforms do this
correctly and/or similarly incorrectly?
I note that the semantics of the ALLEGRO_JOYSTICK_STATE's axis field
aren't really documented, so perhaps making an axis that ranges from 0
to 1 is just fine.
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |