Lines Matching +full:base +full:- +full:db
29 #include "evdev-tablet-pad.h"
36 struct libinput_tablet_pad_mode_group base; member
48 /* /sys/devices/..../input1235/input1235::wacom-led_0.1/brightness */
62 button->button_index = button_index; in pad_mode_toggle_button_new()
71 list_remove(&button->link); in pad_mode_toggle_button_destroy()
83 list_for_each(led, &group->led_list, link) { in pad_led_group_get_mode()
84 rc = lseek(led->brightness_fd, 0, SEEK_SET); in pad_led_group_get_mode()
85 if (rc == -1) in pad_led_group_get_mode()
86 return -errno; in pad_led_group_get_mode()
88 rc = read(led->brightness_fd, buf, sizeof(buf) - 1); in pad_led_group_get_mode()
89 if (rc == -1) in pad_led_group_get_mode()
90 return -errno; in pad_led_group_get_mode()
94 return -EINVAL; in pad_led_group_get_mode()
98 return led->mode_idx; in pad_led_group_get_mode()
101 return -EINVAL; in pad_led_group_get_mode()
108 list_remove(&led->link); in pad_led_destroy()
109 if (led->brightness_fd != -1) in pad_led_destroy()
110 close_restricted(libinput, led->brightness_fd); in pad_led_destroy()
123 led->brightness_fd = -1; in pad_led_new()
124 led->mode_idx = mode; in pad_led_new()
125 list_init(&led->link); in pad_led_new()
127 /* /sys/devices/..../input1235/input1235::wacom-0.1/brightness, in pad_led_new()
135 if (rc == -1) in pad_led_new()
140 errno = -fd; in pad_led_new()
144 led->brightness_fd = fd; in pad_led_new()
161 list_for_each_safe(button, &group->toggle_button_list, link) in pad_led_group_destroy()
164 list_for_each_safe(led, &group->led_list, link) in pad_led_group_destroy()
165 pad_led_destroy(g->device->seat->libinput, led); in pad_led_group_destroy()
178 group->base.device = &pad->device->base; in pad_group_new_basic()
179 group->base.refcount = 1; in pad_group_new_basic()
180 group->base.index = group_index; in pad_group_new_basic()
181 group->base.current_mode = 0; in pad_group_new_basic()
182 group->base.num_modes = nleds; in pad_group_new_basic()
183 group->base.destroy = pad_led_group_destroy; in pad_group_new_basic()
184 list_init(&group->toggle_button_list); in pad_group_new_basic()
185 list_init(&group->led_list); in pad_group_new_basic()
194 return !!udev_device_get_property_value(device->udev_device, in is_litest_device()
204 struct libinput *libinput = pad->device->base.seat->libinput; in pad_group_new()
212 while (nleds--) { in pad_group_new()
219 list_insert(&group->led_list, &led->link); in pad_group_new()
224 errno = -rc; in pad_group_new()
228 group->base.current_mode = rc; in pad_group_new()
233 if (!is_litest_device(pad->device)) in pad_group_new()
234 evdev_log_error(pad->device, in pad_group_new()
237 pad_led_group_destroy(&group->base); in pad_group_new()
251 udev_device = device->udev_device; in pad_led_get_sysfs_base_path()
253 /* For testing purposes only allow for a base path set through a in pad_led_get_sysfs_base_path()
259 return rc != -1; in pad_led_get_sysfs_base_path()
270 "%s/%s::wacom-", in pad_led_get_sysfs_base_path()
274 return rc != -1; in pad_led_get_sysfs_base_path()
292 /* syspath is /sys/class/leds/input1234/input12345::wacom-" and in pad_init_led_groups()
309 list_insert(&pad->modes.mode_group_list, &group->base.link); in pad_init_led_groups()
316 list_insert(&pad->modes.mode_group_list, &group->base.link); in pad_init_led_groups()
323 list_insert(&pad->modes.mode_group_list, &group->base.link); in pad_init_led_groups()
331 list_insert(&pad->modes.mode_group_list, &group->base.link); in pad_init_led_groups()
346 list_for_each(group, &pad->modes.mode_group_list, link) { in pad_get_mode_group()
347 if (group->index == index) in pad_get_mode_group()
377 return -1; in pad_find_button_group()
399 if ((int)group_idx == -1) { in pad_init_mode_buttons()
403 if ((int)group_idx == -1) { in pad_init_mode_buttons()
404 evdev_log_bug_libinput(pad->device, in pad_init_mode_buttons()
412 evdev_log_bug_libinput(pad->device, in pad_init_mode_buttons()
419 group->button_mask |= bit(i); in pad_init_mode_buttons()
429 list_insert(&g->toggle_button_list, &b->link); in pad_init_mode_buttons()
430 group->toggle_button_mask |= bit(i); in pad_init_mode_buttons()
452 group->ring_mask |= 0x1; in pad_init_mode_rings()
456 group->ring_mask |= 0x2; in pad_init_mode_rings()
479 group->strip_mask |= 0x1; in pad_init_mode_strips()
483 group->strip_mask |= 0x2; in pad_init_mode_strips()
496 WacomDeviceDatabase *db = NULL; in pad_init_leds_from_libwacom() local
500 db = libinput_libwacom_ref(li); in pad_init_leds_from_libwacom()
501 if (!db) in pad_init_leds_from_libwacom()
504 wacom = libwacom_new_from_path(db, in pad_init_leds_from_libwacom()
505 udev_device_get_devnode(device->udev_device), in pad_init_leds_from_libwacom()
524 if (db) in pad_init_leds_from_libwacom()
546 group->base.button_mask = -1; in pad_init_fallback_group()
547 group->base.strip_mask = -1; in pad_init_fallback_group()
548 group->base.ring_mask = -1; in pad_init_fallback_group()
549 group->base.toggle_button_mask = 0; in pad_init_fallback_group()
551 list_insert(&pad->modes.mode_group_list, &group->base.link); in pad_init_fallback_group()
562 list_init(&pad->modes.mode_group_list); in pad_init_leds()
564 if (pad->nbuttons > 32) { in pad_init_leds()
565 evdev_log_bug_libinput(pad->device, in pad_init_leds()
567 pad->nbuttons); in pad_init_leds()
586 list_for_each_safe(group, &pad->modes.mode_group_list, link) in pad_destroy_leds()
606 group->base.current_mode = rc; in pad_button_update_mode()
612 struct pad_dispatch *pad = (struct pad_dispatch*)device->dispatch; in evdev_device_tablet_pad_get_num_mode_groups()
616 if (!(device->seat_caps & EVDEV_DEVICE_TABLET_PAD)) in evdev_device_tablet_pad_get_num_mode_groups()
617 return -1; in evdev_device_tablet_pad_get_num_mode_groups()
619 list_for_each(group, &pad->modes.mode_group_list, link) in evdev_device_tablet_pad_get_num_mode_groups()
629 struct pad_dispatch *pad = (struct pad_dispatch*)device->dispatch; in evdev_device_tablet_pad_get_mode_group()
631 if (!(device->seat_caps & EVDEV_DEVICE_TABLET_PAD)) in evdev_device_tablet_pad_get_mode_group()