diff options
| author | Peter Hutterer <peter.hutterer@who-t.net> | 2013-08-09 13:21:28 +1000 |
|---|---|---|
| committer | Peter Hutterer <peter.hutterer@who-t.net> | 2013-08-15 10:32:40 +1000 |
| commit | 4d4293a65b604e0bf8d02dc729803f142fc665aa (patch) | |
| tree | 5673340dea0205a4bd473feae44caa9565eae4ee /libevdev/libevdev.h | |
| parent | bfb6c1c6c59bf1bb3a9bbab0ff26b962a4efc922 (diff) | |
| download | libevdev-4d4293a65b604e0bf8d02dc729803f142fc665aa.tar.gz | |
Add functions to toggle LEDs on the device
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Diffstat (limited to 'libevdev/libevdev.h')
| -rw-r--r-- | libevdev/libevdev.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/libevdev/libevdev.h b/libevdev/libevdev.h index 4c01847..db6a2ec 100644 --- a/libevdev/libevdev.h +++ b/libevdev/libevdev.h @@ -1146,6 +1146,52 @@ int libevdev_disable_event_code(struct libevdev *dev, unsigned int type, unsigne */ int libevdev_kernel_set_abs_info(struct libevdev *dev, unsigned int code, const struct input_absinfo *abs); + +enum EvdevLEDValues { + LIBEVDEV_LED_ON = 3, + LIBEVDEV_LED_OFF = 4, +}; + +/** + * @ingroup kernel + * + * Turn an LED on or off. Convenience function, if you need to modify multiple + * LEDs simultaneously, use libevdev_kernel_set_led_values() instead. + * + * @note enabling an LED requires write permissions on the device's file descriptor. + * + * @param dev The evdev device, already initialized with libevdev_set_fd() + * @param code The EV_LED event code to modify, one of LED_NUML, LED_CAPSL, ... + * @param value Specifies whether to turn the LED on or off + * @return zero on success, or a negative errno on failure + */ +int libevdev_kernel_set_led_value(struct libevdev *dev, unsigned int code, enum EvdevLEDValues value); + +/** + * @ingroup kernel + * + * Turn multiple LEDs on or off simultaneously. This function expects a pair + * of LED codes and values to set them to, terminated by a -1. For example, to + * switch the NumLock LED on but the CapsLock LED off, use: + * + * @code + * libevdev_kernel_set_led_values(dev, LED_NUML, LIBEVDEV_LED_ON, + * LED_CAPSL, LIBEVDEV_LED_OFF, + * -1); + * @endcode + * + * If any LED code or value is invalid, this function returns -EINVAL and no + * LEDs are modified. + * + * @note enabling an LED requires write permissions on the device's file descriptor. + * + * @param dev The evdev device, already initialized with libevdev_set_fd() + * @param ... A pair of LED_* event codes and enum EvdevLEDValues, followed by + * -1 to terminate the list. + * @return zero on success, or a negative errno on failure + */ +int libevdev_kernel_set_led_values(struct libevdev *dev, ...); + /** * @ingroup misc * |
