ABS_MT_SLOT
evdev_push_event(sc->sc_evdev, EV_ABS, ABS_MT_SLOT, id);
evdev_support_abs(sc->sc_evdev, ABS_MT_SLOT, 0,
evdev_push_abs(sc->evdev_a, ABS_MT_SLOT, id);
{ ABS_MT_SLOT, 0, PSM_FINGERS-1, 0},
{ ABS_MT_SLOT, 0, ELANTECH_MAX_FINGERS - 1, 0 },
evdev_push_abs(sc->evdev, ABS_MT_SLOT, slot);
evdev_support_abs(sc->evdev, ABS_MT_SLOT,
if (code == ABS_MT_SLOT)
if (bit_test(evdev->ev_abs_flags, ABS_MT_SLOT))
if (bit_test(evdev->ev_abs_flags, ABS_MT_SLOT) ||
if (axis == ABS_MT_SLOT &&
if (axis == ABS_MT_SLOT)
evdev->ev_absinfo[ABS_MT_SLOT].maximum = absinfo->maximum;
if (code == ABS_MT_SLOT &&
bit_test(evdev->ev_abs_flags, ABS_MT_SLOT))
if (code == ABS_MT_SLOT)
else if (!bit_test(evdev->ev_abs_flags, ABS_MT_SLOT))
case ABS_MT_SLOT:
if (!bit_test(evdev->ev_abs_flags, ABS_MT_SLOT))
evdev_propagate_event(evdev, EV_ABS, ABS_MT_SLOT,
bit_test(evdev->ev_abs_flags, ABS_MT_SLOT))
type_a = !bit_test(evdev->ev_abs_flags, ABS_MT_SLOT);
ABS_MT_SLOT, 0, MAX_MT_SLOTS - 1, 0, 0, 0);
bool type_a = !bit_test(evdev->ev_abs_flags, ABS_MT_SLOT);
evdev_send_event(evdev, EV_ABS, ABS_MT_SLOT, slot);
bool type_a = !bit_test(evdev->ev_abs_flags, ABS_MT_SLOT);
evdev_mt_record_event(evdev, EV_ABS, ABS_MT_SLOT, slot);
if (code == ABS_MT_SLOT) {
#define CURRENT_MT_SLOT(evdev) ((evdev)->ev_absinfo[ABS_MT_SLOT].value)
#define MAXIMAL_MT_SLOT(evdev) ((evdev)->ev_absinfo[ABS_MT_SLOT].maximum)
evdev_support_abs(sc->sc_evdev, ABS_MT_SLOT,
ABS_MT_SLOT, 0, sc->cont_count_max - 1, 0, 0, 0);
evdev_support_abs(sc->evdev, ABS_MT_SLOT,
evdev_push_abs(sc->evdev, ABS_MT_SLOT, finger);
evdev_support_abs(evdev, ABS_MT_SLOT, 0, 1, 0, 0, 0);
evdev_push_abs(evdev, ABS_MT_SLOT, 0);
evdev_push_abs(evdev, ABS_MT_SLOT, 1);
ABS_MT_SLOT, 0, sc->cont_count_max - 1, 0, 0, 0);
evdev_support_abs(sc->sc_evdev, ABS_MT_SLOT,
[ABS_MT_SLOT] = "ABS_MT_SLOT",
{ .name = "ABS_MT_SLOT", .value = ABS_MT_SLOT },
has_mt = bit_find(abs_bits, ABS_MT_SLOT, ABS_MAX);
if (!bit_test(ev->abs_ignore, ABS_MT_SLOT) &&
bit_test(abs_bits, ABS_MT_SLOT) &&
case ABS_MT_SLOT: