struct libevdev *dev;
int rc;
struct input_event ev;
- struct input_absinfo abs[3];
-
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
-
- abs[1].value = ABS_Y;
- abs[1].maximum = 1000;
-
- abs[2].value = ABS_MAX;
- abs[2].maximum = 1000;
+ struct input_absinfo abs[3] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MAX, .maximum = 1000 },
+ };
test_create_abs_device(&uidev, &dev,
- 3, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
EV_SYN, SYN_DROPPED,
EV_KEY, BTN_LEFT,
struct libevdev *dev;
int rc;
struct input_event ev;
- struct input_absinfo abs[6];
-
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
- abs[1].value = ABS_MT_POSITION_X;
- abs[1].maximum = 1000;
-
- abs[2].value = ABS_Y;
- abs[2].maximum = 1000;
- abs[3].value = ABS_MT_POSITION_Y;
- abs[3].maximum = 1000;
-
- abs[4].value = ABS_MT_SLOT;
- abs[4].maximum = 1;
- abs[5].value = ABS_MT_TRACKING_ID;
- abs[5].minimum = -1;
- abs[5].maximum = 2;
+ struct input_absinfo abs[6] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 1 },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 2 },
+ };
test_create_abs_device(&uidev, &dev,
- 6, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
-1);
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 0);
- uinput_device_event(uidev, EV_ABS, ABS_X, 100);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 500);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 100);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 500);
- uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 1);
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 1);
- uinput_device_event(uidev, EV_ABS, ABS_X, 1);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 5);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 1);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 5);
- uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 2);
- uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_X, 100,
+ EV_ABS, ABS_Y, 500,
+ EV_ABS, ABS_MT_POSITION_X, 100,
+ EV_ABS, ABS_MT_POSITION_Y, 500,
+ EV_ABS, ABS_MT_TRACKING_ID, 1,
+ EV_ABS, ABS_MT_SLOT, 1,
+ EV_ABS, ABS_X, 1,
+ EV_ABS, ABS_Y, 5,
+ EV_ABS, ABS_MT_POSITION_X, 1,
+ EV_ABS, ABS_MT_POSITION_Y, 5,
+ EV_ABS, ABS_MT_TRACKING_ID, 2,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
int rc;
struct input_event ev,
last_slot_event = { .type = 0};
- struct input_absinfo abs[6];
-
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
- abs[1].value = ABS_MT_POSITION_X;
- abs[1].maximum = 1000;
-
- abs[2].value = ABS_Y;
- abs[2].maximum = 1000;
- abs[3].value = ABS_MT_POSITION_Y;
- abs[3].maximum = 1000;
-
- abs[4].value = ABS_MT_SLOT;
- abs[4].maximum = 1;
- abs[5].value = ABS_MT_TRACKING_ID;
- abs[5].minimum = -1;
- abs[5].maximum = 2;
+ struct input_absinfo abs[6] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 1 },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 2 },
+ };
test_create_abs_device(&uidev, &dev,
- 6, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
-1);
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 1);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 100);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 500);
- uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 1);
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 0);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 1);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 5);
- uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 2);
- uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 1,
+ EV_ABS, ABS_MT_POSITION_X, 100,
+ EV_ABS, ABS_MT_POSITION_Y, 500,
+ EV_ABS, ABS_MT_TRACKING_ID, 1,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_MT_POSITION_X, 1,
+ EV_ABS, ABS_MT_POSITION_Y, 5,
+ EV_ABS, ABS_MT_TRACKING_ID, 2,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
last_slot_event.type = 0;
/* same thing again, this time swap the numbers */
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 0);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 100);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 500);
- uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 1);
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 1);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 1);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 5);
- uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 2);
- uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_MT_POSITION_X, 100,
+ EV_ABS, ABS_MT_POSITION_Y, 500,
+ EV_ABS, ABS_MT_TRACKING_ID, 1,
+ EV_ABS, ABS_MT_SLOT, 1,
+ EV_ABS, ABS_MT_POSITION_X, 1,
+ EV_ABS, ABS_MT_POSITION_Y, 5,
+ EV_ABS, ABS_MT_TRACKING_ID, 2,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
struct libevdev *dev;
int rc;
struct input_event ev;
- struct input_absinfo abs[6];
int i;
const int num_slots = 15;
int slot = -1;
unsigned long terminated[NLONGS(num_slots)];
unsigned long restarted[NLONGS(num_slots)];
-
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
- abs[1].value = ABS_MT_POSITION_X;
- abs[1].maximum = 1000;
-
- abs[2].value = ABS_Y;
- abs[2].maximum = 1000;
- abs[3].value = ABS_MT_POSITION_Y;
- abs[3].maximum = 1000;
-
- abs[4].value = ABS_MT_SLOT;
- abs[4].maximum = num_slots;
-
- abs[5].minimum = -1;
- abs[5].maximum = 255;
- abs[5].value = ABS_MT_TRACKING_ID;
+ struct input_absinfo abs[6] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = num_slots },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 0xff },
+ };
test_create_abs_device(&uidev, &dev,
- 6, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
-1);
/* Start a bunch of touch points */
for (i = num_slots; i >= 0; i--) {
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, i);
- uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, i);
- uinput_device_event(uidev, EV_ABS, ABS_X, 100 + i);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 500 + i);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 100 + i);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 500 + i);
- uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, i,
+ EV_ABS, ABS_MT_TRACKING_ID, i,
+ EV_ABS, ABS_X, 100 + i,
+ EV_ABS, ABS_Y, 500 + i,
+ EV_ABS, ABS_MT_POSITION_X, 100 + i,
+ EV_ABS, ABS_MT_POSITION_Y, 500 + i,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
do {
rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
ck_assert_int_ne(rc, LIBEVDEV_READ_STATUS_SYNC);
uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, i);
if (i % 3 == 0) {
/* change some slots with a new tracking id */
- uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, num_slots + i);
- uinput_device_event(uidev, EV_ABS, ABS_X, 200 + i);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 700 + i);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 200 + i);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 700 + i);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_TRACKING_ID, num_slots + i,
+ EV_ABS, ABS_X, 200 + i,
+ EV_ABS, ABS_Y, 700 + i,
+ EV_ABS, ABS_MT_POSITION_X, 200 + i,
+ EV_ABS, ABS_MT_POSITION_Y, 700 + i,
+ -1, -1);
} else if (i % 3 == 1) {
/* stop others */
uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, -1);
} else {
/* just update */
- uinput_device_event(uidev, EV_ABS, ABS_X, 200 + i);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 700 + i);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 200 + i);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 700 + i);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_X, 200 + i,
+ EV_ABS, ABS_Y, 700 + i,
+ EV_ABS, ABS_MT_POSITION_X, 200 + i,
+ EV_ABS, ABS_MT_POSITION_Y, 700 + i,
+ -1, -1);
}
uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
}
struct libevdev *dev;
int rc;
struct input_event ev;
- struct input_absinfo abs[6];
+ struct input_absinfo abs[6] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 1 },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 0xff},
+ };
int i, slot;
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
- abs[1].value = ABS_MT_POSITION_X;
- abs[1].maximum = 1000;
-
- abs[2].value = ABS_Y;
- abs[2].maximum = 1000;
- abs[3].value = ABS_MT_POSITION_Y;
- abs[3].maximum = 1000;
-
- abs[4].value = ABS_MT_SLOT;
- abs[4].maximum = 1;
-
- abs[5].minimum = -1;
- abs[5].maximum = 255;
- abs[5].value = ABS_MT_TRACKING_ID;
-
test_create_abs_device(&uidev, &dev,
- 6, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
-1);
/* emulate a touch down, make sure libevdev sees it */
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 0);
- uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 1);
- uinput_device_event(uidev, EV_ABS, ABS_X, 100);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 500);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 100);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 500);
- uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_MT_TRACKING_ID, 1,
+ EV_ABS, ABS_X, 100,
+ EV_ABS, ABS_Y, 500,
+ EV_ABS, ABS_MT_POSITION_X, 100,
+ EV_ABS, ABS_MT_POSITION_Y, 500,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
do {
rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
ck_assert_int_ne(rc, LIBEVDEV_READ_STATUS_SYNC);
/* force enough events to trigger a SYN_DROPPED */
for (i = 0; i < 100; i++) {
- uinput_device_event(uidev, EV_ABS, ABS_X, 100 + i);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 500 + i);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 100 + i);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 500 + i);
- uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_X, 100 + i,
+ EV_ABS, ABS_Y, 500 + i,
+ EV_ABS, ABS_MT_POSITION_X, 100 + i,
+ EV_ABS, ABS_MT_POSITION_Y, 500 + i,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
}
rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
/* trigger the tracking ID change after getting the SYN_DROPPED */
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 0);
- uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, -1);
- uinput_device_event(uidev, EV_ABS, ABS_X, 200);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 600);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 200);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 600);
- uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_MT_TRACKING_ID, -1,
+ EV_ABS, ABS_X, 200,
+ EV_ABS, ABS_Y, 600,
+ EV_ABS, ABS_MT_POSITION_X, 200,
+ EV_ABS, ABS_MT_POSITION_Y, 600,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
slot = 0;
}
/* And a new tracking ID */
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 0);
- uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 2);
- uinput_device_event(uidev, EV_ABS, ABS_X, 201);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 601);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 201);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 601);
- uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_MT_TRACKING_ID, 2,
+ EV_ABS, ABS_X, 201,
+ EV_ABS, ABS_Y, 601,
+ EV_ABS, ABS_MT_POSITION_X, 201,
+ EV_ABS, ABS_MT_POSITION_Y, 601,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
while ((rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev)) != -EAGAIN) {
ck_assert_int_ne(rc, LIBEVDEV_READ_STATUS_SYNC);
/* force enough events to trigger a SYN_DROPPED */
for (i = 0; i < 100; i++) {
- uinput_device_event(uidev, EV_ABS, ABS_X, 100 + i);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 500 + i);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 100 + i);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 500 + i);
- uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_X, 100 + i,
+ EV_ABS, ABS_Y, 500 + i,
+ EV_ABS, ABS_MT_POSITION_X, 100 + i,
+ EV_ABS, ABS_MT_POSITION_Y, 500 + i,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
}
rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
/* trigger the new tracking ID after getting the SYN_DROPPED */
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 0);
- uinput_device_event(uidev, EV_ABS, ABS_MT_TRACKING_ID, 5);
- uinput_device_event(uidev, EV_ABS, ABS_X, 200);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 600);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 200);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 600);
- uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_MT_TRACKING_ID, 5,
+ EV_ABS, ABS_X, 200,
+ EV_ABS, ABS_Y, 600,
+ EV_ABS, ABS_MT_POSITION_X, 200,
+ EV_ABS, ABS_MT_POSITION_Y, 600,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
slot = 0;
* such events */
unsigned long received[NLONGS(ABS_CNT)] = {0};
- test_create_abs_device(&uidev, &dev, 5, abs,
- -1);
+ test_create_abs_device(&uidev, &dev, ARRAY_LENGTH(abs), abs, -1);
/* first set of events */
- uinput_device_event(uidev, EV_ABS, ABS_X, 200);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 400);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 100);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 500);
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT - 1, 1);
- uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_X, 200,
+ EV_ABS, ABS_Y, 400,
+ EV_ABS, ABS_MT_POSITION_X, 100,
+ EV_ABS, ABS_MT_POSITION_Y, 500,
+ EV_ABS, ABS_MT_SLOT - 1, 1,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
/* second set of events */
- uinput_device_event(uidev, EV_ABS, ABS_X, 201);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 401);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 101);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 501);
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT - 1, 2);
- uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_X, 201,
+ EV_ABS, ABS_Y, 401,
+ EV_ABS, ABS_MT_POSITION_X, 101,
+ EV_ABS, ABS_MT_POSITION_Y, 501,
+ EV_ABS, ABS_MT_SLOT - 1, 2,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
ck_assert_int_eq(rc, LIBEVDEV_READ_STATUS_SYNC);
struct libevdev *dev;
int rc;
struct input_event ev;
- struct input_absinfo abs[2];
-
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
-
- abs[1].value = ABS_Y;
- abs[1].maximum = 1000;
+ struct input_absinfo abs[2] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ };
test_create_abs_device(&uidev, &dev,
- 2, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
EV_SYN, SYN_DROPPED,
EV_KEY, BTN_LEFT,
struct libevdev *dev;
int rc;
struct input_event ev;
- struct input_absinfo abs[2];
-
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
-
- abs[1].value = ABS_Y;
- abs[1].maximum = 1000;
+ struct input_absinfo abs[2] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ };
test_create_abs_device(&uidev, &dev,
- 2, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
EV_SYN, SYN_DROPPED,
EV_KEY, BTN_LEFT,
struct libevdev *dev;
int rc;
struct input_event ev;
- struct input_absinfo abs[2];
+ struct input_absinfo abs[2] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ };
int value;
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
-
- abs[1].value = ABS_Y;
- abs[1].maximum = 1000;
-
test_create_abs_device(&uidev, &dev,
- 2, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
EV_SYN, SYN_DROPPED,
EV_REL, REL_X,
{
struct uinput_device* uidev;
struct libevdev *dev;
- struct input_absinfo abs[2];
+ struct input_absinfo abs[2] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ };
int value;
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
-
- abs[1].value = ABS_Y;
- abs[1].maximum = 1000;
-
test_create_abs_device(&uidev, &dev,
- 2, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
EV_SYN, SYN_DROPPED,
EV_REL, REL_X,
struct libevdev *dev;
int rc;
struct input_event ev;
- struct input_absinfo abs[5];
+ struct input_absinfo abs[5] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 2 },
+ };
int value;
-
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
- abs[1].value = ABS_MT_POSITION_X;
- abs[1].maximum = 1000;
-
- abs[2].value = ABS_Y;
- abs[2].maximum = 1000;
- abs[3].value = ABS_MT_POSITION_Y;
- abs[3].maximum = 1000;
-
- abs[4].value = ABS_MT_SLOT;
- abs[4].maximum = 2;
-
test_create_abs_device(&uidev, &dev,
- 5, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
-1);
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 0);
- uinput_device_event(uidev, EV_ABS, ABS_X, 100);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 500);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 100);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 500);
- uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 1);
- uinput_device_event(uidev, EV_ABS, ABS_X, 1);
- uinput_device_event(uidev, EV_ABS, ABS_Y, 5);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 1);
- uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_Y, 5);
- uinput_device_event(uidev, EV_SYN, SYN_REPORT, 0);
+ uinput_device_event_multiple(uidev,
+ EV_ABS, ABS_MT_SLOT, 0,
+ EV_ABS, ABS_X, 100,
+ EV_ABS, ABS_Y, 500,
+ EV_ABS, ABS_MT_POSITION_X, 100,
+ EV_ABS, ABS_MT_POSITION_Y, 500,
+ EV_ABS, ABS_MT_SLOT, 1,
+ EV_ABS, ABS_X, 1,
+ EV_ABS, ABS_Y, 5,
+ EV_ABS, ABS_MT_POSITION_X, 1,
+ EV_ABS, ABS_MT_POSITION_Y, 5,
+ EV_SYN, SYN_REPORT, 0,
+ -1, -1);
/* must still be on old values */
ck_assert_int_eq(libevdev_get_current_slot(dev), 0);
{
struct uinput_device* uidev;
struct libevdev *dev;
- struct input_absinfo abs[5];
+ struct input_absinfo abs[5] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 2 },
+ };
int value;
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
- abs[1].value = ABS_MT_POSITION_X;
- abs[1].maximum = 1000;
-
- abs[2].value = ABS_Y;
- abs[2].maximum = 1000;
- abs[3].value = ABS_MT_POSITION_Y;
- abs[3].maximum = 1000;
-
- abs[4].value = ABS_MT_SLOT;
- abs[4].maximum = 2;
-
test_create_abs_device(&uidev, &dev,
- 5, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
-1);
struct libevdev *dev;
struct input_event ev[2];
int rc;
- struct input_absinfo abs[5];
int num_slots = 2;
+ struct input_absinfo abs[5] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = num_slots - 1 },
+ };
int pipefd[2];
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
- abs[1].value = ABS_MT_POSITION_X;
- abs[1].maximum = 1000;
-
- abs[2].value = ABS_Y;
- abs[2].maximum = 1000;
- abs[3].value = ABS_MT_POSITION_Y;
- abs[3].maximum = 1000;
-
- abs[4].value = ABS_MT_SLOT;
- abs[4].maximum = num_slots - 1;
-
test_create_abs_device(&uidev, &dev,
- 5, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
-1);
struct libevdev *dev;
int rc;
struct input_event ev;
- struct input_absinfo abs[6];
-
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
- abs[1].value = ABS_MT_POSITION_X;
- abs[1].maximum = 1000;
-
- abs[2].value = ABS_Y;
- abs[2].maximum = 1000;
- abs[3].value = ABS_MT_POSITION_Y;
- abs[3].maximum = 1000;
-
- abs[4].value = ABS_MT_SLOT;
- abs[4].maximum = 10;
- abs[5].value = ABS_MT_TRACKING_ID;
- abs[5].maximum = 500;
+ struct input_absinfo abs[6] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 10 },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 500 },
+ };
test_create_abs_device(&uidev, &dev,
- 6, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
-1);
struct libevdev *dev;
int rc;
struct input_event ev;
- struct input_absinfo abs[6];
+ struct input_absinfo abs[6] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 10 },
+ { .value = ABS_MT_TRACKING_ID, .minimum = -1, .maximum = 500 },
+ };
int pipefd[2];
struct input_event events[] = {
{ .type = EV_ABS, .code = ABS_MT_TRACKING_ID, .value = -1 },
rc = pipe2(pipefd, O_NONBLOCK);
ck_assert_int_eq(rc, 0);
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
- abs[1].value = ABS_MT_POSITION_X;
- abs[1].maximum = 1000;
-
- abs[2].value = ABS_Y;
- abs[2].maximum = 1000;
- abs[3].value = ABS_MT_POSITION_Y;
- abs[3].maximum = 1000;
-
- abs[4].value = ABS_MT_SLOT;
- abs[4].maximum = 10;
- abs[5].value = ABS_MT_TRACKING_ID;
- abs[5].maximum = 500;
-
test_create_abs_device(&uidev, &dev,
- 6, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
-1);
uinput_device_event(uidev, EV_ABS, ABS_MT_SLOT, 1);
{
struct uinput_device* uidev;
struct libevdev *dev;
- struct input_absinfo abs[2];
-
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
-
- abs[1].value = ABS_Y;
- abs[1].maximum = 1000;
+ struct input_absinfo abs[2] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ };
test_create_abs_device(&uidev, &dev,
- 2, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
EV_REL, REL_X,
EV_REL, REL_Y,
{
struct uinput_device* uidev;
struct libevdev *dev;
- struct input_absinfo abs[2];
-
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
-
- abs[1].value = ABS_Y;
- abs[1].maximum = 1000;
+ struct input_absinfo abs[2] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ };
test_create_abs_device(&uidev, &dev,
- 2, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
EV_REL, REL_X,
EV_REL, REL_Y,
{
struct uinput_device* uidev;
struct libevdev *dev;
- struct input_absinfo abs[5];
-
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
- abs[1].value = ABS_MT_POSITION_X;
- abs[1].maximum = 1000;
-
- abs[2].value = ABS_Y;
- abs[2].maximum = 1000;
- abs[3].value = ABS_MT_POSITION_Y;
- abs[3].maximum = 1000;
-
- abs[4].value = ABS_MT_SLOT;
- abs[4].maximum = 2;
+ struct input_absinfo abs[5] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 2 },
+ };
test_create_abs_device(&uidev, &dev,
- 5, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
-1);
{
struct uinput_device* uidev;
struct libevdev *dev;
- struct input_absinfo abs[5];
-
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
- abs[1].value = ABS_MT_POSITION_X;
- abs[1].maximum = 1000;
-
- abs[2].value = ABS_Y;
- abs[2].maximum = 1000;
- abs[3].value = ABS_MT_POSITION_Y;
- abs[3].maximum = 1000;
-
- abs[4].value = ABS_MT_SLOT;
- abs[4].maximum = 2;
+ struct input_absinfo abs[5] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 2 },
+ };
test_create_abs_device(&uidev, &dev,
- 5, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
-1);
{
struct uinput_device* uidev;
struct libevdev *dev;
- struct input_absinfo abs[5];
-
- memset(abs, 0, sizeof(abs));
- abs[0].value = ABS_X;
- abs[0].maximum = 1000;
- abs[1].value = ABS_MT_POSITION_X;
- abs[1].maximum = 1000;
-
- abs[2].value = ABS_Y;
- abs[2].maximum = 1000;
- abs[3].value = ABS_MT_POSITION_Y;
- abs[3].maximum = 1000;
-
- abs[4].value = ABS_MT_SLOT;
- abs[4].maximum = 2;
+ struct input_absinfo abs[5] = {
+ { .value = ABS_X, .maximum = 1000 },
+ { .value = ABS_Y, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_X, .maximum = 1000 },
+ { .value = ABS_MT_POSITION_Y, .maximum = 1000 },
+ { .value = ABS_MT_SLOT, .maximum = 2 },
+ };
test_create_abs_device(&uidev, &dev,
- 5, abs,
+ ARRAY_LENGTH(abs), abs,
EV_SYN, SYN_REPORT,
-1);