#include "e_devicemgr_intern.h"
#include "e_keyrouter_intern.h"
-#include "e_input_intern.h"
+#include "e_input_evdev_intern.h"
#include "e_comp_wl_input_intern.h"
#include "e_utils_intern.h"
#include "e_comp_input_intern.h"
if (e_input_thread_mode_get())
{
- dev = e_input_evdev_get_e_device(identifier, ECORE_DEVICE_CLASS_KEYBOARD);
+ dev = e_input_evdev_e_device_get(identifier, ECORE_DEVICE_CLASS_KEYBOARD);
e->dev = (Eo *)g_object_ref(dev);
}
else
{
- e->dev = ecore_device_ref(e_input_evdev_get_ecore_device(identifier, ECORE_DEVICE_CLASS_KEYBOARD));
+ e->dev = ecore_device_ref(e_input_evdev_ecore_device_get(identifier, ECORE_DEVICE_CLASS_KEYBOARD));
}
DMDBG("Generate key event: key: %s, keycode: %d, iden: %s\n", e->key, e->keycode, identifier);
e->multi.root.y = e->y;
ecore_thread_main_loop_begin();
- e->dev = ecore_device_ref(e_input_evdev_get_ecore_device(identifier, ECORE_DEVICE_CLASS_MOUSE));
+ e->dev = ecore_device_ref(e_input_evdev_ecore_device_get(identifier, ECORE_DEVICE_CLASS_MOUSE));
e->buttons = buttons;
DMDBG("Generate mouse button event: button: %d (state: %d)\n", buttons, state);
e->multi.root.y = e->y;
ecore_thread_main_loop_begin();
- e->dev = ecore_device_ref(e_input_evdev_get_ecore_device(identifier, ECORE_DEVICE_CLASS_MOUSE));
+ e->dev = ecore_device_ref(e_input_evdev_ecore_device_get(identifier, ECORE_DEVICE_CLASS_MOUSE));
DMDBG("Generate mouse move event: (%d, %d)\n", e->x, e->y);
{
if (!e_devicemgr_detent_is_detent(device->name))
clas = device->clas;
- e->dev = ecore_device_ref(e_input_evdev_get_ecore_device(device->identifier, clas));
+ e->dev = ecore_device_ref(e_input_evdev_ecore_device_get(device->identifier, clas));
}
DMDBG("Generate mouse wheel event: direction: %s, value: %d\n", e->direction?"HWHEEL":"WHEEL", e->z);
e->multi.root.y = e->y;
ecore_thread_main_loop_begin();
- e->dev = ecore_device_ref(e_input_evdev_get_ecore_device(device?device->identifier:NULL, ECORE_DEVICE_CLASS_TOUCH));
+ e->dev = ecore_device_ref(e_input_evdev_ecore_device_get(device?device->identifier:NULL, ECORE_DEVICE_CLASS_TOUCH));
e->buttons = 1;
DMDBG("Generate touch event: device: %d (%d, %d)\n", e->multi.device, e->x, e->y);
ecore_thread_main_loop_begin();
- e->dev = ecore_device_ref(e_input_evdev_get_ecore_device(device?device->identifier:NULL, ECORE_DEVICE_CLASS_TOUCH));
+ e->dev = ecore_device_ref(e_input_evdev_ecore_device_get(device?device->identifier:NULL, ECORE_DEVICE_CLASS_TOUCH));
DMDBG("Generate touch move event: device: %d (%d, %d)\n", e->multi.device, e->x, e->y);
#include "e_input_device_intern.h"
#include "e_input_log.h"
#include "e_input_intern.h"
+#include "e_input_evdev_intern.h"
#include "e_comp_screen_intern.h"
#include "e_output_intern.h"
#include "e_utils_intern.h"
{
libinput_device_config_send_events_set_mode(edev->device,
LIBINPUT_CONFIG_SEND_EVENTS_DISABLED);
- _e_input_evdev_device_destroy(edev);
+ e_input_evdev_device_destroy(edev);
}
if (seat->name)
seat->ptr.dx = seat->ptr.ix = x;
seat->ptr.dy = seat->ptr.iy = y;
- _e_input_pointer_motion_post(warp_dev);
+ e_input_evdev_pointer_motion_post(warp_dev);
}
found = EINA_TRUE;
}
{
EINA_LIST_FOREACH(e_input_seat_evdev_list_get(seat), l2, edev)
{
- _device_calibration_set(edev);
+ e_input_evdev_device_calibration_set(edev);
}
}
}
//right now, subclas is only used with keyboard type.
if (!e_input_thread_mode_get())
{
- ecore_dev = e_input_evdev_get_ecore_device(input, ECORE_DEVICE_CLASS_KEYBOARD);
+ ecore_dev = e_input_evdev_ecore_device_get(input, ECORE_DEVICE_CLASS_KEYBOARD);
if (!ecore_dev)
{
ERR("Failed to find input device: %s", input);
}
else
{
- e_dev = e_input_evdev_get_e_device(input, ECORE_DEVICE_CLASS_KEYBOARD);
+ e_dev = e_input_evdev_e_device_get(input, ECORE_DEVICE_CLASS_KEYBOARD);
if (!e_dev)
{
ERR("Failed to find input device: %s", input);
if (!e_input_thread_mode_get())
{
- ecore_dev = e_input_evdev_get_ecore_device(device_path, clas);
+ ecore_dev = e_input_evdev_ecore_device_get(device_path, clas);
if (!ecore_dev)
{
ERR("Failed to find input device: %s", device_path);
}
else
{
- e_dev = e_input_evdev_get_e_device(device_path, clas);
+ e_dev = e_input_evdev_e_device_get(device_path, clas);
if (!e_dev)
{
ERR("Failed to find input device: %s", device_path);
-#include "e_input_intern.h"
+#include "e_input_evdev_intern.h"
#include "e_input_log.h"
#include "e_input_device_intern.h"
#include "e_input_event.h"
#include <ctype.h>
#define G_LIST_GET_DATA(list) ((list) ? (((GList *)(list))->data) : NULL)
+#define E_INPUT_POINTER_AXIS_DISCRETE_STEP 120
+#define E_INPUT_FINGER_SCROLL_THRESHOLD 1
static void _device_modifiers_update(E_Input_Evdev *edev);
static void _device_configured_size_get(E_Input_Evdev *edev, int *x, int *y, int *w, int *h);
static void _device_output_assign(E_Input_Evdev *edev, E_Input_Seat_Capabilities cap);
void
-_device_calibration_set(E_Input_Evdev *edev)
+e_input_evdev_device_calibration_set(E_Input_Evdev *edev)
{
E_Output *output;
int w = 0, h = 0;
libinput_device_config_tap_set_enabled(edev->device, tap);
}
- _device_calibration_set(edev);
+ e_input_evdev_device_calibration_set(edev);
}
static void
}
EINTERN E_Device *
-e_input_evdev_get_e_device(const char *path, Ecore_Device_Class clas)
+e_input_evdev_e_device_get(const char *path, Ecore_Device_Class clas)
{
const GList *dev_list = NULL;
const GList *l;
}
EINTERN Ecore_Device *
-e_input_evdev_get_ecore_device(const char *path, Ecore_Device_Class clas)
+e_input_evdev_ecore_device_get(const char *path, Ecore_Device_Class clas)
{
const Eina_List *dev_list = NULL;
const Eina_List *l;
}
else
{
- edev->ecore_dev = e_input_evdev_get_ecore_device(edev->path, ECORE_DEVICE_CLASS_KEYBOARD);
+ edev->ecore_dev = e_input_evdev_ecore_device_get(edev->path, ECORE_DEVICE_CLASS_KEYBOARD);
ecore_dev = edev->ecore_dev;
}
}
else
{
- edev->e_dev = e_input_evdev_get_e_device(edev->path, ECORE_DEVICE_CLASS_KEYBOARD);
+ edev->e_dev = e_input_evdev_e_device_get(edev->path, ECORE_DEVICE_CLASS_KEYBOARD);
e_dev = edev->e_dev;
}
}
else
{
- edev->ecore_dev = e_input_evdev_get_ecore_device(edev->path, ECORE_DEVICE_CLASS_MOUSE);
+ edev->ecore_dev = e_input_evdev_ecore_device_get(edev->path, ECORE_DEVICE_CLASS_MOUSE);
ecore_dev = edev->ecore_dev;
}
}
void
-_e_input_pointer_motion_post(E_Input_Evdev *edev)
+e_input_evdev_pointer_motion_post(E_Input_Evdev *edev)
{
_device_pointer_motion(edev, NULL);
}
}
else
{
- edev->ecore_dev = e_input_evdev_get_ecore_device(edev->path, ECORE_DEVICE_CLASS_MOUSE);
+ edev->ecore_dev = e_input_evdev_ecore_device_get(edev->path, ECORE_DEVICE_CLASS_MOUSE);
ecore_dev = edev->ecore_dev;
}
}
else
{
- edev->ecore_dev = e_input_evdev_get_ecore_device(edev->path, ECORE_DEVICE_CLASS_MOUSE);
+ edev->ecore_dev = e_input_evdev_ecore_device_get(edev->path, ECORE_DEVICE_CLASS_MOUSE);
ecore_dev = edev->ecore_dev;
}
}
else
{
- edev->ecore_dev = e_input_evdev_get_ecore_device(edev->path, ECORE_DEVICE_CLASS_MOUSE);
+ edev->ecore_dev = e_input_evdev_ecore_device_get(edev->path, ECORE_DEVICE_CLASS_MOUSE);
ecore_dev = edev->ecore_dev;
}
#if LIBINPUT_HAVE_SCROLL_VALUE_V120
static int
-_scroll_value_get(struct libinput_event_pointer *pointer_event, enum libinput_pointer_axis axis, E_Input_Axis_Source source)
+_scroll_value_get(struct libinput_event_pointer *pointer_event, enum libinput_pointer_axis axis, E_Input_Evdev_Axis_Source source)
{
double value = 0.0;
double value_v120 = 0.0;
comp_conf = e_comp_config_get();
switch (source)
{
- case E_INPUT_AXIS_SOURCE_WHEEL:
+ case E_INPUT_EVDEV_AXIS_SOURCE_WHEEL:
value_v120 = libinput_event_pointer_get_scroll_value_v120(pointer_event, axis);
value = libinput_event_pointer_get_scroll_value(pointer_event, axis);
if (comp_conf && comp_conf->input_log_enable)
ret = value_v120 / E_INPUT_POINTER_AXIS_DISCRETE_STEP;
}
break;
- case E_INPUT_AXIS_SOURCE_FINGER:
- case E_INPUT_AXIS_SOURCE_CONTINUOUS:
+ case E_INPUT_EVDEV_AXIS_SOURCE_FINGER:
+ case E_INPUT_EVDEV_AXIS_SOURCE_CONTINUOUS:
value = libinput_event_pointer_get_scroll_value(pointer_event, axis);
if (comp_conf && comp_conf->input_log_enable)
{
}
static void
-_device_handle_axis_v120(struct libinput_device *device, struct libinput_event_pointer *event, E_Input_Axis_Source source)
+_device_handle_axis_v120(struct libinput_device *device, struct libinput_event_pointer *event, E_Input_Evdev_Axis_Source source)
{
E_Input_Evdev *edev;
E_Input_Backend *input;
}
else
{
- edev->ecore_dev = e_input_evdev_get_ecore_device(edev->path, ECORE_DEVICE_CLASS_MOUSE);
+ edev->ecore_dev = e_input_evdev_ecore_device_get(edev->path, ECORE_DEVICE_CLASS_MOUSE);
ecore_dev = edev->ecore_dev;
}
}
else
{
- edev->ecore_dev = e_input_evdev_get_ecore_device(edev->path, ECORE_DEVICE_CLASS_TOUCH);
+ edev->ecore_dev = e_input_evdev_ecore_device_get(edev->path, ECORE_DEVICE_CLASS_TOUCH);
ecore_dev = edev->ecore_dev;
}
}
else
{
- edev->ecore_dev = e_input_evdev_get_ecore_device(edev->path, ECORE_DEVICE_CLASS_TOUCH);
+ edev->ecore_dev = e_input_evdev_ecore_device_get(edev->path, ECORE_DEVICE_CLASS_TOUCH);
ecore_dev = edev->ecore_dev;
}
}
else
{
- edev->ecore_dev = e_input_evdev_get_ecore_device(edev->path, ECORE_DEVICE_CLASS_TOUCH);
+ edev->ecore_dev = e_input_evdev_ecore_device_get(edev->path, ECORE_DEVICE_CLASS_TOUCH);
ecore_dev = edev->ecore_dev;
}
}
else
{
- edev->ecore_dev = e_input_evdev_get_ecore_device(edev->path, ECORE_DEVICE_CLASS_TOUCH);
+ edev->ecore_dev = e_input_evdev_ecore_device_get(edev->path, ECORE_DEVICE_CLASS_TOUCH);
ecore_dev = edev->ecore_dev;
}
}
E_Input_Evdev *
-_e_input_evdev_device_create(E_Input_Seat *seat, struct libinput_device *device)
+e_input_evdev_device_create(E_Input_Seat *seat, struct libinput_device *device)
{
E_Input_Evdev *edev;
E_Input_Backend *b_input;
}
void
-_e_input_evdev_device_destroy(E_Input_Evdev *edev)
+e_input_evdev_device_destroy(E_Input_Evdev *edev)
{
Ecore_Device *dev;
EINA_SAFETY_ON_NULL_RETURN(edev);
free(edev);
}
+EINTERN Eina_List *
+e_input_seat_evdev_list_get(E_Input_Seat *seat)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(seat, NULL);
+ return seat->devices;
+}
+
Eina_Bool
-_e_input_evdev_event_process(struct libinput_event *event)
+e_input_evdev_event_process(struct libinput_event *event)
{
struct libinput_device *device;
Eina_Bool ret = EINA_TRUE;
break;
#if LIBINPUT_HAVE_SCROLL_VALUE_V120
case LIBINPUT_EVENT_POINTER_SCROLL_WHEEL:
- _device_handle_axis_v120(device, libinput_event_get_pointer_event(event), E_INPUT_AXIS_SOURCE_WHEEL);
+ _device_handle_axis_v120(device, libinput_event_get_pointer_event(event), E_INPUT_EVDEV_AXIS_SOURCE_WHEEL);
break;
case LIBINPUT_EVENT_POINTER_SCROLL_FINGER:
- _device_handle_axis_v120(device, libinput_event_get_pointer_event(event), E_INPUT_AXIS_SOURCE_FINGER);
+ _device_handle_axis_v120(device, libinput_event_get_pointer_event(event), E_INPUT_EVDEV_AXIS_SOURCE_FINGER);
break;
case LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS:
- _device_handle_axis_v120(device, libinput_event_get_pointer_event(event), E_INPUT_AXIS_SOURCE_CONTINUOUS);
+ _device_handle_axis_v120(device, libinput_event_get_pointer_event(event), E_INPUT_EVDEV_AXIS_SOURCE_CONTINUOUS);
break;
#endif
case LIBINPUT_EVENT_TOUCH_DOWN:
}
EINTERN int
-e_input_evdev_wheel_click_angle_get(E_Input_Evdev *dev)
+e_input_evdev_mouse_wheel_click_angle_get(E_Input_Evdev *dev)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(dev, -1);
return libinput_device_config_scroll_get_wheel_click_angle(dev->device);
--- /dev/null
+#ifndef E_INPUT_EVDEV_INTERN_H
+#define E_INPUT_EVDEV_INTERN_H
+
+#include "e_intern.h"
+#include "e_input_intern.h"
+
+typedef struct _E_Input_Evdev E_Input_Evdev;
+typedef struct _E_Input_Seat E_Input_Seat;
+typedef struct _E_Input_Coord E_Input_Coord;
+
+typedef enum _E_Input_Evdev_Axis_Source {
+ E_INPUT_EVDEV_AXIS_SOURCE_WHEEL = 1,
+ E_INPUT_EVDEV_AXIS_SOURCE_FINGER,
+ E_INPUT_EVDEV_AXIS_SOURCE_CONTINUOUS,
+} E_Input_Evdev_Axis_Source;
+
+struct _E_Input_Evdev
+{
+ E_Input_Seat *seat;
+ struct libinput_device *device;
+
+ const char *path;
+ Ecore_Device *ecore_dev;
+ Eina_List *ecore_dev_list;
+ E_Device *e_dev;
+ GList *e_dev_list;
+
+ int mt_slot;
+
+ struct
+ {
+ int minx, miny, maxw, maxh;
+ double dx, dy;
+ unsigned int last, prev;
+ uint32_t threshold;
+ Eina_Bool did_double : 1;
+ Eina_Bool did_triple : 1;
+ uint32_t prev_button, last_button;
+ unsigned int pressed_button;
+ } mouse;
+
+ struct
+ {
+ struct xkb_keymap *keymap;
+ struct xkb_state *state;
+ xkb_mod_mask_t ctrl_mask;
+ xkb_mod_mask_t alt_mask;
+ xkb_mod_mask_t shift_mask;
+ xkb_mod_mask_t win_mask;
+ xkb_mod_mask_t scroll_mask;
+ xkb_mod_mask_t num_mask;
+ xkb_mod_mask_t caps_mask;
+ xkb_mod_mask_t altgr_mask;
+ unsigned int modifiers;
+ unsigned int depressed, latched, locked, group;
+
+ Eina_List *pressed_keys;
+ EINA_DEPRECATED GMutex keymap_mutex;
+ EINA_DEPRECATED GMutex state_mutex;
+ } xkb;
+
+ Eina_Hash *key_remap_hash;
+ Eina_Bool key_remap_enabled;
+
+ E_Input_Seat_Capabilities caps;
+
+ struct
+ {
+ struct
+ {
+ int rotation;
+ int x, y;
+ int w, h;
+ } transform;
+
+ E_Input_Coord *coords;
+ unsigned int pressed;
+ atomic_uint raw_pressed;
+ atomic_bool blocked;
+ } touch;
+
+ const char *output_name;
+ Eina_Bool output_configured;
+
+ Eina_Bool disable_acceleration;
+};
+
+struct _E_Input_Seat
+{
+ const char *name;
+ E_Input_Backend *input;
+ E_Input_Device *dev;
+ Eina_List *devices;
+ struct libinput_seat *seat;
+ Ecore_Device *ecore_dev;
+
+ struct
+ {
+ int ix, iy;
+ double dx, dy;
+ Eina_Bool swap;
+ Eina_Bool invert_x;
+ Eina_Bool invert_y;
+ } ptr;
+
+ E_Device *e_dev;
+};
+
+struct _E_Input_Coord
+{
+ int x;
+ int y;
+};
+
+
+EINTERN E_Input_Evdev *e_input_evdev_device_create(E_Input_Seat *seat, struct libinput_device *device);
+EINTERN void e_input_evdev_device_destroy(E_Input_Evdev *evdev);
+
+EINTERN Eina_List *e_input_seat_evdev_list_get(E_Input_Seat *seat);
+
+EINTERN const char *e_input_evdev_name_get(E_Input_Evdev *evdev);
+EINTERN const char *e_input_evdev_sysname_get(E_Input_Evdev *evdev);
+EINTERN Ecore_Device *e_input_evdev_ecore_device_get(const char *path, Ecore_Device_Class clas);
+EINTERN E_Device *e_input_evdev_e_device_get(const char *path, Ecore_Device_Class clas);
+EINTERN void e_input_evdev_axis_size_set(E_Input_Evdev *edev, int w, int h);
+
+EINTERN void e_input_evdev_pointer_motion_post(E_Input_Evdev *edev);
+EINTERN void e_input_evdev_device_calibration_set(E_Input_Evdev *edev);
+EINTERN Eina_Bool e_input_evdev_event_process(struct libinput_event *event);
+
+EINTERN Eina_Bool e_input_evdev_key_remap_enable(E_Input_Evdev *edev, Eina_Bool enable);
+EINTERN Eina_Bool e_input_evdev_key_remap_set(E_Input_Evdev *edev, int *from_keys, int *to_keys, int num);
+
+EINTERN Eina_Bool e_input_evdev_mouse_accel_speed_set(E_Input_Evdev *edev, double speed);
+EINTERN int e_input_evdev_mouse_wheel_click_angle_get(E_Input_Evdev *dev);
+
+EINTERN Eina_Bool e_input_evdev_touch_calibration_set(E_Input_Evdev *edev, float matrix[6]);
+EINTERN unsigned int e_input_evdev_touch_pressed_get(E_Input_Evdev *edev);
+
+EINTERN const char *e_input_evdev_seatname_get(E_Input_Evdev *evdev);
+EINTERN Eina_Bool e_input_evdev_seatname_set(E_Input_Evdev *evdev, const char *seatname);
+
+
+#endif
#include "e_devicemgr_intern.h"
#include "e_input_intern.h"
#include "e_input_log.h"
+#include "e_input_evdev_intern.h"
#include "e_input_device_intern.h"
#include "e_input_event_intern.h"
#include "e_keyrouter_intern.h"
}
/* try to create a new evdev device */
- if (!(edev = _e_input_evdev_device_create(seat, device)))
+ if (!(edev = e_input_evdev_device_create(seat, device)))
{
ERR("Failed to create new evdev device");
ecore_thread_main_loop_end();
edev->seat->devices = eina_list_remove(edev->seat->devices, edev);
/* destroy this evdev */
- _e_input_evdev_device_destroy(edev);
+ e_input_evdev_device_destroy(edev);
ecore_thread_main_loop_end();
}
_input_event_process(struct libinput_event *event)
{
if (_udev_event_process(event)) return;
- if (_e_input_evdev_event_process(event)) return;
+ if (e_input_evdev_event_process(event)) return;
}
void
}
}
-EINTERN Eina_List *
-e_input_seat_evdev_list_get(E_Input_Seat *seat)
-{
- EINA_SAFETY_ON_NULL_RETURN_VAL(seat, NULL);
- return seat->devices;
-}
-
E_API E_Input_Event_Source *
e_input_event_source_get()
{
#include <libinput.h>
-#define E_INPUT_POINTER_AXIS_DISCRETE_STEP 120
-#define E_INPUT_FINGER_SCROLL_THRESHOLD 1
-
typedef struct _E_Input E_Input;
typedef struct _E_Input_Backend E_Input_Backend;
-typedef struct _E_Input_Evdev E_Input_Evdev;
-typedef struct _E_Input_Seat E_Input_Seat;
-typedef struct _E_Input_Coord E_Input_Coord;
typedef void (*e_input_relative_motion_cb)(double dx[2], double dy[2], uint64_t time_us);
typedef void (*e_input_keyboard_grab_key_cb)(uint32_t keycode, uint32_t state, uint32_t timestamp, void *dev);
typedef void (*E_Input_Thread_Safe_Call_Cb)(void *data);
-typedef enum _E_Input_Axis_Source {
- E_INPUT_AXIS_SOURCE_WHEEL = 1,
- E_INPUT_AXIS_SOURCE_FINGER,
- E_INPUT_AXIS_SOURCE_CONTINUOUS,
-} E_Input_Axis_Source;
-
typedef struct {
E_Input_Thread_Safe_Call_Cb safe_call_cb;
unsigned int data_length;
e_input_keyboard_grab_key_cb keyboard_grab_key_handler;
};
-struct _E_Input_Coord
-{
- int x;
- int y;
-};
-
-struct _E_Input_Seat
-{
- const char *name;
- E_Input_Backend *input;
- E_Input_Device *dev;
- Eina_List *devices;
- struct libinput_seat *seat;
- Ecore_Device *ecore_dev;
-
- struct
- {
- int ix, iy;
- double dx, dy;
- Eina_Bool swap;
- Eina_Bool invert_x;
- Eina_Bool invert_y;
- } ptr;
-
- E_Device *e_dev;
-};
-
struct _E_Input_Backend
{
int fd;
int main_to_input_thread_pipe_fd[2];
};
-struct _E_Input_Evdev
-{
- E_Input_Seat *seat;
- struct libinput_device *device;
-
- const char *path;
- Ecore_Device *ecore_dev;
- Eina_List *ecore_dev_list;
- E_Device *e_dev;
- GList *e_dev_list;
-
- int mt_slot;
-
- struct
- {
- int minx, miny, maxw, maxh;
- double dx, dy;
- unsigned int last, prev;
- uint32_t threshold;
- Eina_Bool did_double : 1;
- Eina_Bool did_triple : 1;
- uint32_t prev_button, last_button;
- unsigned int pressed_button;
- } mouse;
-
- struct
- {
- struct xkb_keymap *keymap;
- struct xkb_state *state;
- xkb_mod_mask_t ctrl_mask;
- xkb_mod_mask_t alt_mask;
- xkb_mod_mask_t shift_mask;
- xkb_mod_mask_t win_mask;
- xkb_mod_mask_t scroll_mask;
- xkb_mod_mask_t num_mask;
- xkb_mod_mask_t caps_mask;
- xkb_mod_mask_t altgr_mask;
- unsigned int modifiers;
- unsigned int depressed, latched, locked, group;
-
- Eina_List *pressed_keys;
- EINA_DEPRECATED GMutex keymap_mutex;
- EINA_DEPRECATED GMutex state_mutex;
- } xkb;
-
- Eina_Hash *key_remap_hash;
- Eina_Bool key_remap_enabled;
-
- E_Input_Seat_Capabilities caps;
-
- struct
- {
- struct
- {
- int rotation;
- int x, y;
- int w, h;
- } transform;
-
- E_Input_Coord *coords;
- unsigned int pressed;
- atomic_uint raw_pressed;
- atomic_bool blocked;
- } touch;
-
- const char *output_name;
- Eina_Bool output_configured;
-
- Eina_Bool disable_acceleration;
-};
-
struct _E_Input_Hook
{
EINA_INLIST;
EINTERN Eina_Bool e_input_enable_input(E_Input_Backend *input);
EINTERN void e_input_disable_input(E_Input_Backend *input);
-EINTERN void e_input_evdev_axis_size_set(E_Input_Evdev *edev, int w, int h);
-EINTERN const char *e_input_evdev_sysname_get(E_Input_Evdev *evdev);
-EINTERN Eina_Bool e_input_evdev_key_remap_enable(E_Input_Evdev *edev, Eina_Bool enable);
-EINTERN Eina_Bool e_input_evdev_key_remap_set(E_Input_Evdev *edev, int *from_keys, int *to_keys, int num);
-EINTERN Eina_Bool e_input_evdev_touch_calibration_set(E_Input_Evdev *edev, float matrix[6]);
-EINTERN Eina_Bool e_input_evdev_mouse_accel_speed_set(E_Input_Evdev *edev, double speed);
-EINTERN unsigned int e_input_evdev_touch_pressed_get(E_Input_Evdev *edev);
-EINTERN const char *e_input_evdev_name_get(E_Input_Evdev *evdev);
-EINTERN int e_input_evdev_wheel_click_angle_get(E_Input_Evdev *dev);
-EINTERN Ecore_Device *e_input_evdev_get_ecore_device(const char *path, Ecore_Device_Class clas);
-EINTERN E_Device *e_input_evdev_get_e_device(const char *path, Ecore_Device_Class clas);
-
EINTERN Eina_Bool e_input_relative_motion_handler_set(e_input_relative_motion_cb handler);
EINTERN e_input_relative_motion_cb e_input_relative_motion_handler_get(void);
EINTERN void e_input_touch_max_count_set(unsigned int max_count);
-EINTERN Eina_List *e_input_seat_evdev_list_get(E_Input_Seat *seat);
-
EINTERN void e_input_create_event_source(E_Input_Backend *input);
EINTERN void e_input_flush_keyboard_share_events(void);
EINTERN void e_input_main_thread_id_set(pid_t tid);
EINTERN Eina_Bool e_input_libinput_context_create(E_Input_Backend *input);
EINTERN void _input_events_process(E_Input_Backend *input);
-EINTERN E_Input_Evdev *_e_input_evdev_device_create(E_Input_Seat *seat, struct libinput_device *device);
-
-EINTERN Eina_Bool _e_input_evdev_event_process(struct libinput_event *event);
-EINTERN void _e_input_evdev_device_destroy(E_Input_Evdev *evdev);
-EINTERN const char *e_input_evdev_seatname_get(E_Input_Evdev *evdev);
-EINTERN Eina_Bool e_input_evdev_seatname_set(E_Input_Evdev *evdev, const char *seatname);
-EINTERN void _device_calibration_set(E_Input_Evdev *edev);
-EINTERN void _e_input_pointer_motion_post(E_Input_Evdev *edev);
-
EINTERN void _e_input_hook_call(E_Input_Hook_Point hookpoint, const char *device_name);
EINTERN void _e_input_key_event_list_add(Ecore_Event_Key *key);