- Move touch-handling code for "regular" touch joystick into separate file
- Add new touch-handling code for "keypad" touch joystick. This is a somewhat complex state-machine to determine
which key to press depending on a full keypad rosette.
- Adds a callback to vm.c to hook into keyboard read callback. Allows us to immediately queue the next key if the
keypad touch joystick is long-pressed for either axis or button keys.
- Now signals TD thread on each touch event that resulted in a change to the buttons.trackingIndex or a change to
the chosen button (buttons.touchDownButton, buttons.northButton, or buttons.southButton)
- Uses mutex (un)locking to avoid races around buttons.trackingIndex and chosen button
- Adds an equal delay on TD thread loop finish to ensure the touchDown/touchUp or touchDown/move/touchUp event
sequence is the same basic duration as received
- Previously a touch down event would trigger a joystick button, but now this slight delay in processing allows us
to discard this if the user really issued a tap-move combo
- 'animation' was too constrained a name to what these do, so switch to the overloaded term 'node' ;-)
- Touch handling is no longer the sole purview of the touchjoy, (in prep for touchable HUD elements)
CPU speed animation touch-ups, and enable building for desktop
Rename/shuffle animation declarations and code
Refactor backend video system to be a dynamically initialized module
Basic CPU speed texture animation works on desktop Linux and Android
Use static pixel buffers to avoid malloc/free churn
Improve CPU animations
First cut at CPU speed message animation
Refactor some of the classic interface functions to be potentially reusable elsewhere