Hi,
We want to add a global ON/OFF switch but it's not that simple, because of the way input is handled in OpenDingux.
The main problem is that the face buttons and the analog stick use two different kernel drivers, and appear as two different devices to userspace applications. Since that confused a lot the games (which expect the buttons and analog sticks to be on one joystick device), we added "linkdev", which is a kernel driver that merges the input and create a single joystick device. It also handles translation of key codes to emulate either a keyboard or a gamepad.
The problem is, if you disable the joystick driver, "linkdev" won't start, so the face buttons won't work either...
The fix that we want to attempt:
- Patch SDL1 / SDL2 to emulate one gamepad from various input devices,
- Handle switching between keyboard mode / gamepad mode by reconfiguring the hardware (using devicetree overlays),
- Use a devicetree overlay for the analog stick, so that we can enable/disable it at runtime.
But FW development is going a bit slow these days, as we are more focused on getting all the drivers upstream. So this probably won't happen anytime soon.