Lines Matching refs:keymap
59 xkb_keymap_ref(struct xkb_keymap *keymap) in xkb_keymap_ref() argument
61 keymap->refcnt++; in xkb_keymap_ref()
62 return keymap; in xkb_keymap_ref()
66 xkb_keymap_unref(struct xkb_keymap *keymap) in xkb_keymap_unref() argument
68 if (!keymap || --keymap->refcnt > 0) in xkb_keymap_unref()
71 if (keymap->keys) { in xkb_keymap_unref()
73 xkb_keys_foreach(key, keymap) { in xkb_keymap_unref()
86 free(keymap->keys); in xkb_keymap_unref()
88 if (keymap->types) { in xkb_keymap_unref()
89 for (unsigned i = 0; i < keymap->num_types; i++) { in xkb_keymap_unref()
90 free(keymap->types[i].entries); in xkb_keymap_unref()
91 free(keymap->types[i].level_names); in xkb_keymap_unref()
93 free(keymap->types); in xkb_keymap_unref()
95 free(keymap->sym_interprets); in xkb_keymap_unref()
96 free(keymap->key_aliases); in xkb_keymap_unref()
97 free(keymap->group_names); in xkb_keymap_unref()
98 free(keymap->keycodes_section_name); in xkb_keymap_unref()
99 free(keymap->symbols_section_name); in xkb_keymap_unref()
100 free(keymap->types_section_name); in xkb_keymap_unref()
101 free(keymap->compat_section_name); in xkb_keymap_unref()
102 xkb_context_unref(keymap->ctx); in xkb_keymap_unref()
103 free(keymap); in xkb_keymap_unref()
124 struct xkb_keymap *keymap; in xkb_keymap_new_from_names() local
140 keymap = xkb_keymap_new(ctx, format, flags); in xkb_keymap_new_from_names()
141 if (!keymap) in xkb_keymap_new_from_names()
150 if (!ops->keymap_new_from_names(keymap, &rmlvo)) { in xkb_keymap_new_from_names()
151 xkb_keymap_unref(keymap); in xkb_keymap_new_from_names()
155 return keymap; in xkb_keymap_new_from_names()
174 struct xkb_keymap *keymap; in xkb_keymap_new_from_buffer() local
193 keymap = xkb_keymap_new(ctx, format, flags); in xkb_keymap_new_from_buffer()
194 if (!keymap) in xkb_keymap_new_from_buffer()
197 if (!ops->keymap_new_from_string(keymap, buffer, length)) { in xkb_keymap_new_from_buffer()
198 xkb_keymap_unref(keymap); in xkb_keymap_new_from_buffer()
202 return keymap; in xkb_keymap_new_from_buffer()
211 struct xkb_keymap *keymap; in xkb_keymap_new_from_file() local
230 keymap = xkb_keymap_new(ctx, format, flags); in xkb_keymap_new_from_file()
231 if (!keymap) in xkb_keymap_new_from_file()
234 if (!ops->keymap_new_from_file(keymap, file)) { in xkb_keymap_new_from_file()
235 xkb_keymap_unref(keymap); in xkb_keymap_new_from_file()
239 return keymap; in xkb_keymap_new_from_file()
243 xkb_keymap_get_as_string(struct xkb_keymap *keymap, in xkb_keymap_get_as_string() argument
249 format = keymap->format; in xkb_keymap_get_as_string()
253 log_err_func(keymap->ctx, "unsupported keymap format: %d\n", format); in xkb_keymap_get_as_string()
257 return ops->keymap_get_as_string(keymap); in xkb_keymap_get_as_string()
264 xkb_keymap_num_mods(struct xkb_keymap *keymap) in xkb_keymap_num_mods() argument
266 return keymap->mods.num_mods; in xkb_keymap_num_mods()
273 xkb_keymap_mod_get_name(struct xkb_keymap *keymap, xkb_mod_index_t idx) in xkb_keymap_mod_get_name() argument
275 if (idx >= keymap->mods.num_mods) in xkb_keymap_mod_get_name()
278 return xkb_atom_text(keymap->ctx, keymap->mods.mods[idx].name); in xkb_keymap_mod_get_name()
285 xkb_keymap_mod_get_index(struct xkb_keymap *keymap, const char *name) in xkb_keymap_mod_get_index() argument
289 atom = xkb_atom_lookup(keymap->ctx, name); in xkb_keymap_mod_get_index()
293 return XkbModNameToIndex(&keymap->mods, atom, MOD_BOTH); in xkb_keymap_mod_get_index()
300 xkb_keymap_num_layouts(struct xkb_keymap *keymap) in xkb_keymap_num_layouts() argument
302 return keymap->num_groups; in xkb_keymap_num_layouts()
309 xkb_keymap_layout_get_name(struct xkb_keymap *keymap, xkb_layout_index_t idx) in xkb_keymap_layout_get_name() argument
311 if (idx >= keymap->num_group_names) in xkb_keymap_layout_get_name()
314 return xkb_atom_text(keymap->ctx, keymap->group_names[idx]); in xkb_keymap_layout_get_name()
321 xkb_keymap_layout_get_index(struct xkb_keymap *keymap, const char *name) in xkb_keymap_layout_get_index() argument
323 xkb_atom_t atom = xkb_atom_lookup(keymap->ctx, name); in xkb_keymap_layout_get_index()
329 for (i = 0; i < keymap->num_group_names; i++) in xkb_keymap_layout_get_index()
330 if (keymap->group_names[i] == atom) in xkb_keymap_layout_get_index()
340 xkb_keymap_num_layouts_for_key(struct xkb_keymap *keymap, xkb_keycode_t kc) in xkb_keymap_num_layouts_for_key() argument
342 const struct xkb_key *key = XkbKey(keymap, kc); in xkb_keymap_num_layouts_for_key()
354 xkb_keymap_num_levels_for_key(struct xkb_keymap *keymap, xkb_keycode_t kc, in xkb_keymap_num_levels_for_key() argument
357 const struct xkb_key *key = XkbKey(keymap, kc); in xkb_keymap_num_levels_for_key()
375 xkb_keymap_num_leds(struct xkb_keymap *keymap) in xkb_keymap_num_leds() argument
377 return keymap->num_leds; in xkb_keymap_num_leds()
384 xkb_keymap_led_get_name(struct xkb_keymap *keymap, xkb_led_index_t idx) in xkb_keymap_led_get_name() argument
386 if (idx >= keymap->num_leds) in xkb_keymap_led_get_name()
389 return xkb_atom_text(keymap->ctx, keymap->leds[idx].name); in xkb_keymap_led_get_name()
396 xkb_keymap_led_get_index(struct xkb_keymap *keymap, const char *name) in xkb_keymap_led_get_index() argument
398 xkb_atom_t atom = xkb_atom_lookup(keymap->ctx, name); in xkb_keymap_led_get_index()
405 xkb_leds_enumerate(i, led, keymap) in xkb_keymap_led_get_index()
413 xkb_keymap_key_get_mods_for_level(struct xkb_keymap *keymap, in xkb_keymap_key_get_mods_for_level() argument
420 const struct xkb_key *key = XkbKey(keymap, kc); in xkb_keymap_key_get_mods_for_level()
476 xkb_keymap_key_get_syms_by_level(struct xkb_keymap *keymap, in xkb_keymap_key_get_syms_by_level() argument
482 const struct xkb_key *key = XkbKey(keymap, kc); in xkb_keymap_key_get_syms_by_level()
514 xkb_keymap_min_keycode(struct xkb_keymap *keymap) in xkb_keymap_min_keycode() argument
516 return keymap->min_key_code; in xkb_keymap_min_keycode()
520 xkb_keymap_max_keycode(struct xkb_keymap *keymap) in xkb_keymap_max_keycode() argument
522 return keymap->max_key_code; in xkb_keymap_max_keycode()
526 xkb_keymap_key_for_each(struct xkb_keymap *keymap, xkb_keymap_key_iter_t iter, in xkb_keymap_key_for_each() argument
531 xkb_keys_foreach(key, keymap) in xkb_keymap_key_for_each()
532 iter(keymap, key->keycode, data); in xkb_keymap_key_for_each()
536 xkb_keymap_key_get_name(struct xkb_keymap *keymap, xkb_keycode_t kc) in xkb_keymap_key_get_name() argument
538 const struct xkb_key *key = XkbKey(keymap, kc); in xkb_keymap_key_get_name()
543 return xkb_atom_text(keymap->ctx, key->name); in xkb_keymap_key_get_name()
547 xkb_keymap_key_by_name(struct xkb_keymap *keymap, const char *name) in xkb_keymap_key_by_name() argument
552 atom = xkb_atom_lookup(keymap->ctx, name); in xkb_keymap_key_by_name()
554 xkb_atom_t ratom = XkbResolveKeyAlias(keymap, atom); in xkb_keymap_key_by_name()
561 xkb_keys_foreach(key, keymap) { in xkb_keymap_key_by_name()
573 xkb_keymap_key_repeats(struct xkb_keymap *keymap, xkb_keycode_t kc) in xkb_keymap_key_repeats() argument
575 const struct xkb_key *key = XkbKey(keymap, kc); in xkb_keymap_key_repeats()