my build has both a lever (dpad mode) and buttons assigned to direct
digital, and a display that is intended to be input-pin-based rather
than output-based (so that the same things display in the viewer
regardless of which profile mode I am in). main works great for that,
for buttons, but the current GP_LEVER_MODEs all are looking at the
output, e.g. GP_LEVER_MODE_DIGITAL only shows the lever moving if the
dpad is set to digital output, not e.g. left analog output. meanwhile,
it would also show lever activity if I was pressing the direct digital
buttons even when I wasn't moving the lever.
this fixes that by adding a new GP_LEVER_MODE_DPAD, which is looking at
the unaltered dpad-mode input, regardless of how it is output, bringing
the display lever functionally equivalent to GPIO-based button displays.
conveniently, we already were holding onto the dpad inputs in the main
loop in order to handle the direct directionals, this just puts it in
the gamepad state object instead