/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2010 Canonical Ltd. * Copyright (C) 2010 Henrik Rydberg * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #ifndef _GRAIL_GESTURES_H #define _GRAIL_GESTURES_H #include "grail-inserter.h" #define PRIO_POINTER 1 #define PRIO_GESTURE 2 #define PRIO_TAP 3 #define DIM_FM 4 #define FM_X 0 #define FM_Y 1 #define FM_R 2 #define FM_A 3 struct filter_model { float delta, val, orig, fuzz, bar; }; struct move_model { struct filter_model fm[DIM_FM]; int tickle, active; int single, multi, ntouch; grail_time_t time; }; void gru_init_motion(struct grail *ge); void gru_motion(struct grail *ge, const struct touch_frame *frame); void gru_event(struct grail *ge, int gid, const struct move_model *move, const grail_prop_t *prop, int nprop); struct combo_model { int active, gid; }; int gru_pan(struct grail *ge, const struct touch_frame *frame); int gru_pinch(struct grail *ge, const struct touch_frame *frame); int gru_rotate(struct grail *ge, const struct touch_frame *frame); int gru_combo(struct grail *ge, const struct touch_frame *frame); struct tapping_model { grail_time_t start; int status, ntouch; int active, gid; }; int gru_tapping(struct grail *ge, const struct touch_frame *frame); #endif