1 #ifndef DS_TIZEN_KEYROUTER_H
2 #define DS_TIZEN_KEYROUTER_H
5 #include <wayland-server.h>
6 #include <tizen-extension-server-protocol.h>
8 #define KEYROUTER_MAX_KEYS 512
10 struct ds_tizen_keyrouter_key_info
16 struct ds_tizen_keyrouter_grabbed
22 struct wl_list or_excl;
24 struct wl_list shared;
27 struct wl_list pressed;
30 struct ds_tizen_keyrouter_grab
32 struct ds_tizen_keyrouter_grabbed *hard_keys;
38 struct ds_tizen_keyrouter_key_options
44 struct ds_tizen_keyrouter
46 struct wl_global *global;
48 struct wl_list clients;
50 struct wl_listener display_destroy;
53 struct wl_signal destroy;
56 struct ds_tizen_keyrouter_key_options *opts;
58 struct ds_tizen_keyrouter_grab *keyrouter_grab;
61 struct ds_tizen_keyrouter_client
63 struct ds_tizen_keyrouter *keyrouter;
65 struct wl_resource *resource;
69 struct wl_list link; // ds_tizen_keyrouter::clients
72 struct ds_tizen_grab_data
79 struct ds_tizen_ungrab_data
85 struct ds_tizen_keyrouter_grab *
86 keyrouter_grab_create(void);
88 keyrouter_grab_destroy(struct ds_tizen_keyrouter_grab *keyrouter_grab);
90 keyrouter_grab_grab_key(struct ds_tizen_keyrouter_grab *keyrouter_grab,
91 int type, int keycode, void *data);
93 keyrouter_grab_ungrab_key(struct ds_tizen_keyrouter_grab *keyrouter_grab,
94 int type, int keycode, void *data);
96 keyrouter_grab_key_process(struct ds_tizen_keyrouter_grab *keyrouter_grab,
97 int keycode, int pressed, struct wl_list *delivery_list);
99 keyrouter_grab_set_focus_client(struct ds_tizen_keyrouter_grab *keyrouter_grab,
102 keyrouter_grab_set_top_client(struct ds_tizen_keyrouter_grab *keyrouter_grab,
105 keyrouter_grab_check_grabbed_key(struct ds_tizen_keyrouter_grab *keyrouter_grab,