android_led_update(struct weston_seat *seat_base, enum weston_led leds)
{
struct android_seat *seat = to_android_seat(seat_base);
+ struct evdev_input_device *device;
- evdev_led_update(&seat->devices_list, leds);
+ wl_list_for_each(device, &seat->devices_list, link)
+ evdev_led_update(device, leds);
}
static void
drm_led_update(struct weston_seat *seat_base, enum weston_led leds)
{
struct drm_seat *seat = (struct drm_seat *) seat_base;
+ struct evdev_input_device *device;
- evdev_led_update(&seat->devices_list, leds);
+ wl_list_for_each(device, &seat->devices_list, link)
+ evdev_led_update(device, leds);
}
static void
#include "evdev.h"
void
-evdev_led_update(struct wl_list *evdev_devices, enum weston_led leds)
+evdev_led_update(struct evdev_input_device *device, enum weston_led leds)
{
static const struct {
enum weston_led weston;
{ LED_CAPS_LOCK, LED_CAPSL },
{ LED_SCROLL_LOCK, LED_SCROLLL },
};
- struct evdev_input_device *device;
struct input_event ev[ARRAY_LENGTH(map)];
unsigned int i;
+ if (!device->caps & EVDEV_KEYBOARD)
+ return;
+
memset(ev, 0, sizeof(ev));
for (i = 0; i < ARRAY_LENGTH(map); i++) {
ev[i].type = EV_LED;
ev[i].value = !!(leds & map[i].weston);
}
- wl_list_for_each(device, evdev_devices, link) {
- if (device->caps & EVDEV_KEYBOARD)
- i = write(device->fd, ev, sizeof ev);
- (void)i; /* no, we really don't care about the return value */
- }
+ i = write(device->fd, ev, sizeof ev);
+ (void)i; /* no, we really don't care about the return value */
}
static inline void
evdev_touchpad_create(struct evdev_input_device *device);
void
-evdev_led_update(struct wl_list *evdev_devices, enum weston_led leds);
+evdev_led_update(struct evdev_input_device *device, enum weston_led leds);
struct evdev_input_device *
evdev_input_device_create(struct weston_seat *seat,