From d07c43f9f19dc0ee38aaf44947cfc396f437490e Mon Sep 17 00:00:00 2001 From: Henrik Rydberg Date: Tue, 3 Aug 2010 15:01:50 +0200 Subject: Introduce zoom, rotate and combo gestures Introduce grail_mask bit functions, and add new gestures as separate functions, referring to the same move model. Signed-off-by: Henrik Rydberg --- src/grail-api.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'src/grail-api.c') diff --git a/src/grail-api.c b/src/grail-api.c index e3b8125..cbd2da4 100644 --- a/src/grail-api.c +++ b/src/grail-api.c @@ -70,16 +70,16 @@ static void tp_sync(struct touch_engine *engine, struct touch_frame *frame = &engine->frame; grail_mask_t filtered[DIM_EV_TYPE_BYTES]; int nevent = 0; - gin_frame_begin(ge, frame->time); + gin_frame_begin(ge, frame); gru_recognize(ge, frame); - gin_frame_end(ge, filtered); + gin_frame_end(ge, filtered, sizeof(filtered), frame); if (!ge->event) { evbuf_clear(&x->evbuf); return; } while (!evbuf_empty(&x->evbuf)) { evbuf_get(&x->evbuf, &ev); - if (grail_get_mask(filtered, ev.type)) + if (grail_mask_get(filtered, ev.type)) continue; ge->event(ge, &ev); nevent++; @@ -98,27 +98,27 @@ int grail_open(struct grail *ge, int fd) ret = gin_init(ge); if (ret) goto freemem; - ret = gru_init(ge); - if (ret) - goto freedev; ret = touch_dev_open(&x->dev, fd); if (ret) - goto freegru; + goto freegin; + ret = gru_init(ge, &x->dev.caps); + if (ret) + goto freedev; x->fd = fd; x->mutex = c_mutex; x->wait = c_wait; ret = pthread_create(&x->thread, NULL, grail_thread, x); if (ret) - goto freetouch; + goto freegru; ge->impl = x; touch_engine_init(&x->engine, tp_event, tp_sync, ge); touch_engine_attach(&x->engine, &x->dev); return 0; - freetouch: - touch_dev_close(&x->dev, fd); freegru: gru_destroy(ge); freedev: + touch_dev_close(&x->dev, fd); + freegin: gin_destroy(ge); freemem: free(x); @@ -134,8 +134,8 @@ void grail_close(struct grail *ge, int fd) pthread_cond_signal (&x->wait); pthread_mutex_unlock(&x->mutex); touch_engine_detach(&x->engine, &x->dev); - touch_dev_close(&x->dev, fd); gru_destroy(ge); + touch_dev_close(&x->dev, fd); gin_destroy(ge); free(ge->impl); ge->impl = 0; -- cgit v1.2.3