• Home
  • Raw
  • Download

Lines Matching +full:base +full:- +full:db

25 #include "evdev-tablet-pad.h"
26 #include "util-input-event.h"
36 #define pad_set_status(pad_,s_) (pad_)->status |= (s_)
37 #define pad_unset_status(pad_,s_) (pad_)->status &= ~(s_)
38 #define pad_has_status(pad_,s_) (!!((pad_)->status & (s_)))
44 struct button_state *state = &pad->button_state; in pad_get_buttons_pressed()
45 struct button_state *prev_state = &pad->prev_button_state; in pad_get_buttons_pressed()
48 for (i = 0; i < sizeof(buttons->bits); i++) in pad_get_buttons_pressed()
49 buttons->bits[i] = state->bits[i] & ~(prev_state->bits[i]); in pad_get_buttons_pressed()
56 struct button_state *state = &pad->button_state; in pad_get_buttons_released()
57 struct button_state *prev_state = &pad->prev_button_state; in pad_get_buttons_released()
60 for (i = 0; i < sizeof(buttons->bits); i++) in pad_get_buttons_released()
61 buttons->bits[i] = prev_state->bits[i] & ~(state->bits[i]); in pad_get_buttons_released()
68 return bit_is_set(pad->button_state.bits, button); in pad_button_is_down()
74 const struct button_state *state = &pad->button_state; in pad_any_button_down()
77 for (i = 0; i < sizeof(state->bits); i++) in pad_any_button_down()
78 if (state->bits[i] != 0) in pad_any_button_down()
89 struct button_state *state = &pad->button_state; in pad_button_set_down()
92 set_bit(state->bits, button); in pad_button_set_down()
95 clear_bit(state->bits, button); in pad_button_set_down()
106 switch (e->code) { in pad_process_absolute()
108 pad->changed_axes |= PAD_AXIS_RING1; in pad_process_absolute()
112 pad->changed_axes |= PAD_AXIS_RING2; in pad_process_absolute()
116 pad->changed_axes |= PAD_AXIS_STRIP1; in pad_process_absolute()
120 pad->changed_axes |= PAD_AXIS_STRIP2; in pad_process_absolute()
127 is kernel behavior for xf86-input-wacom backwards in pad_process_absolute()
138 pad->have_abs_misc_terminator = true; in pad_process_absolute()
143 e->code); in pad_process_absolute()
153 0 on the left-most wheel position. in normalize_ring()
156 double value = (absinfo->value - absinfo->minimum) / range - 0.25; in normalize_ring()
171 max = log2(absinfo->maximum); in normalize_strip()
172 double range = max - min; in normalize_strip()
173 double value = (log2(absinfo->value) - min) / range; in normalize_strip()
186 absinfo = libevdev_get_abs_info(device->evdev, code); in pad_handle_ring()
191 if (device->left_handed.enabled) in pad_handle_ring()
205 absinfo = libevdev_get_abs_info(device->evdev, code); in pad_handle_strip()
208 if (absinfo->value == 0) in pad_handle_strip()
213 if (device->left_handed.enabled) in pad_handle_strip()
214 pos = 1.0 - pos; in pad_handle_strip()
225 list_for_each(group, &pad->modes.mode_group_list, link) { in pad_ring_get_mode_group()
241 list_for_each(group, &pad->modes.mode_group_list, link) { in pad_strip_get_mode_group()
256 struct libinput_device *base = &device->base; in pad_check_notify_axes() local
263 if (pad->have_abs_misc_terminator && in pad_check_notify_axes()
264 libevdev_get_event_value(device->evdev, EV_ABS, ABS_MISC) == 0) in pad_check_notify_axes()
267 if (pad->changed_axes & PAD_AXIS_RING1) { in pad_check_notify_axes()
270 value = -1.0; in pad_check_notify_axes()
273 tablet_pad_notify_ring(base, in pad_check_notify_axes()
281 if (pad->changed_axes & PAD_AXIS_RING2) { in pad_check_notify_axes()
284 value = -1.0; in pad_check_notify_axes()
287 tablet_pad_notify_ring(base, in pad_check_notify_axes()
295 if (pad->changed_axes & PAD_AXIS_STRIP1) { in pad_check_notify_axes()
298 value = -1.0; in pad_check_notify_axes()
301 tablet_pad_notify_strip(base, in pad_check_notify_axes()
309 if (pad->changed_axes & PAD_AXIS_STRIP2) { in pad_check_notify_axes()
312 value = -1.0; in pad_check_notify_axes()
315 tablet_pad_notify_strip(base, in pad_check_notify_axes()
323 pad->changed_axes = PAD_AXIS_NONE; in pad_check_notify_axes()
324 pad->have_abs_misc_terminator = false; in pad_check_notify_axes()
333 uint32_t button = e->code; in pad_process_key()
334 uint32_t is_press = e->value != 0; in pad_process_key()
337 if (e->value == 2) in pad_process_key()
349 list_for_each(group, &pad->modes.mode_group_list, link) { in pad_button_get_mode_group()
366 struct libinput_device *base = &device->base; in pad_notify_button_mask() local
371 for (i = 0; i < sizeof(buttons->bits); i++) { in pad_notify_button_mask()
372 unsigned char buttons_slice = buttons->bits[i]; in pad_notify_button_mask()
386 map = pad->button_map[code - 1]; in pad_notify_button_mask()
395 tablet_pad_notify_button(base, in pad_notify_button_mask()
403 tablet_pad_notify_key(base, in pad_notify_button_mask()
433 struct pad_dispatch *pad = (struct pad_dispatch*)device->dispatch; in pad_change_to_left_handed()
435 if (device->left_handed.enabled == device->left_handed.want_enabled) in pad_change_to_left_handed()
441 device->left_handed.enabled = device->left_handed.want_enabled; in pad_change_to_left_handed()
473 memcpy(&pad->prev_button_state, in pad_flush()
474 &pad->button_state, in pad_flush()
475 sizeof(pad->button_state)); in pad_flush()
486 switch (e->type) { in pad_process()
503 libevdev_event_type_get_name(e->type), in pad_process()
504 e->type); in pad_process()
556 WacomDeviceDatabase *db = NULL; in pad_init_buttons_from_libwacom() local
562 db = libinput_libwacom_ref(li); in pad_init_buttons_from_libwacom()
563 if (!db) in pad_init_buttons_from_libwacom()
570 tablet = libwacom_new_from_path(db, in pad_init_buttons_from_libwacom()
575 tablet = libwacom_new_from_usbid(db, in pad_init_buttons_from_libwacom()
592 map_set_button_map(pad->button_map[code], map++); in pad_init_buttons_from_libwacom()
595 pad->nbuttons = map; in pad_init_buttons_from_libwacom()
601 if (db) in pad_init_buttons_from_libwacom()
616 if (libevdev_has_event_code(device->evdev, EV_KEY, code)) in pad_init_buttons_from_kernel()
617 map_set_button_map(pad->button_map[code], map++); in pad_init_buttons_from_kernel()
621 if (libevdev_has_event_code(device->evdev, EV_KEY, code)) in pad_init_buttons_from_kernel()
622 map_set_button_map(pad->button_map[code], map++); in pad_init_buttons_from_kernel()
626 if (libevdev_has_event_code(device->evdev, EV_KEY, code)) in pad_init_buttons_from_kernel()
627 map_set_button_map(pad->button_map[code], map++); in pad_init_buttons_from_kernel()
631 if (libevdev_has_event_code(device->evdev, EV_KEY, code)) in pad_init_buttons_from_kernel()
632 map_set_button_map(pad->button_map[code], map++); in pad_init_buttons_from_kernel()
635 pad->nbuttons = map; in pad_init_buttons_from_kernel()
648 if (libevdev_get_id_vendor(device->evdev) != VENDOR_ID_WACOM) in pad_init_keys()
652 if (libevdev_has_event_code(device->evdev, EV_KEY, *code)) in pad_init_keys()
653 map_set_key_map(pad->button_map[*code], *code); in pad_init_keys()
663 for (i = 0; i < ARRAY_LENGTH(pad->button_map); i++) in pad_init_buttons()
664 map_init(pad->button_map[i]); in pad_init_buttons()
683 pad->base.dispatch_type = DISPATCH_TABLET_PAD; in pad_init()
684 pad->base.interface = &pad_interface; in pad_init()
685 pad->device = device; in pad_init()
686 pad->status = PAD_NONE; in pad_init()
687 pad->changed_axes = PAD_AXIS_NONE; in pad_init()
708 struct pad_dispatch *pad = (struct pad_dispatch*)evdev->dispatch; in pad_sendevents_set_mode()
710 if (mode == pad->sendevents.current_mode) in pad_sendevents_set_mode()
717 pad_suspend(evdev->dispatch, evdev); in pad_sendevents_set_mode()
723 pad->sendevents.current_mode = mode; in pad_sendevents_set_mode()
732 struct pad_dispatch *dispatch = (struct pad_dispatch*)evdev->dispatch; in pad_sendevents_get_mode()
734 return dispatch->sendevents.current_mode; in pad_sendevents_get_mode()
751 pad_destroy(&pad->base); in evdev_tablet_pad_create()
755 device->base.config.sendevents = &pad->sendevents.config; in evdev_tablet_pad_create()
756 pad->sendevents.current_mode = LIBINPUT_CONFIG_SEND_EVENTS_ENABLED; in evdev_tablet_pad_create()
757 pad->sendevents.config.get_modes = pad_sendevents_get_modes; in evdev_tablet_pad_create()
758 pad->sendevents.config.set_mode = pad_sendevents_set_mode; in evdev_tablet_pad_create()
759 pad->sendevents.config.get_mode = pad_sendevents_get_mode; in evdev_tablet_pad_create()
760 pad->sendevents.config.get_default_mode = pad_sendevents_get_default_mode; in evdev_tablet_pad_create()
762 return &pad->base; in evdev_tablet_pad_create()
768 if (!(device->seat_caps & EVDEV_DEVICE_TABLET_PAD)) in evdev_device_tablet_pad_has_key()
769 return -1; in evdev_device_tablet_pad_has_key()
771 return libevdev_has_event_code(device->evdev, EV_KEY, code); in evdev_device_tablet_pad_has_key()
777 struct pad_dispatch *pad = (struct pad_dispatch*)device->dispatch; in evdev_device_tablet_pad_get_num_buttons()
779 if (!(device->seat_caps & EVDEV_DEVICE_TABLET_PAD)) in evdev_device_tablet_pad_get_num_buttons()
780 return -1; in evdev_device_tablet_pad_get_num_buttons()
782 return pad->nbuttons; in evdev_device_tablet_pad_get_num_buttons()
790 if (!(device->seat_caps & EVDEV_DEVICE_TABLET_PAD)) in evdev_device_tablet_pad_get_num_rings()
791 return -1; in evdev_device_tablet_pad_get_num_rings()
793 if (libevdev_has_event_code(device->evdev, EV_ABS, ABS_WHEEL)) { in evdev_device_tablet_pad_get_num_rings()
795 if (libevdev_has_event_code(device->evdev, in evdev_device_tablet_pad_get_num_rings()
809 if (!(device->seat_caps & EVDEV_DEVICE_TABLET_PAD)) in evdev_device_tablet_pad_get_num_strips()
810 return -1; in evdev_device_tablet_pad_get_num_strips()
812 if (libevdev_has_event_code(device->evdev, EV_ABS, ABS_RX)) { in evdev_device_tablet_pad_get_num_strips()
814 if (libevdev_has_event_code(device->evdev, in evdev_device_tablet_pad_get_num_strips()