Merge lp:~sergiusens/grail/update into lp:grail/phablet

Proposed by Sergio Schvezov
Status: Merged
Approved by: Daniel d'Andrada
Approved revision: 250
Merged at revision: 250
Proposed branch: lp:~sergiusens/grail/update
Merge into: lp:grail/phablet
Diff against target: 1605 lines (+298/-649)
46 files modified
Makefile.am (+1/-0)
configure.ac (+2/-2)
debian/changelog (+45/-0)
debian/control (+2/-2)
debian/copyright (+3/-4)
m4/gtest.m4 (+13/-5)
m4/xorg-gtest.m4 (+2/-31)
src/handle.cpp (+1/-6)
src/touch.cpp (+2/-10)
test/integration/device.cpp (+2/-3)
test/integration/device.h (+2/-3)
test/integration/events.h (+2/-3)
test/integration/recording.cpp (+2/-3)
test/integration/recording.h (+2/-3)
test/integration/slice-checker.cpp (+2/-3)
test/integration/slice-checker.h (+2/-3)
test/integration/x11/atomic-timeout.cpp (+2/-3)
test/integration/x11/dragthresh.cpp (+2/-3)
test/integration/x11/fixture.cpp (+2/-3)
test/integration/x11/fixture.h (+2/-3)
test/integration/x11/hold-reject.cpp (+2/-3)
test/integration/x11/no-premature-gestures.cpp (+2/-3)
test/integration/x11/no-tap-after-drag.cpp (+2/-3)
test/integration/x11/parallel-atomic-gestures.cpp (+2/-3)
test/integration/x11/tap-touch-accept.cpp (+2/-3)
test/integration/x11/timeout.cpp (+2/-3)
test/integration/x11/twodrag.cpp (+2/-3)
test/regular/Makefile.am (+2/-3)
test/regular/frame_mock.cpp (+0/-254)
test/regular/frame_mock.h (+0/-66)
test/regular/grail-fixture.cpp (+133/-111)
test/regular/grail-fixture.h (+18/-20)
test/regular/intermittent_3touch.cpp (+1/-1)
test/regular/one-touch-gest-finished.cpp (+5/-24)
test/regular/pending-end.cpp (+9/-7)
test/regular/still-gest-finishes.cpp (+3/-19)
tools/common/device.c (+2/-3)
tools/common/device.h (+2/-3)
tools/common/servertime.c (+2/-3)
tools/common/servertime.h (+2/-3)
tools/common/slice.c (+2/-3)
tools/common/slice.h (+2/-3)
tools/grail-test-3-1.c (+2/-3)
tools/grail-test-atomic.c (+2/-3)
tools/grail-test-edge.c (+2/-3)
tools/grail-test-propagation.c (+2/-3)
To merge this branch: bzr merge lp:~sergiusens/grail/update
Reviewer Review Type Date Requested Status
Daniel d'Andrada (community) Approve
Review via email: mp+155228@code.launchpad.net

Commit message

Bringing in updates from trunk

To post a comment you must log in.
Revision history for this message
Daniel d'Andrada (dandrader) wrote :

looks ok.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Makefile.am'
2--- Makefile.am 2012-11-20 20:13:00 +0000
3+++ Makefile.am 2013-03-25 13:49:07 +0000
4@@ -1,4 +1,5 @@
5 ACLOCAL_AMFLAGS = -I m4 --install
6+AM_DISTCHECK_CONFIGURE_FLAGS = --disable-integration-tests
7
8 SUBDIRS = src test
9
10
11=== modified file 'configure.ac'
12--- configure.ac 2012-11-29 15:41:42 +0000
13+++ configure.ac 2013-03-25 13:49:07 +0000
14@@ -2,7 +2,7 @@
15 # Initialize Autoconf
16 AC_PREREQ([2.60])
17 AC_INIT([Gesture Recognition And Instantiation Library],
18- [3.0.9],
19+ [3.1.0],
20 [],
21 [grail])
22 AC_CONFIG_SRCDIR([Makefile.am])
23@@ -65,7 +65,7 @@
24 #################################
25 # check mandatory build dependencies
26
27-PKG_CHECK_MODULES([FRAME], [frame >= 2.2.0])
28+PKG_CHECK_MODULES([FRAME], [frame >= 2.5.0])
29
30 #################################
31 # debug builds
32
33=== modified file 'debian/changelog'
34--- debian/changelog 2012-11-29 21:06:52 +0000
35+++ debian/changelog 2013-03-25 13:49:07 +0000
36@@ -1,9 +1,54 @@
37+grail (3.1.0phablet1) quantal; urgency=low
38+
39+ * Merging current branch into phablet series.
40+
41+ -- Sergio Schvezov <sergio.schvezov@canonical.com> Mon, 25 Mar 2013 10:43:34 -0300
42+
43+grail (3.1.0daily13.02.26-0ubuntu1) raring; urgency=low
44+
45+ [ Stephen M. Webb ]
46+ * New upstream release to pick up licensing changes.
47+
48+ [ Automatic PS uploader ]
49+ * Automatic snapshot from revision 253
50+
51+ -- Automatic PS uploader <ps-jenkins@lists.canonical.com> Tue, 26 Feb 2013 02:02:10 +0000
52+
53 grail (3.0.9phablet1) quantal; urgency=low
54
55 * Releasing version for phablet
56
57 -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com> Thu, 29 Nov 2012 18:28:25 -0200
58
59+grail (3.0.9daily12.12.07.1-0ubuntu1) raring; urgency=low
60+
61+ [ Daniel d'Andrada ]
62+ * Relicense under (L)GPL version 3 *only* (no +)
63+ * Updated libframe version dependency to 2.5.0
64+ * Use frame_backend.h instead of a frame mock in tests
65+ * Get rid of x11 specific code in grail implementation
66+
67+ [ Automatic PS uploader ]
68+ * Automatic snapshot from revision 251
69+
70+ -- Automatic PS uploader <ps-jenkins@lists.canonical.com> Fri, 07 Dec 2012 06:37:45 +0000
71+
72+grail (3.0.9daily12.12.03-0ubuntu1) raring; urgency=low
73+
74+ [ Robert Bruce Park ]
75+ * Inline packaging metadata.
76+
77+ [ Didier Roche ]
78+ * Automatic snapshot from revision 244 (bootstrap)
79+
80+ [ Daniel d'Andrada ]
81+ * Updated libframe version dependency to 2.4.4
82+
83+ [ Automatic PS uploader ]
84+ * Automatic snapshot from revision 247
85+
86+ -- Automatic PS uploader <ps-jenkins@lists.canonical.com> Mon, 03 Dec 2012 02:01:33 +0000
87+
88 grail (3.0.9-0phablet1) quantal; urgency=low
89
90 [ Robert Bruce Park ]
91
92=== modified file 'debian/control'
93--- debian/control 2012-11-29 16:14:03 +0000
94+++ debian/control 2013-03-25 13:49:07 +0000
95@@ -1,10 +1,10 @@
96 Source: grail
97 Section: libs
98 Priority: optional
99-Maintainer: Daniel d'Andrada <daniel.dandrada@canonical.com>
100+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
101 Build-Depends: debhelper (>= 9),
102 dh-autoreconf,
103- libframe-dev (>= 2.4.4),
104+ libframe-dev (>= 2.5.0),
105 pkg-config,
106 Standards-Version: 3.9.3
107 Homepage: https://launchpad.net/grail
108
109=== modified file 'debian/copyright'
110--- debian/copyright 2012-11-22 21:28:42 +0000
111+++ debian/copyright 2013-03-25 13:49:07 +0000
112@@ -22,11 +22,10 @@
113
114 Files: test/* tools/*
115 Copyright: 2010-2012 Canonical Ltd.
116-License: GPL-3+
117+License: GPL-3
118 This program is free software: you can redistribute it and/or modify
119- it under the terms of the GNU General Public License as published by
120- the Free Software Foundation, either version 3 of the License, or
121- (at your option) any later version.
122+ it under the terms of version 3 of the GNU General Public License as
123+ published by the Free Software Foundation.
124 .
125 This program is distributed in the hope that it will be useful,
126 but WITHOUT ANY WARRANTY; without even the implied warranty of
127
128=== modified file 'm4/gtest.m4'
129--- m4/gtest.m4 2012-06-29 20:59:33 +0000
130+++ m4/gtest.m4 2013-03-25 13:49:07 +0000
131@@ -1,4 +1,4 @@
132-# serial 1
133+# serial 2
134
135 # Copyright (C) 2012 Canonical, Ltd.
136 #
137@@ -40,10 +40,18 @@
138
139 GTEST_CPPFLAGS="$GTEST_CPPFLAGS -I$GTEST_SOURCE"
140
141- AC_CHECK_FILES([$GTEST_SOURCE/src/gtest-all.cc]
142- [$GTEST_SOURCE/src/gtest_main.cc],
143- [have_gtest=yes],
144- [have_gtest=no])
145+ AC_LANG_PUSH(C++)
146+ gtest_save_CPPFLAGS=$CPPFLAGS
147+ CPPFLAGS="$CPPFLAGS $GTEST_CPPFLAGS"
148+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "src/gtest-all.cc"]])],
149+ [have_gtest=yes],
150+ [have_gtest=no])
151+ AS_IF([test "x$have_gtest" = xyes],
152+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include "src/gtest_main.cc"]])],
153+ [],
154+ [have_gtest=no])])
155+ CPPFLAGS=$gtest_save_CPPFLAGS
156+ AC_LANG_POP(C++)
157
158 AS_IF([test "x$have_gtest" = xyes],
159 [GTEST_LIBS=-lpthread
160
161=== modified file 'm4/xorg-gtest.m4'
162--- m4/xorg-gtest.m4 2012-07-24 21:52:37 +0000
163+++ m4/xorg-gtest.m4 2013-03-25 13:49:07 +0000
164@@ -1,4 +1,4 @@
165-# serial 2
166+# serial 3
167
168 # Copyright (C) 2012 Canonical, Ltd.
169 #
170@@ -21,35 +21,6 @@
171 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
172 # SOFTWARE.
173
174-# Checks whether the gtest source is available on the system. Allows for
175-# adjusting the include and source path. Sets have_gtest=yes if the source is
176-# present. Sets GTEST_CPPFLAGS and GTEST_SOURCE to the preprocessor flags and
177-# source location respectively.
178-AC_DEFUN([_CHECK_GTEST],
179-[
180- AC_ARG_WITH([gtest-source-path],
181- [AS_HELP_STRING([--with-gtest-source-path],
182- [location of the Google test sources, defaults to /usr/src/gtest])],
183- [GTEST_SOURCE="$withval"; GTEST_CPPFLAGS="-I$withval/include"],
184- [GTEST_SOURCE="/usr/src/gtest"])
185-
186- AC_ARG_WITH([gtest-include-path],
187- [AS_HELP_STRING([--with-gtest-include-path],
188- [location of the Google test headers])],
189- [GTEST_CPPFLAGS="-I$withval"])
190-
191- GTEST_CPPFLAGS="$GTEST_CPPFLAGS -I$GTEST_SOURCE"
192-
193- AC_CHECK_FILES([$GTEST_SOURCE/src/gtest-all.cc]
194- [$GTEST_SOURCE/src/gtest_main.cc],
195- [have_gtest=yes],
196- [have_gtest=no])
197-
198- AS_IF([test "x$have_gtest_source" = xyes],
199- [AC_SUBST(GTEST_CPPFLAGS)]
200- [AC_SUBST(GTEST_SOURCE)])
201-]) # _CHECK_GTEST
202-
203 # CHECK_XORG_GTEST([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
204 #
205 # Checks whether the xorg-gtest source is available on the system. Allows for
206@@ -61,7 +32,7 @@
207 # Both default actions are no-ops.
208 AC_DEFUN([CHECK_XORG_GTEST],
209 [
210- AC_REQUIRE([_CHECK_GTEST])
211+ AC_REQUIRE([CHECK_GTEST])
212
213 PKG_CHECK_EXISTS([xorg-gtest],
214 [have_xorg_gtest=yes],
215
216=== modified file 'src/handle.cpp'
217--- src/handle.cpp 2012-11-20 20:13:00 +0000
218+++ src/handle.cpp 2013-03-25 13:49:07 +0000
219@@ -30,9 +30,6 @@
220 #include <stdexcept>
221
222 #include <oif/frame.h>
223-#ifdef FRAME_X11_BACKEND
224- #include <oif/frame_x11.h>
225-#endif
226
227 #include "atomic-recognizer.h"
228 #include "event.h"
229@@ -154,9 +151,7 @@
230 if (frame_touch_get_state(touch) != UFTouchStateBegin)
231 continue;
232
233-#ifdef FRAME_X11_BACKEND
234- frame_x11_reject_touch(device, window_id, frame_touch_get_id(touch));
235-#endif
236+ frame_reject_touch(device, window_id, frame_touch_get_id(touch));
237 }
238 }
239
240
241=== modified file 'src/touch.cpp'
242--- src/touch.cpp 2012-11-20 20:13:00 +0000
243+++ src/touch.cpp 2013-03-25 13:49:07 +0000
244@@ -20,10 +20,6 @@
245
246 #include "touch.h"
247
248-#ifdef FRAME_X11_BACKEND
249- #include <oif/frame_x11.h>
250-#endif
251-
252 #include "log.h"
253
254 namespace oif {
255@@ -73,10 +69,8 @@
256
257 void Touch::Accept() {
258 LOG(Dbg) << "accepting touch " << id_ << "\n";
259-#ifdef FRAME_X11_BACKEND
260- if (frame_x11_accept_touch(device_, window_id_, id_) != UFStatusSuccess)
261+ if (frame_accept_touch(device_, window_id_, id_) != UFStatusSuccess)
262 LOG(Err) << "touch " << id_ << " failed to be accepted\n";
263-#endif
264
265 accepted_ = true;
266 }
267@@ -84,10 +78,8 @@
268 Touch::~Touch() {
269 if (!accepted_) {
270 LOG(Dbg) << "rejecting touch " << id_ << "\n";
271-#ifdef FRAME_X11_BACKEND
272- if (frame_x11_reject_touch(device_, window_id_, id_) != UFStatusSuccess)
273+ if (frame_reject_touch(device_, window_id_, id_) != UFStatusSuccess)
274 LOG(Err) << "touch " << id_ << " failed to be rejected\n";
275-#endif
276 }
277 }
278
279
280=== modified file 'test/integration/device.cpp'
281--- test/integration/device.cpp 2012-07-24 21:52:37 +0000
282+++ test/integration/device.cpp 2013-03-25 13:49:07 +0000
283@@ -5,9 +5,8 @@
284 * Copyright (C) 2012 Canonical Ltd.
285 *
286 * This program is free software: you can redistribute it and/or modify it
287- * under the terms of the GNU General Public License as published by the
288- * Free Software Foundation, either version 3 of the License, or (at your
289- * option) any later version.
290+ * under the terms of version 3 of the GNU General Public License as published
291+ * by the Free Software Foundation.
292 *
293 * This program is distributed in the hope that it will be useful, but
294 * WITHOUT ANY WARRANTY; without even the implied warranty of
295
296=== modified file 'test/integration/device.h'
297--- test/integration/device.h 2012-07-24 21:52:37 +0000
298+++ test/integration/device.h 2013-03-25 13:49:07 +0000
299@@ -5,9 +5,8 @@
300 * Copyright (C) 2012 Canonical Ltd.
301 *
302 * This program is free software: you can redistribute it and/or modify it
303- * under the terms of the GNU General Public License as published by the
304- * Free Software Foundation, either version 3 of the License, or (at your
305- * option) any later version.
306+ * under the terms of version 3 of the GNU General Public License as published
307+ * by the Free Software Foundation.
308 *
309 * This program is distributed in the hope that it will be useful, but
310 * WITHOUT ANY WARRANTY; without even the implied warranty of
311
312=== modified file 'test/integration/events.h'
313--- test/integration/events.h 2012-07-24 21:52:37 +0000
314+++ test/integration/events.h 2013-03-25 13:49:07 +0000
315@@ -5,9 +5,8 @@
316 * Copyright (C) 2012 Canonical Ltd.
317 *
318 * This program is free software: you can redistribute it and/or modify it
319- * under the terms of the GNU General Public License as published by the
320- * Free Software Foundation, either version 3 of the License, or (at your
321- * option) any later version.
322+ * under the terms of version 3 of the GNU General Public License as published
323+ * by the Free Software Foundation.
324 *
325 * This program is distributed in the hope that it will be useful, but
326 * WITHOUT ANY WARRANTY; without even the implied warranty of
327
328=== modified file 'test/integration/recording.cpp'
329--- test/integration/recording.cpp 2012-07-24 21:52:37 +0000
330+++ test/integration/recording.cpp 2013-03-25 13:49:07 +0000
331@@ -5,9 +5,8 @@
332 * Copyright (C) 2012 Canonical Ltd.
333 *
334 * This program is free software: you can redistribute it and/or modify it
335- * under the terms of the GNU General Public License as published by the
336- * Free Software Foundation, either version 3 of the License, or (at your
337- * option) any later version.
338+ * under the terms of version 3 of the GNU General Public License as published
339+ * by the Free Software Foundation.
340 *
341 * This program is distributed in the hope that it will be useful, but
342 * WITHOUT ANY WARRANTY; without even the implied warranty of
343
344=== modified file 'test/integration/recording.h'
345--- test/integration/recording.h 2012-07-24 21:52:37 +0000
346+++ test/integration/recording.h 2013-03-25 13:49:07 +0000
347@@ -5,9 +5,8 @@
348 * Copyright (C) 2012 Canonical Ltd.
349 *
350 * This program is free software: you can redistribute it and/or modify it
351- * under the terms of the GNU General Public License as published by the
352- * Free Software Foundation, either version 3 of the License, or (at your
353- * option) any later version.
354+ * under the terms of version 3 of the GNU General Public License as published
355+ * by the Free Software Foundation.
356 *
357 * This program is distributed in the hope that it will be useful, but
358 * WITHOUT ANY WARRANTY; without even the implied warranty of
359
360=== modified file 'test/integration/slice-checker.cpp'
361--- test/integration/slice-checker.cpp 2012-07-24 21:52:37 +0000
362+++ test/integration/slice-checker.cpp 2013-03-25 13:49:07 +0000
363@@ -5,9 +5,8 @@
364 * Copyright (C) 2012 Canonical Ltd.
365 *
366 * This program is free software: you can redistribute it and/or modify it
367- * under the terms of the GNU General Public License as published by the
368- * Free Software Foundation, either version 3 of the License, or (at your
369- * option) any later version.
370+ * under the terms of version 3 of the GNU General Public License as published
371+ * by the Free Software Foundation.
372 *
373 * This program is distributed in the hope that it will be useful, but
374 * WITHOUT ANY WARRANTY; without even the implied warranty of
375
376=== modified file 'test/integration/slice-checker.h'
377--- test/integration/slice-checker.h 2012-07-24 21:52:37 +0000
378+++ test/integration/slice-checker.h 2013-03-25 13:49:07 +0000
379@@ -5,9 +5,8 @@
380 * Copyright (C) 2012 Canonical Ltd.
381 *
382 * This program is free software: you can redistribute it and/or modify it
383- * under the terms of the GNU General Public License as published by the
384- * Free Software Foundation, either version 3 of the License, or (at your
385- * option) any later version.
386+ * under the terms of version 3 of the GNU General Public License as published
387+ * by the Free Software Foundation.
388 *
389 * This program is distributed in the hope that it will be useful, but
390 * WITHOUT ANY WARRANTY; without even the implied warranty of
391
392=== modified file 'test/integration/x11/atomic-timeout.cpp'
393--- test/integration/x11/atomic-timeout.cpp 2012-06-21 20:30:14 +0000
394+++ test/integration/x11/atomic-timeout.cpp 2013-03-25 13:49:07 +0000
395@@ -5,9 +5,8 @@
396 * Copyright (C) 2012 Canonical Ltd.
397 *
398 * This program is free software: you can redistribute it and/or modify it
399- * under the terms of the GNU General Public License as published by the
400- * Free Software Foundation, either version 3 of the License, or (at your
401- * option) any later version.
402+ * under the terms of version 3 of the GNU General Public License as published
403+ * by the Free Software Foundation.
404 *
405 * This program is distributed in the hope that it will be useful, but
406 * WITHOUT ANY WARRANTY; without even the implied warranty of
407
408=== modified file 'test/integration/x11/dragthresh.cpp'
409--- test/integration/x11/dragthresh.cpp 2012-06-21 20:30:14 +0000
410+++ test/integration/x11/dragthresh.cpp 2013-03-25 13:49:07 +0000
411@@ -5,9 +5,8 @@
412 * Copyright (C) 2012 Canonical Ltd.
413 *
414 * This program is free software: you can redistribute it and/or modify it
415- * under the terms of the GNU General Public License as published by the
416- * Free Software Foundation, either version 3 of the License, or (at your
417- * option) any later version.
418+ * under the terms of version 3 of the GNU General Public License as published
419+ * by the Free Software Foundation.
420 *
421 * This program is distributed in the hope that it will be useful, but
422 * WITHOUT ANY WARRANTY; without even the implied warranty of
423
424=== modified file 'test/integration/x11/fixture.cpp'
425--- test/integration/x11/fixture.cpp 2012-08-27 21:52:42 +0000
426+++ test/integration/x11/fixture.cpp 2013-03-25 13:49:07 +0000
427@@ -5,9 +5,8 @@
428 * Copyright (C) 2012 Canonical Ltd.
429 *
430 * This program is free software: you can redistribute it and/or modify it
431- * under the terms of the GNU General Public License as published by the
432- * Free Software Foundation, either version 3 of the License, or (at your
433- * option) any later version.
434+ * under the terms of version 3 of the GNU General Public License as published
435+ * by the Free Software Foundation.
436 *
437 * This program is distributed in the hope that it will be useful, but
438 * WITHOUT ANY WARRANTY; without even the implied warranty of
439
440=== modified file 'test/integration/x11/fixture.h'
441--- test/integration/x11/fixture.h 2012-06-21 20:30:14 +0000
442+++ test/integration/x11/fixture.h 2013-03-25 13:49:07 +0000
443@@ -5,9 +5,8 @@
444 * Copyright (C) 2012 Canonical Ltd.
445 *
446 * This program is free software: you can redistribute it and/or modify it
447- * under the terms of the GNU General Public License as published by the
448- * Free Software Foundation, either version 3 of the License, or (at your
449- * option) any later version.
450+ * under the terms of version 3 of the GNU General Public License as published
451+ * by the Free Software Foundation.
452 *
453 * This program is distributed in the hope that it will be useful, but
454 * WITHOUT ANY WARRANTY; without even the implied warranty of
455
456=== modified file 'test/integration/x11/hold-reject.cpp'
457--- test/integration/x11/hold-reject.cpp 2012-06-21 20:30:14 +0000
458+++ test/integration/x11/hold-reject.cpp 2013-03-25 13:49:07 +0000
459@@ -5,9 +5,8 @@
460 * Copyright (C) 2012 Canonical Ltd.
461 *
462 * This program is free software: you can redistribute it and/or modify it
463- * under the terms of the GNU General Public License as published by the
464- * Free Software Foundation, either version 3 of the License, or (at your
465- * option) any later version.
466+ * under the terms of version 3 of the GNU General Public License as published
467+ * by the Free Software Foundation.
468 *
469 * This program is distributed in the hope that it will be useful, but
470 * WITHOUT ANY WARRANTY; without even the implied warranty of
471
472=== modified file 'test/integration/x11/no-premature-gestures.cpp'
473--- test/integration/x11/no-premature-gestures.cpp 2012-07-24 16:04:18 +0000
474+++ test/integration/x11/no-premature-gestures.cpp 2013-03-25 13:49:07 +0000
475@@ -5,9 +5,8 @@
476 * Copyright (C) 2012 Canonical Ltd.
477 *
478 * This program is free software: you can redistribute it and/or modify it
479- * under the terms of the GNU General Public License as published by the
480- * Free Software Foundation, either version 3 of the License, or (at your
481- * option) any later version.
482+ * under the terms of version 3 of the GNU General Public License as published
483+ * by the Free Software Foundation.
484 *
485 * This program is distributed in the hope that it will be useful, but
486 * WITHOUT ANY WARRANTY; without even the implied warranty of
487
488=== modified file 'test/integration/x11/no-tap-after-drag.cpp'
489--- test/integration/x11/no-tap-after-drag.cpp 2012-07-24 16:04:18 +0000
490+++ test/integration/x11/no-tap-after-drag.cpp 2013-03-25 13:49:07 +0000
491@@ -5,9 +5,8 @@
492 * Copyright (C) 2012 Canonical Ltd.
493 *
494 * This program is free software: you can redistribute it and/or modify it
495- * under the terms of the GNU General Public License as published by the
496- * Free Software Foundation, either version 3 of the License, or (at your
497- * option) any later version.
498+ * under the terms of version 3 of the GNU General Public License as published
499+ * by the Free Software Foundation.
500 *
501 * This program is distributed in the hope that it will be useful, but
502 * WITHOUT ANY WARRANTY; without even the implied warranty of
503
504=== modified file 'test/integration/x11/parallel-atomic-gestures.cpp'
505--- test/integration/x11/parallel-atomic-gestures.cpp 2012-06-21 20:30:14 +0000
506+++ test/integration/x11/parallel-atomic-gestures.cpp 2013-03-25 13:49:07 +0000
507@@ -5,9 +5,8 @@
508 * Copyright (C) 2012 Canonical Ltd.
509 *
510 * This program is free software: you can redistribute it and/or modify it
511- * under the terms of the GNU General Public License as published by the
512- * Free Software Foundation, either version 3 of the License, or (at your
513- * option) any later version.
514+ * under the terms of version 3 of the GNU General Public License as published
515+ * by the Free Software Foundation.
516 *
517 * This program is distributed in the hope that it will be useful, but
518 * WITHOUT ANY WARRANTY; without even the implied warranty of
519
520=== modified file 'test/integration/x11/tap-touch-accept.cpp'
521--- test/integration/x11/tap-touch-accept.cpp 2012-06-21 20:30:14 +0000
522+++ test/integration/x11/tap-touch-accept.cpp 2013-03-25 13:49:07 +0000
523@@ -5,9 +5,8 @@
524 * Copyright (C) 2012 Canonical Ltd.
525 *
526 * This program is free software: you can redistribute it and/or modify it
527- * under the terms of the GNU General Public License as published by the
528- * Free Software Foundation, either version 3 of the License, or (at your
529- * option) any later version.
530+ * under the terms of version 3 of the GNU General Public License as published
531+ * by the Free Software Foundation.
532 *
533 * This program is distributed in the hope that it will be useful, but
534 * WITHOUT ANY WARRANTY; without even the implied warranty of
535
536=== modified file 'test/integration/x11/timeout.cpp'
537--- test/integration/x11/timeout.cpp 2012-06-21 20:30:14 +0000
538+++ test/integration/x11/timeout.cpp 2013-03-25 13:49:07 +0000
539@@ -5,9 +5,8 @@
540 * Copyright (C) 2012 Canonical Ltd.
541 *
542 * This program is free software: you can redistribute it and/or modify it
543- * under the terms of the GNU General Public License as published by the
544- * Free Software Foundation, either version 3 of the License, or (at your
545- * option) any later version.
546+ * under the terms of version 3 of the GNU General Public License as published
547+ * by the Free Software Foundation.
548 *
549 * This program is distributed in the hope that it will be useful, but
550 * WITHOUT ANY WARRANTY; without even the implied warranty of
551
552=== modified file 'test/integration/x11/twodrag.cpp'
553--- test/integration/x11/twodrag.cpp 2012-06-21 20:30:14 +0000
554+++ test/integration/x11/twodrag.cpp 2013-03-25 13:49:07 +0000
555@@ -5,9 +5,8 @@
556 * Copyright (C) 2012 Canonical Ltd.
557 *
558 * This program is free software: you can redistribute it and/or modify it
559- * under the terms of the GNU General Public License as published by the
560- * Free Software Foundation, either version 3 of the License, or (at your
561- * option) any later version.
562+ * under the terms of version 3 of the GNU General Public License as published
563+ * by the Free Software Foundation.
564 *
565 * This program is distributed in the hope that it will be useful, but
566 * WITHOUT ANY WARRANTY; without even the implied warranty of
567
568=== modified file 'test/regular/Makefile.am'
569--- test/regular/Makefile.am 2012-11-20 20:13:00 +0000
570+++ test/regular/Makefile.am 2013-03-25 13:49:07 +0000
571@@ -25,8 +25,6 @@
572
573 check_regular_SOURCES = \
574 grail.cpp \
575- frame_mock.cpp \
576- frame_mock.h \
577 grail-fixture.cpp \
578 grail-fixture.h \
579 intermittent_3touch.cpp \
580@@ -43,7 +41,8 @@
581 $(top_builddir)/src/.libs/libgrail.a \
582 $(top_builddir)/test/gtest/libgtest_grail.a \
583 $(COVERAGE_LIBS) \
584- $(GTEST_LIBS)
585+ $(GTEST_LIBS) \
586+ $(FRAME_LIBS)
587
588 check_regular_CPPFLAGS = \
589 --std=c++0x \
590
591=== removed file 'test/regular/frame_mock.cpp'
592--- test/regular/frame_mock.cpp 2012-11-21 13:31:12 +0000
593+++ test/regular/frame_mock.cpp 1970-01-01 00:00:00 +0000
594@@ -1,254 +0,0 @@
595-#include "frame_mock.h"
596-
597-extern "C" {
598-
599-/*****************************************************************************
600- * Event
601- *****************************************************************************/
602-
603-UFEventType frame_event_get_type(UFEvent self)
604-{
605- return self->type;
606-}
607-
608-UFStatus frame_event_get_property(UFEvent self, UFEventProperty property,
609- void *value)
610-{
611- UFStatus status = UFStatusErrorUnknownProperty;
612-
613- if (property == UFEventPropertyFrame && self->frame_ptr)
614- {
615- *((UFFrame*)value) = self->frame_ptr.get();
616- status = UFStatusSuccess;
617- }
618- else if (property == UFEventPropertyDevice && self->device_ptr)
619- {
620- *((UFDevice*)value) = self->device_ptr.get();
621- status = UFStatusSuccess;
622- }
623-
624- return status;
625-}
626-
627-uint64_t frame_event_get_time(UFEvent self)
628-{
629- return self->time;
630-}
631-
632-void frame_event_ref(UFEvent self)
633-{
634- ++self->ref_count;
635-}
636-
637-void frame_event_unref(UFEvent self)
638-{
639- --self->ref_count;
640-
641- if (self->ref_count == 0)
642- delete self;
643-}
644-
645-/*****************************************************************************
646- * Frame
647- *****************************************************************************/
648-
649-UFStatus frame_frame_get_touch_by_index(UFFrame self, unsigned int index,
650- UFTouch *touch)
651-{
652- UFStatus status;
653-
654- if (index < self->touches.size())
655- {
656- *touch = &(self->touches[index]);
657- status = UFStatusSuccess;
658- }
659- else
660- {
661- status = UFStatusErrorInvalidTouch;
662- }
663-
664- return status;
665-}
666-
667-UFStatus frame_frame_get_touch_by_id(UFFrame self, UFTouchId touch_id,
668- UFTouch* touch_pointer)
669-{
670- UFStatus status = UFStatusErrorInvalidTouch;
671-
672- for (struct UFTouch_ &touch : self->touches)
673- {
674- if (touch.id == touch_id)
675- {
676- *touch_pointer = &touch;
677- status = UFStatusSuccess;
678- break;
679- }
680- }
681-
682- return status;
683-}
684-
685-uint32_t frame_frame_get_num_touches(UFFrame self)
686-{
687- return self->touches.size();
688-}
689-
690-UFDevice frame_frame_get_device(UFFrame self)
691-{
692- return self->device_ptr.get();
693-}
694-
695-UFWindowId frame_frame_get_window_id(UFFrame self)
696-{
697- return self->window_id;
698-}
699-
700-/*****************************************************************************
701- * Touch
702- *****************************************************************************/
703-
704-UFStatus frame_touch_get_property(UFTouch self, UFTouchProperty property,
705- void *value)
706-{
707- UFStatus status;
708-
709- switch (property)
710- {
711- case UFTouchPropertyOwned:
712- *((int*)value) = self->owned;
713- status = UFStatusSuccess;
714- break;
715-
716- case UFTouchPropertyPendingEnd:
717- *((int*)value) = self->pending_end;
718- status = UFStatusSuccess;
719- break;
720-
721- default:
722- status = UFStatusErrorUnknownProperty;
723- }
724-
725- return status;
726-}
727-
728-UFTouchId frame_touch_get_id(UFTouch self)
729-{
730- return self->id;
731-}
732-
733-UFTouchState frame_touch_get_state(UFTouch self)
734-{
735- return self->state;
736-}
737-
738-float frame_touch_get_window_x(UFTouch self)
739-{
740- return self->window_x;
741-}
742-
743-float frame_touch_get_window_y(UFTouch self)
744-{
745- return self->window_y;
746-}
747-
748-float frame_touch_get_device_x(UFTouch self)
749-{
750- return self->device_x;
751-}
752-
753-float frame_touch_get_device_y(UFTouch self)
754-{
755- return self->device_y;
756-}
757-
758-uint64_t frame_touch_get_time(UFTouch self)
759-{
760- return self->time;
761-}
762-
763-uint64_t frame_touch_get_start_time(UFTouch self)
764-{
765- return self->start_time;
766-}
767-
768-/*****************************************************************************
769- * Device
770- *****************************************************************************/
771-
772-UFStatus frame_device_get_property(UFDevice self, UFDeviceProperty property,
773- void *value)
774-{
775- UFStatus status;
776-
777- switch (property)
778- {
779- case UFDevicePropertyDirect:
780- *((int*)value) = self->direct;
781- status = UFStatusSuccess;
782- break;
783-
784- default:
785- status = UFStatusErrorUnknownProperty;
786- }
787-
788- return status;
789-}
790-
791-UFStatus frame_device_get_axis_by_type(UFDevice self, UFAxisType axis_type,
792- UFAxis *axis_pointer)
793-{
794- UFStatus status = UFStatusErrorInvalidAxis;
795-
796- for (struct UFAxis_ &axis : self->axes)
797- {
798- if (axis.type == axis_type)
799- {
800- *axis_pointer = &axis;
801- status = UFStatusSuccess;
802- break;
803- }
804- }
805-
806- return status;
807-}
808-
809-float frame_device_get_window_resolution_x(UFDevice self)
810-{
811- return self->window_resolution_x;
812-}
813-
814-float frame_device_get_window_resolution_y(UFDevice self)
815-{
816- return self->window_resolution_y;
817-}
818-
819-/*****************************************************************************
820- * Axis
821- *****************************************************************************/
822-
823-float frame_axis_get_resolution(UFAxis self)
824-{
825- return self->resolution;
826-}
827-
828-/*****************************************************************************
829- * Frame X11
830- *****************************************************************************/
831-
832-#ifdef FRAME_X11_BACKEND
833-UFStatus frame_x11_accept_touch(UFDevice device, UFWindowId window,
834- UFTouchId touch_id)
835-{
836- device->x11_touch_acceptance[window][touch_id] = true;
837- return UFStatusSuccess;
838-}
839-
840-UFStatus frame_x11_reject_touch(UFDevice device, UFWindowId window,
841- UFTouchId touch_id)
842-{
843- device->x11_touch_acceptance[window][touch_id] = false;
844- return UFStatusSuccess;
845-}
846-#endif // FRAME_X11_BACKEND
847-
848-} // extern "C"
849
850=== removed file 'test/regular/frame_mock.h'
851--- test/regular/frame_mock.h 2012-11-21 13:31:12 +0000
852+++ test/regular/frame_mock.h 1970-01-01 00:00:00 +0000
853@@ -1,66 +0,0 @@
854-#ifndef FRAME_MOCK_H
855-#define FRAME_MOCK_H
856-
857-#include <oif/frame.h>
858-#include <map>
859-#include <vector>
860-#include <memory>
861-
862-extern "C" {
863-
864-struct UFHandle_
865-{
866- int fd;
867-};
868-
869-struct UFEvent_
870-{
871- UFEvent_() {ref_count = 1;}
872- UFEventType type;
873- std::shared_ptr<struct UFDevice_> device_ptr;
874- std::unique_ptr<struct UFFrame_> frame_ptr;
875- uint64_t time;
876- int ref_count;
877-};
878-
879-struct UFFrame_
880-{
881- std::shared_ptr<struct UFDevice_> device_ptr;
882- UFWindowId window_id;
883- std::vector<struct UFTouch_> touches;
884-};
885-
886-struct UFTouch_
887-{
888- UFTouchId id;
889- UFTouchState state;
890- float window_x;
891- float window_y;
892- float device_x;
893- float device_y;
894- uint64_t time;
895- uint64_t start_time;
896- int owned;
897- int pending_end;
898-};
899-
900-struct UFDevice_
901-{
902- int direct;
903- std::vector<struct UFAxis_> axes;
904- float window_resolution_x;
905- float window_resolution_y;
906-#ifdef FRAME_X11_BACKEND
907- std::map<UFWindowId, std::map<UFTouchId, bool> > x11_touch_acceptance;
908-#endif
909-};
910-
911-struct UFAxis_
912-{
913- UFAxisType type;
914- float resolution;
915-};
916-
917-} // extern "C"
918-
919-#endif
920
921=== modified file 'test/regular/grail-fixture.cpp'
922--- test/regular/grail-fixture.cpp 2012-07-23 13:11:21 +0000
923+++ test/regular/grail-fixture.cpp 2013-03-25 13:49:07 +0000
924@@ -1,72 +1,58 @@
925 #include "grail-fixture.h"
926
927-void GrailTest::SendFrameEvent(
928- uint64_t time,
929- UFWindowId window_id,
930- const struct UFTouch_ &touch_struct)
931-{
932- std::vector<struct UFTouch_> touches;
933- touches.push_back(touch_struct);
934- SendFrameEvent(time, window_id, touches);
935-}
936-
937-void GrailTest::SendFrameEvent(
938- uint64_t time,
939- UFWindowId window_id,
940- std::vector<struct UFTouch_> &touches)
941-{
942- UFFrame frame = new struct UFFrame_;
943- frame->device_ptr = device_ptr;
944- frame->window_id = window_id;
945- frame->touches = touches;
946-
947- UFEvent frame_event = new struct UFEvent_;
948- frame_event->type = UFEventTypeFrame;
949- frame_event->time = time;
950- frame_event->frame_ptr.reset(std::move(frame));
951-
952- grail_process_frame_event(grail_handle, frame_event);
953- frame_event_unref(frame_event);
954- frame_event = nullptr;
955+void GrailTest::SendFrameEvent(uint64_t time, UFBackendFrame frame)
956+{
957+ UFEvent event = frame_event_new();
958+ frame_event_set_type(event, UFEventTypeFrame);
959+ frame_event_set_frame(event, frame);
960+ frame_event_set_time(event, time);
961+
962+ grail_process_frame_event(grail_handle, event);
963+ frame_event_unref(event);
964+ event = nullptr;
965+
966+ if (previous_frame_)
967+ frame_backend_frame_delete(previous_frame_);
968+ previous_frame_ = frame;
969 }
970
971 void GrailTest::SendDeviceAddedEvent(uint64_t time)
972 {
973- UFEvent frame_event = new struct UFEvent_;
974- frame_event->type = UFEventTypeDeviceAdded;
975- frame_event->time = time;
976- frame_event->device_ptr = device_ptr;
977+ UFEvent event = frame_event_new();
978+ frame_event_set_type(event, UFEventTypeDeviceAdded);
979+ frame_event_set_time(event, time);
980+ frame_event_set_device(event, device_);
981
982- grail_process_frame_event(grail_handle, frame_event);
983- frame_event_unref(frame_event);
984- frame_event = nullptr;
985+ grail_process_frame_event(grail_handle, event);
986+ frame_event_unref(event);
987+ event = nullptr;
988 }
989
990-void GrailTest::FillFakeDeviceStruct()
991+void GrailTest::CreateFakeDevice()
992 {
993- struct UFAxis_ axis_x_struct;
994- axis_x_struct.type = UFAxisTypeX;
995- axis_x_struct.resolution = 3764.70;
996-
997- struct UFAxis_ axis_y_struct;
998- axis_y_struct.type = UFAxisTypeY;
999- axis_y_struct.resolution = 3764.70;
1000-
1001- device_ptr.reset(new struct UFDevice_);
1002- device_ptr->direct = 1;
1003- device_ptr->axes.push_back(axis_x_struct);
1004- device_ptr->axes.push_back(axis_y_struct);
1005+ device_ = frame_backend_device_new();
1006+
1007+ frame_backend_device_add_axis(device_,
1008+ UFAxisTypeX,
1009+ 0, 10000, 3764.70);
1010+
1011+ frame_backend_device_add_axis(device_,
1012+ UFAxisTypeY,
1013+ 0, 10000, 3764.70);
1014+
1015+ frame_backend_device_set_direct(device_, 1);
1016+
1017 /* pixels/m */
1018- device_ptr->window_resolution_x = 3764.70;
1019- device_ptr->window_resolution_y = 3764.70;
1020+ frame_backend_device_set_window_resolution(device_, 3764.70, 3764.70);
1021 }
1022
1023 UGSubscription GrailTest::CreateSubscription(
1024 unsigned int num_touches, UGGestureTypeMask gesture_mask,
1025- UFDevice device, UFWindowId window_id)
1026+ UFWindowId window_id)
1027 {
1028 UGStatus status;
1029 UGSubscription subscription = nullptr;
1030+ UFDevice uf_device = frame_backend_device_get_device(device_);
1031
1032 status = grail_subscription_new(&subscription);
1033 if (status != UGStatusSuccess)
1034@@ -77,7 +63,7 @@
1035
1036 status = grail_subscription_set_property(subscription,
1037 UGSubscriptionPropertyDevice,
1038- &device);
1039+ &uf_device);
1040 if (status != UGStatusSuccess)
1041 {
1042 ADD_FAILURE() << "failed to set device subscription";
1043@@ -150,75 +136,111 @@
1044 BeginTouchWindowCoords(touch_id, touch_id * 10.0f, 0.0f);
1045 }
1046
1047+namespace
1048+{
1049+void IncrementFrameActiveTouches(UFBackendFrame frame_backend)
1050+{
1051+ UFFrame frame = frame_backend_frame_get_frame(frame_backend);
1052+ unsigned int active_touches;
1053+ frame_frame_get_property(frame, UFFramePropertyActiveTouches, &active_touches);
1054+ frame_backend_frame_set_active_touches(frame_backend, active_touches + 1);
1055+}
1056+
1057+} // anonymous namespace
1058+
1059 void GrailTest::BeginTouchWindowCoords(int touch_id, float window_x, float window_y)
1060 {
1061- struct UFTouch_ touch_struct;
1062- touch_struct.id = touch_id;
1063- touch_struct.state = UFTouchStateBegin;
1064- touch_struct.time = time;
1065- touch_struct.start_time = touch_struct.time;
1066- touch_struct.window_x = window_x;
1067- touch_struct.window_y = window_y;
1068- touch_struct.owned = 0;
1069- touch_struct.pending_end = 0;
1070-
1071- touches.push_back(touch_struct);
1072-
1073- SendFrameEvent(time, fake_window_id, touches);
1074-
1075- // leave it in a neutral state for next uses of touches vector
1076- touches[touches.size()-1].state = UFTouchStateUpdate;
1077+ UFBackendTouch touch = frame_backend_touch_new();
1078+ frame_backend_touch_set_id(touch, touch_id);
1079+ frame_backend_touch_set_time(touch, time);
1080+ frame_backend_touch_set_start_time(touch, time);
1081+ frame_backend_touch_set_window_pos(touch, window_x, window_y);
1082+ frame_backend_touch_set_owned(touch, 0);
1083+ frame_backend_touch_set_pending_end(touch, 0);
1084+
1085+ UFBackendFrame frame;
1086+ if (previous_frame_)
1087+ frame = frame_backend_frame_create_next(previous_frame_);
1088+ else
1089+ frame = frame_backend_frame_new();
1090+
1091+ frame_backend_frame_set_device(frame, device_);
1092+
1093+ frame_backend_frame_give_touch(frame, &touch);
1094+ IncrementFrameActiveTouches(frame);
1095+ frame_backend_frame_set_window_id(frame, fake_window_id);
1096+
1097+ SendFrameEvent(time, frame);
1098 }
1099
1100 void GrailTest::GiveTouchOwnership(int touch_id)
1101 {
1102- auto iterator = FindTouch(touch_id);
1103- iterator->state = UFTouchStateUpdate;
1104- iterator->owned = 1; // ownership will trigger delivery of grail events.
1105- iterator->time = time;
1106-
1107- SendFrameEvent(time, fake_window_id, touches);
1108-}
1109-
1110-void GrailTest::SetTouchWindowCoords(int touch_id, float window_x, float window_y)
1111-{
1112- auto iterator = FindTouch(touch_id);
1113- iterator->window_x = window_x;
1114- iterator->window_y = window_y;
1115-}
1116-
1117-void GrailTest::UpdateTouches()
1118-{
1119- for (struct UFTouch_ &touch : touches)
1120- {
1121- touch.time = time;
1122- }
1123- SendFrameEvent(time, fake_window_id, touches);
1124+ std::function<void(UFBackendTouch)> update_func =
1125+ [](UFBackendTouch touch)
1126+ {
1127+ frame_backend_touch_set_owned(touch, 1);
1128+ };
1129+
1130+ UpdateTouch(touch_id, update_func);
1131+}
1132+
1133+void GrailTest::UpdateTouch(int touch_id,
1134+ std::function< void(UFBackendTouch) >& update_func)
1135+{
1136+ assert(previous_frame_); // error would be in the test itself
1137+
1138+ UFBackendFrame frame = frame_backend_frame_create_next(previous_frame_);
1139+ frame_backend_frame_set_device(frame, device_);
1140+ frame_backend_frame_set_window_id(frame, fake_window_id);
1141+
1142+ UFStatus status;
1143+ UFBackendTouch touch;
1144+ status = frame_backend_frame_borrow_touch_by_id(frame, touch_id, &touch);
1145+ ASSERT_EQ(UFStatusSuccess, status);
1146+
1147+ update_func(touch);
1148+ frame_backend_touch_set_time(touch, time);
1149+
1150+ status = frame_backend_frame_give_touch(frame, &touch);
1151+ ASSERT_EQ(UFStatusSuccess, status);
1152+
1153+ SendFrameEvent(time, frame);
1154+}
1155+
1156+void GrailTest::SetTouchWindowCoords(UFBackendFrame frame,
1157+ int touch_id, float window_x, float window_y)
1158+{
1159+ UFStatus status;
1160+ UFBackendTouch touch;
1161+ status = frame_backend_frame_borrow_touch_by_id(frame, touch_id, &touch);
1162+ ASSERT_EQ(UFStatusSuccess, status);
1163+
1164+ frame_backend_touch_set_window_pos(touch, window_x, window_y);
1165+
1166+ status = frame_backend_frame_give_touch(frame, &touch);
1167+ ASSERT_EQ(UFStatusSuccess, status);
1168+}
1169+
1170+void GrailTest::SendTouchPendingEnd(int touch_id)
1171+{
1172+ std::function<void(UFBackendTouch)> update_func =
1173+ [](UFBackendTouch touch)
1174+ {
1175+ frame_backend_touch_set_pending_end(touch, 1);
1176+ };
1177+
1178+ UpdateTouch(touch_id, update_func);
1179 }
1180
1181 void GrailTest::EndTouch(int touch_id)
1182 {
1183- auto iterator = FindTouch(touch_id);
1184- iterator->state = UFTouchStateEnd;
1185- iterator->time = time;
1186-
1187- SendFrameEvent(time, fake_window_id, touches);
1188-
1189- touches.erase(iterator);
1190-}
1191-
1192-std::vector<struct UFTouch_>::iterator GrailTest::FindTouch(unsigned int touch_id)
1193-{
1194- std::vector<struct UFTouch_>::iterator it = touches.begin();
1195-
1196- while (it != touches.end())
1197- {
1198- if (it->id == touch_id)
1199- return it;
1200- ++it;
1201- }
1202-
1203- return it;
1204+ std::function<void(UFBackendTouch)> update_func =
1205+ [](UFBackendTouch touch)
1206+ {
1207+ frame_backend_touch_set_ended(touch);
1208+ };
1209+
1210+ UpdateTouch(touch_id, update_func);
1211 }
1212
1213 void GrailTest::ProcessGrailEvents()
1214
1215=== modified file 'test/regular/grail-fixture.h'
1216--- test/regular/grail-fixture.h 2012-08-27 21:52:42 +0000
1217+++ test/regular/grail-fixture.h 2013-03-25 13:49:07 +0000
1218@@ -3,8 +3,9 @@
1219
1220 #include <gtest/gtest.h>
1221 #include <oif/grail.h>
1222-#include "frame_mock.h"
1223+#include <oif/frame_backend.h>
1224
1225+#include <functional>
1226 #include <list>
1227 #include <set>
1228
1229@@ -27,41 +28,38 @@
1230 virtual void SetUp()
1231 {
1232 grail_handle = NULL;
1233- FillFakeDeviceStruct();
1234+ previous_frame_ = nullptr;
1235+ CreateFakeDevice();
1236 }
1237
1238 virtual void TearDown()
1239 {
1240 if (grail_handle)
1241 grail_delete(grail_handle);
1242+
1243+ if (previous_frame_)
1244+ frame_backend_frame_delete(previous_frame_);
1245+
1246+ frame_backend_device_delete(device_);
1247 }
1248
1249 protected:
1250
1251 UGSubscription CreateSubscription(unsigned int num_touches,
1252- UGGestureTypeMask gesture_mask, UFDevice device, UFWindowId window_id);
1253+ UGGestureTypeMask gesture_mask, UFWindowId window_id);
1254
1255- void FillFakeDeviceStruct();
1256- void SendDeviceAddedEvent();
1257- void SendFrameEvent(
1258- uint64_t time,
1259- UFWindowId window_id,
1260- const struct UFTouch_ &touch_struct);
1261- void SendFrameEvent(
1262- uint64_t time,
1263- UFWindowId window_id,
1264- std::vector<struct UFTouch_> &touches);
1265+ void CreateFakeDevice();
1266 void SendDeviceAddedEvent(uint64_t time);
1267+ void SendFrameEvent(uint64_t time, UFBackendFrame frame);
1268
1269 void BeginTouch(int touch_id);
1270 void BeginTouchWindowCoords(int touch_id, float window_x, float window_y);
1271 void GiveTouchOwnership(int touch_id);
1272- void SetTouchWindowCoords(int touch_id, float window_x, float window_y);
1273- /* Updates the time of all touches in the "touches" vector and sends that vector
1274- in a frame event to grail */
1275- void UpdateTouches();
1276+ void SetTouchWindowCoords(UFBackendFrame frame,
1277+ int touch_id, float window_x, float window_y);
1278+ void SendTouchPendingEnd(int touch_id);
1279 void EndTouch(int touch_id);
1280- std::vector<struct UFTouch_>::iterator FindTouch(unsigned int touch_id);
1281+ void UpdateTouch(int touch_id, std::function< void(UFBackendTouch) >& update_func);
1282
1283 /* Fetches and processes all pending grail events, updating grail_gestures
1284 list accordingly. */
1285@@ -75,11 +73,11 @@
1286 void PrintSlice(UGSlice slice);
1287
1288 UGHandle grail_handle;
1289- std::shared_ptr<struct UFDevice_> device_ptr;
1290+ UFBackendDevice device_;
1291
1292 uint64_t time;
1293 UFWindowId fake_window_id;
1294- std::vector<struct UFTouch_> touches;
1295+ UFBackendFrame previous_frame_;
1296
1297 /*
1298 A representation of the currently active gestures according to the grail events
1299
1300=== modified file 'test/regular/intermittent_3touch.cpp'
1301--- test/regular/intermittent_3touch.cpp 2012-08-27 21:41:43 +0000
1302+++ test/regular/intermittent_3touch.cpp 2013-03-25 13:49:07 +0000
1303@@ -25,7 +25,7 @@
1304 SendDeviceAddedEvent(time);
1305
1306 UGSubscription subscription =
1307- CreateSubscription(3, UGGestureTypeTouch, device_ptr.get(), fake_window_id);
1308+ CreateSubscription(3, UGGestureTypeTouch, fake_window_id);
1309 if (!subscription) return;
1310
1311 time = 20531903;
1312
1313=== modified file 'test/regular/one-touch-gest-finished.cpp'
1314--- test/regular/one-touch-gest-finished.cpp 2012-08-27 21:41:43 +0000
1315+++ test/regular/one-touch-gest-finished.cpp 2013-03-25 13:49:07 +0000
1316@@ -10,7 +10,7 @@
1317 TEST_F(SingleTouchGestureTest, QuickTapEndsWithConstructionFinished)
1318 {
1319 UGStatus status;
1320- UFWindowId fake_window_id = 321;
1321+ fake_window_id = 321;
1322 uint64_t time = 1234;
1323
1324 status = grail_new(&grail_handle);
1325@@ -19,30 +19,14 @@
1326 SendDeviceAddedEvent(time);
1327
1328 UGSubscription subscription =
1329- CreateSubscription(1, UGGestureTypeTouch, device_ptr.get(), fake_window_id);
1330+ CreateSubscription(1, UGGestureTypeTouch, fake_window_id);
1331 if (!subscription) return;
1332
1333 time += 10;
1334- struct UFTouch_ touch_struct;
1335- touch_struct.id = 1;
1336- touch_struct.state = UFTouchStateBegin;
1337- touch_struct.window_x = 10.0f;
1338- touch_struct.window_y = 10.0f;
1339- touch_struct.device_x = 100.0f;
1340- touch_struct.device_y = 100.0f;
1341- touch_struct.time = time;
1342- touch_struct.start_time = touch_struct.time;
1343- touch_struct.owned = 0;
1344- touch_struct.pending_end = 0;
1345-
1346- SendFrameEvent(time, fake_window_id, touch_struct);
1347+ BeginTouch(1);
1348
1349 time += 10;
1350- touch_struct.state = UFTouchStateUpdate;
1351- touch_struct.owned = 1; // ownership will trigger delivery of grail events.
1352- touch_struct.time = time;
1353-
1354- SendFrameEvent(time, fake_window_id, touch_struct);
1355+ GiveTouchOwnership(1);
1356
1357 // There should now be two grail events, corresponding to the frame
1358 // event that were sent, waiting to be processed.
1359@@ -80,10 +64,7 @@
1360 // now end the touch
1361
1362 time += 10;
1363- touch_struct.state = UFTouchStateEnd;
1364- touch_struct.time = time;
1365-
1366- SendFrameEvent(time, fake_window_id, touch_struct);
1367+ EndTouch(1);
1368
1369 // An end event should come and its "construction finished" property should be true
1370
1371
1372=== modified file 'test/regular/pending-end.cpp'
1373--- test/regular/pending-end.cpp 2012-08-27 21:41:43 +0000
1374+++ test/regular/pending-end.cpp 2013-03-25 13:49:07 +0000
1375@@ -18,7 +18,7 @@
1376
1377 UGSubscription sub_3touch =
1378 CreateSubscription(3, UGGestureTypeTouch | UGGestureTypeDrag | UGGestureTypePinch,
1379- device_ptr.get(), fake_window_id);
1380+ fake_window_id);
1381 ASSERT_NE(nullptr, sub_3touch);
1382
1383 time = 13688369;
1384@@ -41,15 +41,17 @@
1385 for (int i=1; i<=4; ++i)
1386 {
1387 time += 100;
1388- SetTouchWindowCoords(1, 30.0f, i*10.0f);
1389- SetTouchWindowCoords(2, 40.0f, i*10.0f);
1390- SetTouchWindowCoords(3, 50.0f, i*10.0f);
1391- UpdateTouches();
1392+ UFBackendFrame frame = frame_backend_frame_create_next(previous_frame_);
1393+ frame_backend_frame_set_device(frame, device_);
1394+ frame_backend_frame_set_window_id(frame, fake_window_id);
1395+ SetTouchWindowCoords(frame, 1, 30.0f, i*10.0f);
1396+ SetTouchWindowCoords(frame, 2, 40.0f, i*10.0f);
1397+ SetTouchWindowCoords(frame, 3, 50.0f, i*10.0f);
1398+ SendFrameEvent(time, frame);
1399 }
1400
1401 time = 13688877;
1402- FindTouch(1)->pending_end = 1;
1403- UpdateTouches();
1404+ SendTouchPendingEnd(1);
1405
1406 ProcessGrailEvents();
1407 // no gesture slices yet since not all touches are owned
1408
1409=== modified file 'test/regular/still-gest-finishes.cpp'
1410--- test/regular/still-gest-finishes.cpp 2012-08-27 21:41:43 +0000
1411+++ test/regular/still-gest-finishes.cpp 2013-03-25 13:49:07 +0000
1412@@ -19,30 +19,14 @@
1413 SendDeviceAddedEvent(time);
1414
1415 UGSubscription subscription =
1416- CreateSubscription(1, UGGestureTypeTouch, device_ptr.get(), fake_window_id);
1417+ CreateSubscription(1, UGGestureTypeTouch, fake_window_id);
1418 if (!subscription) return;
1419
1420 time += 10;
1421- struct UFTouch_ touch_struct;
1422- touch_struct.id = 1;
1423- touch_struct.state = UFTouchStateBegin;
1424- touch_struct.window_x = 10.0f;
1425- touch_struct.window_y = 10.0f;
1426- touch_struct.device_x = 100.0f;
1427- touch_struct.device_y = 100.0f;
1428- touch_struct.time = time;
1429- touch_struct.start_time = touch_struct.time;
1430- touch_struct.owned = 0;
1431- touch_struct.pending_end = 0;
1432-
1433- SendFrameEvent(time, fake_window_id, touch_struct);
1434+ BeginTouch(1);
1435
1436 time += 10;
1437- touch_struct.state = UFTouchStateUpdate;
1438- touch_struct.owned = 1; // ownership will trigger delivery of grail events.
1439- touch_struct.time = time;
1440-
1441- SendFrameEvent(time, fake_window_id, touch_struct);
1442+ GiveTouchOwnership(1); // ownership will trigger delivery of grail events.
1443
1444 // There should now be two grail events, corresponding to the frame
1445 // event that were sent, waiting to be processed.
1446
1447=== modified file 'tools/common/device.c'
1448--- tools/common/device.c 2012-06-21 20:30:14 +0000
1449+++ tools/common/device.c 2013-03-25 13:49:07 +0000
1450@@ -5,9 +5,8 @@
1451 * Copyright (C) 2010-2011 Canonical Ltd.
1452 *
1453 * This program is free software: you can redistribute it and/or modify it
1454- * under the terms of the GNU General Public License as published by the
1455- * Free Software Foundation, either version 3 of the License, or (at your
1456- * option) any later version.
1457+ * under the terms of version 3 of the GNU General Public License as published
1458+ * by the Free Software Foundation.
1459 *
1460 * This program is distributed in the hope that it will be useful, but
1461 * WITHOUT ANY WARRANTY; without even the implied warranty of
1462
1463=== modified file 'tools/common/device.h'
1464--- tools/common/device.h 2012-06-21 20:30:14 +0000
1465+++ tools/common/device.h 2013-03-25 13:49:07 +0000
1466@@ -5,9 +5,8 @@
1467 * Copyright (C) 2010-2011 Canonical Ltd.
1468 *
1469 * This program is free software: you can redistribute it and/or modify it
1470- * under the terms of the GNU General Public License as published by the
1471- * Free Software Foundation, either version 3 of the License, or (at your
1472- * option) any later version.
1473+ * under the terms of version 3 of the GNU General Public License as published
1474+ * by the Free Software Foundation.
1475 *
1476 * This program is distributed in the hope that it will be useful, but
1477 * WITHOUT ANY WARRANTY; without even the implied warranty of
1478
1479=== modified file 'tools/common/servertime.c'
1480--- tools/common/servertime.c 2012-06-21 20:30:14 +0000
1481+++ tools/common/servertime.c 2013-03-25 13:49:07 +0000
1482@@ -5,9 +5,8 @@
1483 * Copyright (C) 2010-2011 Canonical Ltd.
1484 *
1485 * This program is free software: you can redistribute it and/or modify it
1486- * under the terms of the GNU General Public License as published by the
1487- * Free Software Foundation, either version 3 of the License, or (at your
1488- * option) any later version.
1489+ * under the terms of version 3 of the GNU General Public License as published
1490+ * by the Free Software Foundation.
1491 *
1492 * This program is distributed in the hope that it will be useful, but
1493 * WITHOUT ANY WARRANTY; without even the implied warranty of
1494
1495=== modified file 'tools/common/servertime.h'
1496--- tools/common/servertime.h 2012-06-21 20:30:14 +0000
1497+++ tools/common/servertime.h 2013-03-25 13:49:07 +0000
1498@@ -5,9 +5,8 @@
1499 * Copyright (C) 2010-2011 Canonical Ltd.
1500 *
1501 * This program is free software: you can redistribute it and/or modify it
1502- * under the terms of the GNU General Public License as published by the
1503- * Free Software Foundation, either version 3 of the License, or (at your
1504- * option) any later version.
1505+ * under the terms of version 3 of the GNU General Public License as published
1506+ * by the Free Software Foundation.
1507 *
1508 * This program is distributed in the hope that it will be useful, but
1509 * WITHOUT ANY WARRANTY; without even the implied warranty of
1510
1511=== modified file 'tools/common/slice.c'
1512--- tools/common/slice.c 2012-06-21 20:30:14 +0000
1513+++ tools/common/slice.c 2013-03-25 13:49:07 +0000
1514@@ -5,9 +5,8 @@
1515 * Copyright (C) 2010-2011 Canonical Ltd.
1516 *
1517 * This program is free software: you can redistribute it and/or modify it
1518- * under the terms of the GNU General Public License as published by the
1519- * Free Software Foundation, either version 3 of the License, or (at your
1520- * option) any later version.
1521+ * under the terms of version 3 of the GNU General Public License as published
1522+ * by the Free Software Foundation.
1523 *
1524 * This program is distributed in the hope that it will be useful, but
1525 * WITHOUT ANY WARRANTY; without even the implied warranty of
1526
1527=== modified file 'tools/common/slice.h'
1528--- tools/common/slice.h 2012-06-21 20:30:14 +0000
1529+++ tools/common/slice.h 2013-03-25 13:49:07 +0000
1530@@ -5,9 +5,8 @@
1531 * Copyright (C) 2010-2011 Canonical Ltd.
1532 *
1533 * This program is free software: you can redistribute it and/or modify it
1534- * under the terms of the GNU General Public License as published by the
1535- * Free Software Foundation, either version 3 of the License, or (at your
1536- * option) any later version.
1537+ * under the terms of version 3 of the GNU General Public License as published
1538+ * by the Free Software Foundation.
1539 *
1540 * This program is distributed in the hope that it will be useful, but
1541 * WITHOUT ANY WARRANTY; without even the implied warranty of
1542
1543=== modified file 'tools/grail-test-3-1.c'
1544--- tools/grail-test-3-1.c 2012-08-27 21:52:42 +0000
1545+++ tools/grail-test-3-1.c 2013-03-25 13:49:07 +0000
1546@@ -5,9 +5,8 @@
1547 * Copyright (C) 2010-2011 Canonical Ltd.
1548 *
1549 * This program is free software: you can redistribute it and/or modify it
1550- * under the terms of the GNU General Public License as published by the
1551- * Free Software Foundation, either version 3 of the License, or (at your
1552- * option) any later version.
1553+ * under the terms of version 3 of the GNU General Public License as published
1554+ * by the Free Software Foundation.
1555 *
1556 * This program is distributed in the hope that it will be useful, but
1557 * WITHOUT ANY WARRANTY; without even the implied warranty of
1558
1559=== modified file 'tools/grail-test-atomic.c'
1560--- tools/grail-test-atomic.c 2012-08-27 21:52:42 +0000
1561+++ tools/grail-test-atomic.c 2013-03-25 13:49:07 +0000
1562@@ -5,9 +5,8 @@
1563 * Copyright (C) 2010-2011 Canonical Ltd.
1564 *
1565 * This program is free software: you can redistribute it and/or modify it
1566- * under the terms of the GNU General Public License as published by the
1567- * Free Software Foundation, either version 3 of the License, or (at your
1568- * option) any later version.
1569+ * under the terms of version 3 of the GNU General Public License as published
1570+ * by the Free Software Foundation.
1571 *
1572 * This program is distributed in the hope that it will be useful, but
1573 * WITHOUT ANY WARRANTY; without even the implied warranty of
1574
1575=== modified file 'tools/grail-test-edge.c'
1576--- tools/grail-test-edge.c 2012-08-27 21:52:42 +0000
1577+++ tools/grail-test-edge.c 2013-03-25 13:49:07 +0000
1578@@ -5,9 +5,8 @@
1579 * Copyright (C) 2010-2011 Canonical Ltd.
1580 *
1581 * This program is free software: you can redistribute it and/or modify it
1582- * under the terms of the GNU General Public License as published by the
1583- * Free Software Foundation, either version 3 of the License, or (at your
1584- * option) any later version.
1585+ * under the terms of version 3 of the GNU General Public License as published
1586+ * by the Free Software Foundation.
1587 *
1588 * This program is distributed in the hope that it will be useful, but
1589 * WITHOUT ANY WARRANTY; without even the implied warranty of
1590
1591=== modified file 'tools/grail-test-propagation.c'
1592--- tools/grail-test-propagation.c 2012-08-27 21:52:42 +0000
1593+++ tools/grail-test-propagation.c 2013-03-25 13:49:07 +0000
1594@@ -5,9 +5,8 @@
1595 * Copyright (C) 2010-2011 Canonical Ltd.
1596 *
1597 * This program is free software: you can redistribute it and/or modify it
1598- * under the terms of the GNU General Public License as published by the
1599- * Free Software Foundation, either version 3 of the License, or (at your
1600- * option) any later version.
1601+ * under the terms of version 3 of the GNU General Public License as published
1602+ * by the Free Software Foundation.
1603 *
1604 * This program is distributed in the hope that it will be useful, but
1605 * WITHOUT ANY WARRANTY; without even the implied warranty of

Subscribers

People subscribed via source and target branches