Merge lp:~peter-hutterer/evemu/misc-fixes into lp:evemu

Proposed by Peter Hutterer
Status: Merged
Merged at revision: 53
Proposed branch: lp:~peter-hutterer/evemu/misc-fixes
Merge into: lp:evemu
Diff against target: 70 lines (+25/-2)
3 files modified
include/evemu.h (+10/-0)
src/evemu.c (+14/-2)
src/libutouch-evemu.ver (+1/-0)
To merge this branch: bzr merge lp:~peter-hutterer/evemu/misc-fixes
Reviewer Review Type Date Requested Status
Chase Douglas (community) Approve
Review via email: mp+108663@code.launchpad.net

Description of the change

Fix for running on kernels before the propbit introduction.
The second one is important for e.g. mtview to see the first touch (until the slot id change) but will require a version bump for applications to make use of it

To post a comment you must log in.
lp:~peter-hutterer/evemu/misc-fixes updated
54. By Peter Hutterer

Add evemu_get_abs_current() to retrieve the current value

Applications that use evemu need this for ABS_MT_SLOT so they can start working
on the first touchpoint, rather than waiting for the slot to change.

Revision history for this message
Chase Douglas (chasedouglas) wrote :

Both changes look good to me.

review: Approve
Revision history for this message
Chase Douglas (chasedouglas) wrote :

I noticed that the new function was placed in the UTOUCH_EVEMU_1.0 libtool version script block. I've created a new UTOUCH_EVEMU_1.1 block and moved the function into it instead. Any new functions before the next release will be added here.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'include/evemu.h'
2--- include/evemu.h 2012-03-23 15:38:02 +0000
3+++ include/evemu.h 2012-06-05 01:40:26 +0000
4@@ -192,6 +192,16 @@
5 int evemu_get_abs_maximum(const struct evemu_device *dev, int code);
6
7 /**
8+ * evemu_get_abs_current() - get kernel current value of event type
9+ * @dev: the device in use
10+ * @code: the event type code to query
11+ *
12+ * Returns the current value of the specified event type.
13+ */
14+int evemu_get_abs_current_value(const struct evemu_device *dev, int code);
15+
16+
17+/**
18 * evemu_set_abs_maximum() - set kernel maximum value of event type
19 *
20 * @dev: the device in use
21
22=== modified file 'src/evemu.c'
23--- src/evemu.c 2012-03-23 15:38:02 +0000
24+++ src/evemu.c 2012-06-05 01:40:26 +0000
25@@ -163,6 +163,11 @@
26 return dev->abs[code].maximum;
27 }
28
29+int evemu_get_abs_current_value(const struct evemu_device *dev, int code)
30+{
31+ return dev->abs[code].value;
32+}
33+
34 void evemu_set_abs_maximum(struct evemu_device *dev, int code, int max)
35 {
36 dev->abs[code].maximum = max;
37@@ -490,12 +495,19 @@
38 {
39 int bits = 8 * dev->pbytes;
40 int ret, i;
41+ int success = 0;
42 for (i = 0; i < bits; i++) {
43 if (!evemu_has_prop(dev, i))
44 continue;
45 ret = set_prop_bit(fd, i);
46- if (ret < 0)
47- return ret;
48+ /* Older kernels aways return errors on UI_SET_PROPBIT.
49+ Assume that if we only get failures, it may be an older
50+ kernel and report success anyway. */
51+ if (ret < 0) {
52+ if (success)
53+ return ret;
54+ } else if (!success)
55+ success = 1;
56 }
57 return 0;
58 }
59
60=== modified file 'src/libutouch-evemu.ver'
61--- src/libutouch-evemu.ver 2011-06-17 01:54:02 +0000
62+++ src/libutouch-evemu.ver 2012-06-05 01:40:26 +0000
63@@ -8,6 +8,7 @@
64 evemu_get_abs_fuzz;
65 evemu_get_abs_maximum;
66 evemu_get_abs_minimum;
67+ evemu_get_abs_current_value;
68 evemu_get_abs_resolution;
69 evemu_get_id_bustype;
70 evemu_get_id_product;

Subscribers

People subscribed via source and target branches