Merge lp:~oif-team/frame/trunk.properties into lp:frame

Proposed by Henrik Rydberg
Status: Merged
Merged at revision: 4
Proposed branch: lp:~oif-team/frame/trunk.properties
Merge into: lp:frame
Diff against target: 104 lines (+37/-27)
2 files modified
src/frame-mtdev.c (+25/-4)
tools/utouch-frame-test-mtdev.c (+12/-23)
To merge this branch: bzr merge lp:~oif-team/frame/trunk.properties
Reviewer Review Type Date Requested Status
Chase Douglas (community) Approve
Review via email: mp+48961@code.launchpad.net

Description of the change

Here is the properties settings for utouch-frame, as needed to determine direct/indirect devices. The heuristic should be identical to the one used in current evdev.

To post a comment you must log in.
Revision history for this message
Chase Douglas (chasedouglas) wrote :

This looks correct to me.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/frame-mtdev.c'
2--- src/frame-mtdev.c 2010-12-30 19:23:24 +0000
3+++ src/frame-mtdev.c 2011-02-08 18:38:51 +0000
4@@ -25,6 +25,16 @@
5 #include <errno.h>
6 #include <math.h>
7
8+static int is_pointer(const struct evemu_device *dev)
9+{
10+ return evemu_has_event(dev, EV_REL, REL_X) ||
11+ evemu_has_event(dev, EV_KEY, BTN_TOOL_FINGER) ||
12+ evemu_has_event(dev, EV_KEY, BTN_TOOL_PEN) ||
13+ evemu_has_event(dev, EV_KEY, BTN_STYLUS) ||
14+ evemu_has_event(dev, EV_KEY, BTN_MOUSE) ||
15+ evemu_has_event(dev, EV_KEY, BTN_LEFT);
16+}
17+
18 int utouch_frame_is_supported_mtdev(const struct evemu_device *dev)
19 {
20
21@@ -52,11 +62,22 @@
22 if (!utouch_frame_is_supported_mtdev(dev))
23 return -ENODEV;
24
25+ if (is_pointer(dev)) {
26+ s->needs_pointer = 1;
27+ s->is_direct = 0;
28+ } else {
29+ s->needs_pointer = 0;
30+ s->is_direct = 1;
31+ }
32+
33+ s->is_buttonpad = 0;
34+ s->is_semi_mt = 0;
35+
36 #ifdef INPUT_PROP_POINTER
37- s->needs_pointer = evemu_has_prop(dev, INPUT_PROP_POINTER);
38- s->is_direct = evemu_has_prop(dev, INPUT_PROP_DIRECT);
39- s->is_buttonpad = evemu_has_prop(dev, INPUT_PROP_BUTTONPAD);
40- s->is_semi_mt = evemu_has_prop(dev, INPUT_PROP_SEMI_MT);
41+ s->needs_pointer |= evemu_has_prop(dev, INPUT_PROP_POINTER);
42+ s->is_direct |= evemu_has_prop(dev, INPUT_PROP_DIRECT);
43+ s->is_buttonpad |= evemu_has_prop(dev, INPUT_PROP_BUTTONPAD);
44+ s->is_semi_mt |= evemu_has_prop(dev, INPUT_PROP_SEMI_MT);
45 #endif
46 s->use_touch_major = evemu_has_event(dev, EV_ABS, ABS_MT_TOUCH_MAJOR);
47 s->use_touch_minor = evemu_has_event(dev, EV_ABS, ABS_MT_TOUCH_MINOR);
48
49=== modified file 'tools/utouch-frame-test-mtdev.c'
50--- tools/utouch-frame-test-mtdev.c 2010-12-30 19:23:24 +0000
51+++ tools/utouch-frame-test-mtdev.c 2011-02-08 18:38:51 +0000
52@@ -115,41 +115,30 @@
53
54 static void report_device_caps(struct frame_test *test)
55 {
56-#ifdef INPUT_PROP_POINTER
57+ struct utouch_surface *s = utouch_frame_get_surface(test->fh);
58 fprintf(stderr, "device props:\n");
59- if (evemu_has_prop(test->evemu, INPUT_PROP_POINTER))
60+ if (s->needs_pointer)
61 fprintf(stderr, "\tpointer\n");
62- if (evemu_has_prop(test->evemu, INPUT_PROP_DIRECT))
63+ if (s->is_direct)
64 fprintf(stderr, "\tdirect\n");
65- if (evemu_has_prop(test->evemu, INPUT_PROP_BUTTONPAD))
66+ if (s->is_buttonpad)
67 fprintf(stderr, "\tbuttonpad\n");
68- if (evemu_has_prop(test->evemu, INPUT_PROP_SEMI_MT))
69+ if (s->is_semi_mt)
70 fprintf(stderr, "\tsemi_mt\n");
71-#endif
72 fprintf(stderr, "device mt events:\n");
73- if (evemu_has_event(test->evemu, EV_ABS, ABS_MT_SLOT))
74- fprintf(stderr, "\tslot\n");
75- if (evemu_has_event(test->evemu, EV_ABS, ABS_MT_TOUCH_MAJOR))
76+ if (s->use_touch_major)
77 fprintf(stderr, "\ttouch_major\n");
78- if (evemu_has_event(test->evemu, EV_ABS, ABS_MT_TOUCH_MINOR))
79+ if (s->use_touch_minor)
80 fprintf(stderr, "\ttouch_minor\n");
81- if (evemu_has_event(test->evemu, EV_ABS, ABS_MT_WIDTH_MAJOR))
82+ if (s->use_width_major)
83 fprintf(stderr, "\twidth_major\n");
84- if (evemu_has_event(test->evemu, EV_ABS, ABS_MT_WIDTH_MINOR))
85+ if (s->use_width_minor)
86 fprintf(stderr, "\twidth_minor\n");
87- if (evemu_has_event(test->evemu, EV_ABS, ABS_MT_ORIENTATION))
88+ if (s->use_orientation)
89 fprintf(stderr, "\torientation\n");
90- if (evemu_has_event(test->evemu, EV_ABS, ABS_MT_POSITION_X))
91- fprintf(stderr, "\tposition_x\n");
92- if (evemu_has_event(test->evemu, EV_ABS, ABS_MT_POSITION_Y))
93- fprintf(stderr, "\tposition_y\n");
94- if (evemu_has_event(test->evemu, EV_ABS, ABS_MT_TOOL_TYPE))
95- fprintf(stderr, "\tposition_y\n");
96- if (evemu_has_event(test->evemu, EV_ABS, ABS_MT_TRACKING_ID))
97- fprintf(stderr, "\ttracking_id\n");
98- if (evemu_has_event(test->evemu, EV_ABS, ABS_MT_PRESSURE))
99+ if (s->use_pressure)
100 fprintf(stderr, "\tpressure\n");
101- if (evemu_has_event(test->evemu, EV_ABS, ABS_MT_DISTANCE))
102+ if (s->use_distance)
103 fprintf(stderr, "\tdistance\n");
104 }
105

Subscribers

People subscribed via source and target branches