input_pipeline > Gestures > Debugging

Reviewed-on: 2022-08-05

Theory

We optimisitically assume that the gesture arena is receiving clean data from the sensor. And given the unit tests for the gesture arena, we believe that the gesture arena is routing events to the various recognizers appropriately.

As such, a misrecognized gesture is most likely due to:

  1. A false negative: a recognizer is failing to claim a gesture, or the recognizer is ending the gesture prematurely, OR
  2. A false positive: a recognizer is errantly claiming a gesture that does not truly match the recognizer.

False negatives

To help debug false negatives, the gesture arena logs the reason that each recognizer gave for reporting that a gesture did not match, and the reason that the gesture_arena::Winner (if any) gave for ending the gesture.

False positives

To help debug false positives, the gesture arena can log the set of active recognizers (“the contender set”) after every touch_binding::TouchpadEvent.

However, because this is chatty, such logging is disabled by default. To enable these logs, uncomment the call to log_mutable_state() in gesture_arena.rs.