+ qsort (keys, libvlc_actions_count, sizeof (*keys), keycmp);
+
+ keys[libvlc_actions_count].psz_action = NULL;
+ keys[libvlc_actions_count].i_key = 0;
+ keys[libvlc_actions_count].i_action = 0;
+
+ libvlc->p_hotkeys = keys;
+ var_AddCallback (libvlc, "key-pressed", vlc_key_to_action, NULL);
+ return VLC_SUCCESS;
+}
+
+void vlc_DeinitActions (libvlc_int_t *libvlc)
+{
+ if (unlikely(libvlc->p_hotkeys == NULL))
+ return;
+ var_DelCallback (libvlc, "key-pressed", vlc_key_to_action, NULL);
+ free ((void *)libvlc->p_hotkeys);
+}
+
+
+static int actcmp(const void *key, const void *ent)
+{
+ const struct action *act = ent;
+ return strcmp(key, act->name);
+}
+
+vlc_key_t vlc_GetActionId(const char *name)
+{
+ const struct action *act;