return EINA_TRUE;
}
-typedef struct _keycode_map{
- xkb_keysym_t keysym;
- xkb_keycode_t keycode;
-} keycode_map;
-
-static void
-find_keycode(struct xkb_keymap *keymap, xkb_keycode_t key, void *data)
-{
- keycode_map *found_keycodes = (keycode_map *)data;
- xkb_keysym_t keysym = found_keycodes->keysym;
- int nsyms = 0;
- const xkb_keysym_t *syms_out = NULL;
-
- nsyms = xkb_keymap_key_get_syms_by_level(keymap, key, 0, 0, &syms_out);
- if (nsyms && syms_out)
- {
- if (*syms_out == keysym)
- {
- found_keycodes->keycode = key;
- }
- }
-}
-
-static int
-_e_comp_wl_keycode_get_from_keysym(struct xkb_keymap *keymap, xkb_keysym_t keysym)
-{
- keycode_map found_keycodes = {0,};
- found_keycodes.keysym = keysym;
- xkb_keymap_key_for_each(keymap, find_keycode, &found_keycodes);
-
- return found_keycodes.keycode;
-}
-
-static int
-_e_comp_wl_keycode_get_from_string(char * name)
-{
- struct xkb_keymap *keymap = NULL;
- xkb_keysym_t keysym = 0x0;
- int keycode = 0;
-
- keymap = e_comp_wl->xkb.keymap;
- EINA_SAFETY_ON_NULL_GOTO(keymap, finish);
-
- keysym = xkb_keysym_from_name(name, XKB_KEYSYM_NO_FLAGS);
- EINA_SAFETY_ON_FALSE_GOTO(keysym != XKB_KEY_NoSymbol, finish);
-
- keycode = _e_comp_wl_keycode_get_from_keysym(keymap, keysym);
-
- return keycode;
-
-finish:
- return 0;
-}
-
-
EINTERN Eina_Bool
e_comp_wl_key_cancel(E_Client *ec, int keycode, Ecore_Device *dev, uint32_t time)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(e_comp_wl, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(e_comp_wl->xkb.keymap, EINA_FALSE);
- cancel_keycode = _e_comp_wl_keycode_get_from_string("Cancel");
+ cancel_keycode = e_comp_wl_input_keymap_keyname_to_keycode("Cancel");
if (cancel_keycode == XKB_KEYCODE_INVALID)
{
ELOGF("Key", "Failed to send key cancel for %d key, Cancel key is not supported\n", ec, keycode);
e_comp_wl->kbd.repeat_delay);
}
}
+
+typedef struct _keycode_map{
+ xkb_keysym_t keysym;
+ xkb_keycode_t keycode;
+} keycode_map;
+
+static void
+find_keycode(struct xkb_keymap *keymap, xkb_keycode_t key, void *data)
+{
+ keycode_map *found_keycodes = (keycode_map *)data;
+ xkb_keysym_t keysym = found_keycodes->keysym;
+ int nsyms = 0;
+ const xkb_keysym_t *syms_out = NULL;
+
+ nsyms = xkb_keymap_key_get_syms_by_level(keymap, key, 0, 0, &syms_out);
+ if (nsyms && syms_out)
+ {
+ if (*syms_out == keysym)
+ {
+ found_keycodes->keycode = key;
+ }
+ }
+}
+
+int
+_e_comp_wl_input_keymap_keysym_to_keycode(struct xkb_keymap *keymap, xkb_keysym_t keysym)
+{
+ keycode_map found_keycodes = {0,};
+ found_keycodes.keysym = keysym;
+ xkb_keymap_key_for_each(keymap, find_keycode, &found_keycodes);
+
+ return found_keycodes.keycode;
+}
+
+E_API int
+e_comp_wl_input_keymap_keyname_to_keycode(const char * name)
+{
+ struct xkb_keymap *keymap = NULL;
+ xkb_keysym_t keysym = 0x0;
+ int keycode = 0;
+
+ EINA_SAFETY_ON_NULL_RETURN_VAL(name, 0);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(e_comp_wl, 0);
+
+ keymap = e_comp_wl->xkb.keymap;
+ EINA_SAFETY_ON_NULL_GOTO(keymap, finish);
+
+ keysym = xkb_keysym_from_name(name, XKB_KEYSYM_NO_FLAGS);
+ EINA_SAFETY_ON_FALSE_GOTO(keysym != XKB_KEY_NoSymbol, finish);
+
+ keycode = _e_comp_wl_input_keymap_keysym_to_keycode(keymap, keysym);
+
+ return keycode;
+
+finish:
+ return 0;
+}
+
+E_API char *
+e_comp_wl_input_keymap_keycode_to_keyname(int keycode)
+{
+ struct xkb_state *state;
+ xkb_keysym_t sym = XKB_KEY_NoSymbol;
+ char name[256] = {0, };
+
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(8 <= keycode, NULL);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(e_comp_wl, NULL);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(e_comp_wl->xkb.state, NULL);
+
+ state = e_comp_wl->xkb.state;
+ sym = xkb_state_key_get_one_sym(state, keycode);
+ xkb_keysym_get_name(sym, name, sizeof(name));
+
+ return strdup(name);
+}
E_API void e_comp_wl_input_keyboard_repeat_set(int delay, int rate);
+E_API int e_comp_wl_input_keymap_keyname_to_keycode(const char * name);
+E_API char *e_comp_wl_input_keymap_keycode_to_keyname(int keycode);
+
# endif
#endif
return ret;
}
-typedef struct _keycode_map{
- xkb_keysym_t keysym;
- xkb_keycode_t keycode;
-} keycode_map;
-
-static void
-find_keycode(struct xkb_keymap *keymap, xkb_keycode_t key, void *data)
-{
- keycode_map *found_keycodes = (keycode_map *)data;
- xkb_keysym_t keysym = found_keycodes->keysym;
- int nsyms = 0;
- const xkb_keysym_t *syms_out = NULL;
-
- if (found_keycodes->keycode) return;
-
- nsyms = xkb_keymap_key_get_syms_by_level(keymap, key, 0, 0, &syms_out);
- if (nsyms && syms_out)
- {
- if (*syms_out == keysym)
- {
- found_keycodes->keycode = key;
- }
- }
-}
-
-static void
-_e_devicemgr_keycode_from_keysym(struct xkb_keymap *keymap, xkb_keysym_t keysym, xkb_keycode_t *keycode)
-{
- keycode_map found_keycodes = {0,};
- found_keycodes.keysym = keysym;
- xkb_keymap_key_for_each(keymap, find_keycode, &found_keycodes);
-
- *keycode = found_keycodes.keycode;
-}
-
-int
-e_devicemgr_keycode_from_string(const char *keyname)
-{
- xkb_keysym_t keysym = 0x0;
- xkb_keycode_t keycode = 0;
-
- if (!strncmp(keyname, "Keycode-", sizeof("Keycode-")-1))
- {
- keycode = atoi(keyname+8);
- }
- else
- {
- keysym = xkb_keysym_from_name(keyname, XKB_KEYSYM_NO_FLAGS);
- _e_devicemgr_keycode_from_keysym(e_comp_wl->xkb.keymap, keysym, &keycode);
- }
-
- return keycode;
-}
-
Eina_Bool
e_devicemgr_detent_is_detent(const char *name)
{
e = E_NEW(Ecore_Event_Key, 1);
EINA_SAFETY_ON_NULL_RETURN_VAL(e, TIZEN_INPUT_DEVICE_MANAGER_ERROR_NO_SYSTEM_RESOURCES);
- keycode = e_devicemgr_keycode_from_string(key);
+ keycode = e_comp_wl_input_keymap_keyname_to_keycode(key);
if (keycode <= 0) goto finish;
e->keyname = eina_stringshare_add(key);
void e_devicemgr_destroy_virtual_device(int uinp_fd);
Eina_Bool e_devicemgr_strcmp(const char *dst, const char *src);
-int e_devicemgr_keycode_from_string(const char *keyname);
int e_devicemgr_input_pointer_warp(struct wl_client *client, struct wl_resource *resource, struct wl_resource *surface, wl_fixed_t x, wl_fixed_t y);
void e_devicemgr_wl_detent_send_event(int detent);
Eina_Bool e_devicemgr_input_init(void);
{
if (!krt->HardKeys[i].keycode) continue;
- keyname = e_keyrouter_util_keyname_get_from_keycode(i);
+ keyname = e_comp_wl_input_keymap_keycode_to_keyname(i);
fprintf(log_fl, " Key [%3d], Keyname: %s\n", i, keyname);
!krt->HardKeys[i].shared_ptr)
continue;
- keyname = e_keyrouter_util_keyname_get_from_keycode(i);
+ keyname = e_comp_wl_input_keymap_keycode_to_keyname(i);
fprintf(log_fl, " [ Keycode: %d, Keyname: %s ]\n", i, keyname);
key_data = E_NEW(E_Keyrouter_Event_Data, 1);
EINA_SAFETY_ON_NULL_GOTO(key_data, failed);
- keycode = e_keyrouter_util_keycode_get_from_string(keyname);
+ keycode = e_comp_wl_input_keymap_keyname_to_keycode(keyname);
EINA_SAFETY_ON_FALSE_GOTO((0 < keycode && keycode <= krt->max_tizen_hwkeys), failed);
ev_key->key = (char *)eina_stringshare_add(keyname);
key_cancel = _e_keyrouter_key_create("Cancel");
EINA_SAFETY_ON_NULL_RETURN(key_cancel);
- keyname = e_keyrouter_util_keyname_get_from_keycode(keycode);
+ keyname = e_comp_wl_input_keymap_keycode_to_keyname(keycode);
key_release = _e_keyrouter_key_create(keyname);
EINA_SAFETY_ON_NULL_GOTO(key_release, failed);
return NULL;
}
-typedef struct _keycode_map{
- xkb_keysym_t keysym;
- xkb_keycode_t keycode;
-}keycode_map;
-
-static void
-find_keycode(struct xkb_keymap *keymap, xkb_keycode_t key, void *data)
-{
- keycode_map *found_keycodes = (keycode_map *)data;
- xkb_keysym_t keysym = found_keycodes->keysym;
- int nsyms = 0;
- const xkb_keysym_t *syms_out = NULL;
-
- nsyms = xkb_keymap_key_get_syms_by_level(keymap, key, 0, 0, &syms_out);
- if (nsyms && syms_out)
- {
- if (*syms_out == keysym)
- {
- found_keycodes->keycode = key;
- }
- }
-}
-
-int
-_e_keyrouter_keycode_get_from_keysym(struct xkb_keymap *keymap, xkb_keysym_t keysym)
-{
- keycode_map found_keycodes = {0,};
- found_keycodes.keysym = keysym;
- xkb_keymap_key_for_each(keymap, find_keycode, &found_keycodes);
-
- return found_keycodes.keycode;
-}
-
-int
-e_keyrouter_util_keycode_get_from_string(char * name)
-{
- struct xkb_keymap *keymap = NULL;
- xkb_keysym_t keysym = 0x0;
- int keycode = 0;
-
- keymap = e_comp_wl->xkb.keymap;
- EINA_SAFETY_ON_NULL_GOTO(keymap, finish);
-
- keysym = xkb_keysym_from_name(name, XKB_KEYSYM_NO_FLAGS);
- EINA_SAFETY_ON_FALSE_GOTO(keysym != XKB_KEY_NoSymbol, finish);
-
- keycode = _e_keyrouter_keycode_get_from_keysym(keymap, keysym);
-
- KLDBG("request name: %s, return value: %d", name, keycode);
-
- return keycode;
-
-finish:
- return 0;
-}
-
-char *
-e_keyrouter_util_keyname_get_from_keycode(int keycode)
-{
- struct xkb_state *state;
- xkb_keysym_t sym = XKB_KEY_NoSymbol;
- char name[256] = {0, };
-
- EINA_SAFETY_ON_NULL_RETURN_VAL(e_comp_wl, NULL);
- EINA_SAFETY_ON_NULL_RETURN_VAL(e_comp_wl->xkb.state, NULL);
-
- state = e_comp_wl->xkb.state;
- sym = xkb_state_key_get_one_sym(state, keycode);
- xkb_keysym_get_name(sym, name, sizeof(name));
-
- return strdup(name);
-}
-
char *
e_keyrouter_util_process_name_get_from_cmd(char *cmd)
{
struct wl_resource *e_keyrouter_util_get_surface_from_eclient(E_Client *client);
int e_keyrouter_util_get_pid(struct wl_client *client, struct wl_resource *surface);
char *e_keyrouter_util_cmd_get_from_pid(int pid);
-int e_keyrouter_util_keycode_get_from_string(char *name);
-char *e_keyrouter_util_keyname_get_from_keycode(int keycode);
char *e_keyrouter_util_process_name_get_from_cmd(char *cmd);
const char *e_keyrouter_mode_to_string(uint32_t mode);