Advertisement
Guest User

tp_gesture_handle_state_unknown

a guest
Dec 17th, 2016
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. static enum tp_gesture_state
  2. tp_gesture_handle_state_unknown(struct tp_dispatch *tp, uint64_t time)
  3. {
  4. struct tp_touch *first = tp->gesture.touches[0],
  5. *second = tp->gesture.touches[1];
  6. uint32_t dir1, dir2;
  7. int yres = tp->device->abs.absinfo_y->resolution;
  8. int vert_distance;
  9.  
  10. /* for two-finger gestures, if the fingers stay unmoving for a
  11. * while, assume (slow) scroll */
  12. if (tp->gesture.finger_count == 2) {
  13. if (time > (tp->gesture.initial_time + DEFAULT_GESTURE_2FG_SCROLL_TIMEOUT)) {
  14. tp_gesture_set_scroll_buildup(tp);
  15. return GESTURE_STATE_SCROLL;
  16. }
  17.  
  18. /* Else check if one finger is > 20mm below the others */
  19. vert_distance = abs(first->point.y - second->point.y);
  20. if (vert_distance > 20 * yres &&
  21. tp->gesture.finger_count > 2 &&
  22. tp->gesture.enabled) {
  23. tp_gesture_init_pinch(tp);
  24. return GESTURE_STATE_PINCH;
  25. }
  26. }
  27.  
  28. /* Else wait for both fingers to have moved */
  29. dir1 = tp_gesture_get_direction(tp, first, tp->gesture.finger_count);
  30. dir2 = tp_gesture_get_direction(tp, second, tp->gesture.finger_count);
  31. printf("\n \n====== DIR 1 ======== : %f\n", (double) dir1 );
  32. printf("====== DIR 2 ========: %f\n \n", (double) dir2 );
  33.  
  34. if (dir1 == UNDEFINED_DIRECTION || dir2 == UNDEFINED_DIRECTION)
  35. return GESTURE_STATE_UNKNOWN;
  36.  
  37. /* If both touches are moving in the same direction assume
  38. * scroll or swipe */
  39. if (tp_gesture_same_directions(dir1, dir2)) {
  40. if (tp->gesture.finger_count == 2) {
  41. tp_gesture_set_scroll_buildup(tp);
  42. return GESTURE_STATE_SCROLL;
  43. } else if (tp->gesture.enabled) {
  44. return GESTURE_STATE_SWIPE;
  45. }
  46. } else {
  47. tp_gesture_init_pinch(tp);
  48. return GESTURE_STATE_PINCH;
  49. }
  50.  
  51. return GESTURE_STATE_UNKNOWN;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement