Skip to content

Commit e2a274c

Browse files
committed
Merge pull request gvalkov#44 from forsenonlhaimaisentito:fix-40
Fix absinfo item indexes in uinput_create
2 parents 631e2d3 + 324309e commit e2a274c

2 files changed

Lines changed: 12 additions & 11 deletions

File tree

evdev/uinput.c

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,28 +70,29 @@ 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))
8485
goto on_err;
8586

86-
/* if (ioctl(fd, UI_SET_EVBIT, EV_KEY) < 0) */
87+
/* if (ioctl(fd, UI_SET_EVBIT, EV_KEY) < 0) */
8788
/* goto on_err; */
8889
/* int i; */
89-
/* for (i=0; i<KEY_MAX && fd; i++) { */
90-
/* if (ioctl(fd, UI_SET_KEYBIT, i) < 0) */
90+
/* for (i=0; i<KEY_MAX && fd; i++) { */
91+
/* if (ioctl(fd, UI_SET_KEYBIT, i) < 0) */
9192
/* goto on_err; */
92-
/* } */
93+
/* } */
9394

94-
if (ioctl(fd, UI_DEV_CREATE) < 0)
95+
if (ioctl(fd, UI_DEV_CREATE) < 0)
9596
goto on_err;
9697

9798
Py_RETURN_NONE;

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)