Skip to content

Commit 62969d7

Browse files
author
John Titor
committed
Fix absinfo item indexes in uinput_create (see gvalkov#40)
1 parent 2fc19ef commit 62969d7

2 files changed

Lines changed: 7 additions & 6 deletions

File tree

evdev/uinput.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,15 @@ uinput_create(PyObject *self, PyObject *args) {
7070

7171
len = PyList_Size(absinfo);
7272
for (i=0; i<len; i++) {
73-
// item -> (ABS_X, 0, 255, 0, 0)
73+
// item -> (ABS_X, 0, 255, 0, 0, 0, 0)
7474
item = PyList_GetItem(absinfo, i);
7575
abscode = (int)PyLong_AsLong(PyList_GetItem(item, 0));
7676

77-
uidev.absmin[abscode] = PyLong_AsLong(PyList_GetItem(item, 1));
78-
uidev.absmax[abscode] = PyLong_AsLong(PyList_GetItem(item, 2));
79-
uidev.absfuzz[abscode] = PyLong_AsLong(PyList_GetItem(item, 3));
80-
uidev.absflat[abscode] = PyLong_AsLong(PyList_GetItem(item, 4));
77+
/* min/max/fuzz/flat start from index 2 because index 1 is value */
78+
uidev.absmin[abscode] = PyLong_AsLong(PyList_GetItem(item, 2));
79+
uidev.absmax[abscode] = PyLong_AsLong(PyList_GetItem(item, 3));
80+
uidev.absfuzz[abscode] = PyLong_AsLong(PyList_GetItem(item, 4));
81+
uidev.absflat[abscode] = PyLong_AsLong(PyList_GetItem(item, 5));
8182
}
8283

8384
if (write(fd, &uidev, sizeof(uidev)) != sizeof(uidev))

evdev/uinput.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def __init__(self,
7171
for code in codes:
7272
# handle max, min, fuzz, flat
7373
if isinstance(code, (tuple, list, device.AbsInfo)):
74-
# flatten (ABS_Y, (0, 255, 0, 0)) to (ABS_Y, 0, 255, 0, 0)
74+
# flatten (ABS_Y, (0, 255, 0, 0, 0, 0)) to (ABS_Y, 0, 255, 0, 0, 0, 0)
7575
f = [code[0]]; f += code[1]
7676
absinfo.append(f)
7777
code = code[0]

0 commit comments

Comments
 (0)