Lines Matching refs:dsc
35 static bool _set_keymap(lv_xkb_t * dsc, struct xkb_rule_names names);
51 bool lv_xkb_init(lv_xkb_t * dsc, struct xkb_rule_names names) in lv_xkb_init() argument
61 return _set_keymap(dsc, names); in lv_xkb_init()
64 void lv_xkb_deinit(lv_xkb_t * dsc) in lv_xkb_deinit() argument
66 if(dsc->state) { in lv_xkb_deinit()
67 xkb_state_unref(dsc->state); in lv_xkb_deinit()
68 dsc->state = NULL; in lv_xkb_deinit()
71 if(dsc->keymap) { in lv_xkb_deinit()
72 xkb_keymap_unref(dsc->keymap); in lv_xkb_deinit()
73 dsc->keymap = NULL; in lv_xkb_deinit()
77 uint32_t lv_xkb_process_key(lv_xkb_t * dsc, uint32_t scancode, bool down) in lv_xkb_process_key() argument
84 switch(xkb_state_key_get_one_sym(dsc->state, keycode)) { in lv_xkb_process_key()
137 int size = xkb_state_key_get_utf8(dsc->state, keycode, NULL, 0) + 1; in lv_xkb_process_key()
139 xkb_state_key_get_utf8(dsc->state, keycode, buffer, size); in lv_xkb_process_key()
144 xkb_state_update_key(dsc->state, keycode, down ? XKB_KEY_DOWN : XKB_KEY_UP); in lv_xkb_process_key()
153 static bool _set_keymap(lv_xkb_t * dsc, struct xkb_rule_names names) in _set_keymap() argument
155 if(dsc->keymap) { in _set_keymap()
156 xkb_keymap_unref(dsc->keymap); in _set_keymap()
157 dsc->keymap = NULL; in _set_keymap()
160 dsc->keymap = xkb_keymap_new_from_names(context, &names, XKB_KEYMAP_COMPILE_NO_FLAGS); in _set_keymap()
161 if(!dsc->keymap) { in _set_keymap()
166 if(dsc->state) { in _set_keymap()
167 xkb_state_unref(dsc->state); in _set_keymap()
168 dsc->state = NULL; in _set_keymap()
171 dsc->state = xkb_state_new(dsc->keymap); in _set_keymap()
172 if(!dsc->state) { in _set_keymap()