Lines Matching full:slot
110 int slot, slots; in evdev_mt_init() local
139 for (slot = 0; slot < slots; slot++) in evdev_mt_init()
140 mt->slots[slot].id = -1; in evdev_mt_init()
169 evdev_mt_send_slot(struct evdev_dev *evdev, int slot, in evdev_mt_send_slot() argument
176 MPASS(type_a || (slot >= 0 && slot <= MAXIMAL_MT_SLOT(evdev))); in evdev_mt_send_slot()
180 evdev_send_event(evdev, EV_ABS, ABS_MT_SLOT, slot); in evdev_mt_send_slot()
194 evdev_mt_push_slot(struct evdev_dev *evdev, int slot, in evdev_mt_push_slot() argument
202 if (!type_a && (slot < 0 || slot > MAXIMAL_MT_SLOT(evdev))) in evdev_mt_push_slot()
210 evdev_mt_record_event(evdev, EV_ABS, ABS_MT_SLOT, slot); in evdev_mt_push_slot()
217 evdev_mt_send_slot(evdev, slot, state); in evdev_mt_push_slot()
318 int i, j, m, n, dx, dy, slot, num_touches; in evdev_mt_match_frame() local
331 FOREACHBIT(mt->touches, slot) in evdev_mt_match_frame()
333 dx = pt[i].x - mt->slots[slot].x; in evdev_mt_match_frame()
334 dy = pt[i].y - mt->slots[slot].y; in evdev_mt_match_frame()
341 FOREACHBIT(mt->touches, slot) { in evdev_mt_match_frame()
342 dx = pt[i].x - mt->slots[slot].x; in evdev_mt_match_frame()
343 dy = pt[i].y - mt->slots[slot].y; in evdev_mt_match_frame()
363 FOREACHBIT(mt->touches, slot) in evdev_mt_match_frame()
365 pt[i].id = mt->tracking_ids[slot]; in evdev_mt_match_frame()
372 union evdev_mt_slot *slot; in evdev_mt_send_frame() local
379 * to a slot number to make things simpler. in evdev_mt_send_frame()
381 for (slot = pt; slot < pt + size; slot++) { in evdev_mt_send_frame()
382 if (slot->id < 0) in evdev_mt_send_frame()
383 slot->id = ffc_slot(evdev, mt->touches | mt->frame); in evdev_mt_send_frame()
384 if (slot->id >= 0) in evdev_mt_send_frame()
385 evdev_mt_send_slot(evdev, slot->id, slot); in evdev_mt_send_frame()
424 KASSERT(value >= 0, ("Negative slot number")); in evdev_mt_record_event()
434 KASSERT(mt->match_slot >= 0, ("Negative slot")); in evdev_mt_record_event()
436 ("Slot number too big")); in evdev_mt_record_event()
453 int slot, size = 0; in evdev_mt_replay_events() local
457 FOREACHBIT(mt->match_frame, slot) { in evdev_mt_replay_events()
458 if (slot != size) in evdev_mt_replay_events()
459 mt->match_slots[size] = mt->match_slots[slot]; in evdev_mt_replay_events()
481 evdev_mt_set_last_slot(struct evdev_dev *evdev, int slot) in evdev_mt_set_last_slot() argument
485 MPASS(slot >= 0 && slot <= MAXIMAL_MT_SLOT(evdev)); in evdev_mt_set_last_slot()
487 mt->frame |= 1U << slot; in evdev_mt_set_last_slot()
488 mt->last_reported_slot = slot; in evdev_mt_set_last_slot()
492 evdev_mt_get_value(struct evdev_dev *evdev, int slot, int16_t code) in evdev_mt_get_value() argument
496 MPASS(slot >= 0 && slot <= MAXIMAL_MT_SLOT(evdev)); in evdev_mt_get_value()
498 return (mt->slots[slot].val[ABS_MT_INDEX(code)]); in evdev_mt_get_value()
502 evdev_mt_set_value(struct evdev_dev *evdev, int slot, int16_t code, in evdev_mt_set_value() argument
507 MPASS(slot >= 0 && slot <= MAXIMAL_MT_SLOT(evdev)); in evdev_mt_set_value()
511 mt->touches |= 1U << slot; in evdev_mt_set_value()
513 mt->touches &= ~(1U << slot); in evdev_mt_set_value()
515 mt->slots[slot].val[ABS_MT_INDEX(code)] = value; in evdev_mt_set_value()
522 int slot; in evdev_mt_id_to_slot() local
527 * Ignore tracking_id if slot assignment is performed by evdev. in evdev_mt_id_to_slot()
533 FOREACHBIT(mt->touches, slot) in evdev_mt_id_to_slot()
534 if (mt->tracking_ids[slot] == tracking_id) in evdev_mt_id_to_slot()
535 return (slot); in evdev_mt_id_to_slot()
537 * Do not allow allocation of new slot in a place of just in evdev_mt_id_to_slot()
544 evdev_mt_reassign_id(struct evdev_dev *evdev, int slot, int32_t id) in evdev_mt_reassign_id() argument
550 mt->tracking_ids[slot] = id; in evdev_mt_reassign_id()
554 nid = evdev_mt_get_value(evdev, slot, ABS_MT_TRACKING_ID); in evdev_mt_reassign_id()
556 KASSERT(id == mt->tracking_ids[slot], in evdev_mt_reassign_id()
557 ("MT-slot tracking id has changed")); in evdev_mt_reassign_id()
561 mt->tracking_ids[slot] = id; in evdev_mt_reassign_id()
564 FOREACHBIT(mt->touches, slot) in evdev_mt_reassign_id()
565 if (evdev_mt_get_value(evdev, slot, ABS_MT_TRACKING_ID) == nid) in evdev_mt_reassign_id()
597 /* Echo 0-th MT-slot as ST-slot */ in evdev_mt_support_st_compat()
633 /* Send first active MT-slot state as single touch report */ in evdev_mt_send_st_compat()
656 int slot; in evdev_mt_send_autorel() local
661 FOREACHBIT(mt->touches & ~mt->frame, slot) in evdev_mt_send_autorel()
662 evdev_mt_send_slot(evdev, slot, NULL); in evdev_mt_send_autorel()