init lvgl code
This commit is contained in:
145
LVGL.Simulator/lv_drivers/indev/libinput_drv.h
Normal file
145
LVGL.Simulator/lv_drivers/indev/libinput_drv.h
Normal file
@@ -0,0 +1,145 @@
|
||||
/**
|
||||
* @file libinput.h
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef LVGL_LIBINPUT_H
|
||||
#define LVGL_LIBINPUT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
#ifndef LV_DRV_NO_CONF
|
||||
#ifdef LV_CONF_INCLUDE_SIMPLE
|
||||
#include "lv_drv_conf.h"
|
||||
#else
|
||||
#include "../../lv_drv_conf.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if USE_LIBINPUT || USE_BSD_LIBINPUT
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#include "lvgl.h"
|
||||
#else
|
||||
#include "lvgl/lvgl.h"
|
||||
#endif
|
||||
|
||||
#include <poll.h>
|
||||
|
||||
#if USE_XKB
|
||||
#include "xkb.h"
|
||||
#endif /* USE_XKB */
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
typedef enum {
|
||||
LIBINPUT_CAPABILITY_NONE = 0,
|
||||
LIBINPUT_CAPABILITY_KEYBOARD = 1U << 0,
|
||||
LIBINPUT_CAPABILITY_POINTER = 1U << 1,
|
||||
LIBINPUT_CAPABILITY_TOUCH = 1U << 2
|
||||
} libinput_capability;
|
||||
|
||||
typedef struct {
|
||||
int fd;
|
||||
struct pollfd fds[1];
|
||||
|
||||
int button;
|
||||
int key_val;
|
||||
lv_point_t most_recent_touch_point;
|
||||
|
||||
struct libinput *libinput_context;
|
||||
struct libinput_device *libinput_device;
|
||||
|
||||
#if USE_XKB
|
||||
xkb_drv_state_t xkb_state;
|
||||
#endif /* USE_XKB */
|
||||
} libinput_drv_state_t;
|
||||
|
||||
/**********************
|
||||
* GLOBAL PROTOTYPES
|
||||
**********************/
|
||||
|
||||
/**
|
||||
* find connected input device with specific capabilities
|
||||
* @param capabilities required device capabilities
|
||||
* @param force_rescan erase the device cache (if any) and rescan the file system for available devices
|
||||
* @return device node path (e.g. /dev/input/event0) for the first matching device or NULL if no device was found.
|
||||
* The pointer is safe to use until the next forceful device search.
|
||||
*/
|
||||
char *libinput_find_dev(libinput_capability capabilities, bool force_rescan);
|
||||
/**
|
||||
* find connected input devices with specific capabilities
|
||||
* @param capabilities required device capabilities
|
||||
* @param devices pre-allocated array to store the found device node paths (e.g. /dev/input/event0). The pointers are
|
||||
* safe to use until the next forceful device search.
|
||||
* @param count maximum number of devices to find (the devices array should be at least this long)
|
||||
* @param force_rescan erase the device cache (if any) and rescan the file system for available devices
|
||||
* @return number of devices that were found
|
||||
*/
|
||||
size_t libinput_find_devs(libinput_capability capabilities, char **found, size_t count, bool force_rescan);
|
||||
/**
|
||||
* Prepare for reading input via libinput using the default driver state. Use this function if you only want
|
||||
* to connect a single device.
|
||||
*/
|
||||
void libinput_init(void);
|
||||
/**
|
||||
* Prepare for reading input via libinput using a specific driver state. Use this function if you want to
|
||||
* connect multiple devices.
|
||||
* @param state driver state to initialize
|
||||
* @param path input device node path (e.g. /dev/input/event0)
|
||||
*/
|
||||
void libinput_init_state(libinput_drv_state_t *state, char* path);
|
||||
/**
|
||||
* Reconfigure the device file for libinput using the default driver state. Use this function if you only want
|
||||
* to connect a single device.
|
||||
* @param dev_name input device node path (e.g. /dev/input/event0)
|
||||
* @return true: the device file set complete
|
||||
* false: the device file doesn't exist current system
|
||||
*/
|
||||
bool libinput_set_file(char* dev_name);
|
||||
/**
|
||||
* Reconfigure the device file for libinput using a specific driver state. Use this function if you want to
|
||||
* connect multiple devices.
|
||||
* @param state the driver state to configure
|
||||
* @param dev_name input device node path (e.g. /dev/input/event0)
|
||||
* @return true: the device file set complete
|
||||
* false: the device file doesn't exist current system
|
||||
*/
|
||||
bool libinput_set_file_state(libinput_drv_state_t *state, char* dev_name);
|
||||
/**
|
||||
* Read available input events via libinput using the default driver state. Use this function if you only want
|
||||
* to connect a single device.
|
||||
* @param indev_drv driver object itself
|
||||
* @param data store the libinput data here
|
||||
*/
|
||||
void libinput_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data);
|
||||
/**
|
||||
* Read available input events via libinput using a specific driver state. Use this function if you want to
|
||||
* connect multiple devices.
|
||||
* @param state the driver state to use
|
||||
* @param indev_drv driver object itself
|
||||
* @param data store the libinput data here
|
||||
*/
|
||||
void libinput_read_state(libinput_drv_state_t * state, lv_indev_drv_t * indev_drv, lv_indev_data_t * data);
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
#endif /* USE_LIBINPUT || USE_BSD_LIBINPUT */
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* LVGL_LIBINPUT_H */
|
||||
Reference in New Issue
Block a user