lv_evdev.h

Typedefs

typedef void (*lv_evdev_discovery_cb_t)(lv_indev_t *indev, lv_evdev_type_t type, void *user_data)
Param indev:

the indev created for the newly discovered evdev

Param type:

the type of the evdev

Param user_data:

a custom parameter

Enums

enum lv_evdev_type_t

Values:

enumerator LV_EVDEV_TYPE_REL

mice

enumerator LV_EVDEV_TYPE_ABS

touch screens, mousepads

enumerator LV_EVDEV_TYPE_KEY

keyboards, keypads, buttons

Functions

lv_indev_t *lv_evdev_create(lv_indev_type_t indev_type, const char *dev_path)

Create evdev input device.

Parameters:
  • type – LV_INDEV_TYPE_POINTER or LV_INDEV_TYPE_KEYPAD

  • dev_path – device path, e.g., /dev/input/event0

Returns:

pointer to input device or NULL if opening failed

lv_result_t lv_evdev_discovery_start(lv_evdev_discovery_cb_t cb, void *user_data)

Begin automatically creating evdev indevs for all new and existing evdev devices found in /dev/input/

Parameters:
  • cb – function to call when a new evdev indev is discovered, or NULL

  • user_data – parameter to pass to the callback

Returns:

the success or failure status. It will fail if it's already running or resources could not be initialized.

lv_result_t lv_evdev_discovery_stop(void)

Stop automatically creating evdev indevs. Safe to call from the discovery callback.

Returns:

the success or failure status. It will fail if it's already running.

void lv_evdev_set_swap_axes(lv_indev_t *indev, bool swap_axes)

Set whether coordinates of pointer device should be swapped. Defaults to false.

Parameters:
  • indev – evdev input device

  • swap_axes – whether to swap x and y axes

void lv_evdev_set_calibration(lv_indev_t *indev, int min_x, int min_y, int max_x, int max_y)

Configure a coordinate transformation for pointer devices. Applied after axis swap, if any. Defaults to apply no transformation.

Parameters:
  • indev – evdev input device

  • min_x – pointer coordinate mapped to min x of display

  • min_y – pointer coordinate mapped to min y of display

  • max_x – pointer coordinate mapped to max x of display

  • max_y – pointer coordinate mapped to max y of display

void lv_evdev_delete(lv_indev_t *indev)

Remove evdev input device.

Parameters:

indev – evdev input device to close and free