Lines Matching refs:slot

49 	int slot; /* current slot */
125 struct totem_slot *slot = &totem->slots[i];
128 if (slot->state == SLOT_STATE_NONE)
133 mm = evdev_device_units_to_mm(totem->device, &slot->axes.point);
206 struct totem_slot *slot = &totem->slots[totem->slot];
212 "exceeded slot count (%d of max %zd)\n",
217 totem->slot = e->value;
223 slot->state = SLOT_STATE_BEGIN;
224 else if (slot->state != SLOT_STATE_NONE)
225 slot->state = SLOT_STATE_END;
228 set_bit(slot->changed_axes, LIBINPUT_TABLET_TOOL_AXIS_X);
231 set_bit(slot->changed_axes, LIBINPUT_TABLET_TOOL_AXIS_Y);
234 set_bit(slot->changed_axes,
238 set_bit(slot->changed_axes,
242 set_bit(slot->changed_axes,
262 struct totem_slot *slot,
268 const char tmp[sizeof(slot->changed_axes)] = {0};
273 if (memcmp(tmp, slot->changed_axes, sizeof(tmp)) == 0) {
274 axes = slot->axes;
278 if (bit_is_set(slot->changed_axes, LIBINPUT_TABLET_TOOL_AXIS_X) ||
279 bit_is_set(slot->changed_axes, LIBINPUT_TABLET_TOOL_AXIS_Y)) {
280 slot->axes.point.x = libevdev_get_slot_value(device->evdev,
281 slot->index,
283 slot->axes.point.y = libevdev_get_slot_value(device->evdev,
284 slot->index,
288 if (bit_is_set(slot->changed_axes,
291 slot->index,
294 slot->axes.rotation = (360 - angle) % 360;
297 if (bit_is_set(slot->changed_axes,
299 bit_is_set(slot->changed_axes,
305 slot->index,
308 slot->index,
312 slot->axes.size.major = (double)major/rmajor;
313 slot->axes.size.minor = (double)minor/rminor;
316 axes.point = slot->axes.point;
317 axes.rotation = slot->axes.rotation;
318 axes.size = slot->axes.size;
320 delta.x = slot->axes.point.x - slot->last_point.x;
321 delta.y = slot->axes.point.y - slot->last_point.y;
333 struct totem_slot *slot,
336 static_assert(sizeof(slot->changed_axes) ==
340 memcpy(slot->changed_axes,
342 sizeof(slot->changed_axes));
347 struct totem_slot *slot)
349 memset(slot->changed_axes, 0, sizeof(slot->changed_axes));
354 struct totem_slot *slot)
358 slot->axes.point.x = libevdev_get_slot_value(device->evdev,
359 slot->index,
361 slot->axes.point.y = libevdev_get_slot_value(device->evdev,
362 slot->index,
364 slot->last_point.x = slot->axes.point.x;
365 slot->last_point.y = slot->axes.point.y;
370 struct totem_slot *slot,
378 switch (slot->state) {
380 if (!slot->tool)
381 slot->tool = totem_new_tool(totem);
382 slot_axes_initialize(totem, slot);
383 totem_slot_mark_all_axes_changed(totem, slot, slot->tool);
387 assert(slot->tool);
394 updated = totem_slot_fetch_axes(totem, slot, slot->tool, &axes, time);
396 switch (slot->state) {
401 slot->tool,
403 slot->changed_axes,
405 totem_slot_reset_changed_axes(totem, slot);
408 slot->tool,
410 slot->changed_axes,
412 slot->state = SLOT_STATE_UPDATE;
419 slot->tool,
421 slot->changed_axes,
435 * button state in the first slot.
451 slot->tool,
460 switch(slot->state) {
468 slot->tool,
470 slot->changed_axes,
472 totem_slot_reset_changed_axes(totem, slot);
475 slot->tool,
477 slot->changed_axes,
479 slot->state = SLOT_STATE_NONE;
486 slot->last_point = slot->axes.point;
487 totem_slot_reset_changed_axes(totem, slot);
489 return slot->state;
505 /* If one slot is active, the totem is active */
557 struct totem_slot *slot = &totem->slots[i];
562 if (!slot->tool)
565 totem_slot_fetch_axes(totem, slot, slot->tool, &axes, now);
566 totem_slot_reset_changed_axes(totem, slot);
568 if (slot->state == SLOT_STATE_NONE)
576 slot->tool,
586 if (slot->state != SLOT_STATE_NONE) {
589 slot->tool,
591 slot->changed_axes,
596 slot->tool,
598 slot->changed_axes,
667 struct totem_slot *slot = &totem->slots[i];
677 slot->tool = totem_new_tool(totem);
678 slot_axes_initialize(totem, slot);
679 totem_slot_mark_all_axes_changed(totem, slot, slot->tool);
680 totem_slot_fetch_axes(totem, slot, slot->tool, &axes, now);
683 slot->tool,
685 slot->changed_axes,
687 totem_slot_reset_changed_axes(totem, slot);
690 slot->tool,
692 slot->changed_axes,
694 slot->state = SLOT_STATE_UPDATE;
740 has_slot ? "" : " slot",
818 totem->slot = libevdev_get_current_slot(device->evdev);
821 for (int slot = 0; slot < num_slots; ++slot) {
822 slots[slot].index = slot;