From b605a93a85d8ead753d87a2da5a0e40571d6f275 Mon Sep 17 00:00:00 2001 From: Henrik Rydberg Date: Thu, 28 Apr 2011 15:41:49 +0200 Subject: Expose utouch-frame through grail API Start a gentle API change by exposing utouch-frame through grail, and deprecating the grail_contact struct. Old programs compile and run fine. To only use the new api, compile with -DGRAIL_NO_LEGACY_API. Signed-off-by: Henrik Rydberg --- src/grail-legacy.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/grail-legacy.c (limited to 'src/grail-legacy.c') diff --git a/src/grail-legacy.c b/src/grail-legacy.c new file mode 100644 index 0000000..779595b --- /dev/null +++ b/src/grail-legacy.c @@ -0,0 +1,66 @@ +/***************************************************************************** + * + * 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 . + * + ****************************************************************************/ + +#include +#include "grail-inserter.h" +#include +#include +#include +#include +#include +#include +#include + +#ifndef GRAIL_NO_LEGACY_ABI + +void GRAIL_PUBLIC grail_filter_abs_events(struct grail *ge, int usage) +{ + struct grail_impl *x = ge->impl; + x->filter_abs = usage; +} + +int GRAIL_PUBLIC grail_get_contacts(const struct grail *ge, + struct grail_contact *touch, int max_touch) +{ + const struct gesture_inserter *gin = ge->gin; + const struct utouch_frame *frame = ge->impl->frame; + int i; + if (frame->num_active < max_touch) + max_touch = frame->num_active; + for (i = 0; i < max_touch; i++) { + struct grail_contact *t = &touch[i]; + const struct utouch_contact *ct = frame->active[i]; + t->id = ct->id; + t->tool_type = ct->tool_type; + t->pos.x = ct->x; + t->pos.y = ct->y; + t->touch_major = ct->touch_major; + t->touch_minor = ct->touch_minor; + t->width_major = ct->width_major; + t->width_minor = ct->width_minor; + t->angle = ct->orientation; + t->pressure = ct->pressure; + } + return max_touch; +} + +#endif -- cgit v1.2.3