3 typedef enum _E_Devicemgr_Intercept_Hook_Point
5 E_DEVICEMGR_INTERCEPT_HOOK_DETENT,
6 E_DEVICEMGR_INTERCEPT_HOOK_LAST
7 } E_Devicemgr_Intercept_Hook_Point;
9 typedef Eina_Bool (*E_Devicemgr_Intercept_Hook_Cb) (void *data, int point, void *event);
10 typedef struct _E_Devicemgr_Intercept_Hook E_Devicemgr_Intercept_Hook;
12 typedef struct _E_Devicemgr_Conf_Edd E_Devicemgr_Conf_Edd;
13 typedef struct _E_Devicemgr_Config_Data E_Devicemgr_Config_Data;
14 typedef struct _E_Devicemgr_Wl_Data E_Devicemgr_Wl_Data;
16 typedef struct _E_Devicemgr_Input_Device
20 const char *seat_name;
21 const char *identifier;
22 Ecore_Device_Class clas;
23 Ecore_Device_Subclass subclas;
24 } E_Devicemgr_Input_Device;
26 typedef struct _E_Devicemgr_Input_Device_Multi
32 } E_Devicemgr_Input_Device_Multi;
34 typedef struct _E_Devicemgr E_Devicemgr;
36 typedef void (*E_Devicemgr_Block_Expire_Cb) (void *data);
42 extern E_API E_Devicemgr *e_devicemgr;
46 E_Devicemgr_Config_Data *dconfig;
47 E_Devicemgr_Wl_Data *wl_data;
51 Eina_List *device_list;
52 E_Devicemgr_Input_Device *last_device_ptr;
53 E_Devicemgr_Input_Device *last_device_touch;
54 E_Devicemgr_Input_Device *last_device_kbd;
55 E_Devicemgr_Input_Device_Multi *multi;
60 struct wl_client *client;
61 Ecore_Timer *duration_timer;
63 unsigned int internal_devtype;
64 Ecore_Timer *internal_duration_timer;
65 E_Devicemgr_Block_Expire_Cb internal_cb_func;
66 void *internal_cb_data;
69 int virtual_key_device_fd;
70 int virtual_mouse_device_fd;
76 Eina_List *touch_list;
78 Eina_List *resource_list;
86 Eina_List *watched_clients;
89 GRecMutex device_list_mutex;
93 struct wl_client *client;
99 struct _E_Devicemgr_Intercept_Hook
102 E_Devicemgr_Intercept_Hook_Point hookpoint;
103 E_Devicemgr_Intercept_Hook_Cb func;
105 unsigned char delete_me : 1;
108 EINTERN E_Devicemgr_Intercept_Hook *e_devicemgr_intercept_hook_add(E_Devicemgr_Intercept_Hook_Point hookpoint, E_Devicemgr_Intercept_Hook_Cb func, const void *data);
109 EINTERN void e_devicemgr_intercept_hook_del(E_Devicemgr_Intercept_Hook *ch);
110 EINTERN Eina_Bool e_devicemgr_intercept_hook_call(E_Devicemgr_Intercept_Hook_Point hookpoint, void *event);
111 E_API Eina_Bool e_devicemgr_is_blocking_event(Ecore_Device_Class clas);
112 EINTERN int e_devicemgr_inputgen_key_event_add(const char *key, Eina_Bool pressed, char *identifier);
114 EINTERN int e_devicemgr_init(void);
115 EINTERN int e_devicemgr_shutdown(void);
117 EINTERN Eina_Bool e_devicemgr_detent_is_detent(const char *name);
119 EINTERN Eina_Bool e_devicemgr_block_internal_add(Ecore_Device_Class clas, Eina_Bool all_clas, uint32_t duration, E_Devicemgr_Block_Expire_Cb cb_func, void *cb_data);
120 EINTERN Eina_Bool e_devicemgr_block_internal_remove(E_Devicemgr_Block_Expire_Cb cb_func, void *cb_data);
122 E_API Eina_Bool e_devicemgr_block_reset(void);
124 EINTERN Eina_Bool e_devicemgr_keyboard_grab_subtype_is_grabbed(Ecore_Device_Subclass subclas);