mirror of
https://github.com/mpv-player/mpv
synced 2025-02-25 17:58:27 +00:00
input: use bstr_xappend()
To get rid of mp_append_utf8_buffer().
This commit is contained in:
parent
963a3d2c64
commit
b0efd3f36a
@ -596,7 +596,7 @@ static void interpret_key(struct input_ctx *ictx, int code, double scale)
|
||||
|
||||
if (mp_msg_test(ictx->log, MSGL_DEBUG)) {
|
||||
int noflags = code & ~(MP_KEY_STATE_DOWN | MP_KEY_STATE_UP);
|
||||
char *key = mp_input_get_key_name(noflags, NULL);
|
||||
char *key = mp_input_get_key_name(noflags);
|
||||
MP_DBG(ictx, "key code=%#x '%s'%s%s\n",
|
||||
code, key, (code & MP_KEY_STATE_DOWN) ? " down" : "",
|
||||
(code & MP_KEY_STATE_UP) ? " up" : "");
|
||||
|
@ -251,39 +251,49 @@ found:
|
||||
return -1;
|
||||
}
|
||||
|
||||
char *mp_input_get_key_name(int key, char *ret)
|
||||
static void mp_input_append_key_name(bstr *buf, int key)
|
||||
{
|
||||
for (int i = 0; modifier_names[i].name; i++) {
|
||||
if (modifier_names[i].key & key) {
|
||||
ret = talloc_asprintf_append_buffer(ret, "%s+",
|
||||
modifier_names[i].name);
|
||||
bstr_xappend_asprintf(NULL, buf, "%s+", modifier_names[i].name);
|
||||
key -= modifier_names[i].key;
|
||||
}
|
||||
}
|
||||
for (int i = 0; key_names[i].name != NULL; i++) {
|
||||
if (key_names[i].key == key)
|
||||
return talloc_asprintf_append_buffer(ret, "%s", key_names[i].name);
|
||||
if (key_names[i].key == key) {
|
||||
bstr_xappend_asprintf(NULL, buf, "%s", key_names[i].name);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// printable, and valid unicode range
|
||||
if (key >= 32 && key <= 0x10FFFF)
|
||||
return mp_append_utf8_buffer(ret, key);
|
||||
if (key >= 32 && key <= 0x10FFFF) {
|
||||
mp_append_utf8_bstr(NULL, buf, key);
|
||||
return;
|
||||
}
|
||||
|
||||
// Print the hex key code
|
||||
return talloc_asprintf_append_buffer(ret, "%#-8x", key);
|
||||
bstr_xappend_asprintf(NULL, buf, "%#-8x", key);
|
||||
}
|
||||
|
||||
char *mp_input_get_key_name(int key)
|
||||
{
|
||||
bstr dst = {0};
|
||||
mp_input_append_key_name(&dst, key);
|
||||
return dst.start;
|
||||
}
|
||||
|
||||
char *mp_input_get_key_combo_name(int *keys, int max)
|
||||
{
|
||||
char *ret = talloc_strdup(NULL, "");
|
||||
bstr dst = {0};
|
||||
while (max > 0) {
|
||||
ret = mp_input_get_key_name(*keys, ret);
|
||||
mp_input_append_key_name(&dst, *keys);
|
||||
if (--max && *++keys)
|
||||
ret = talloc_asprintf_append_buffer(ret, "-");
|
||||
bstr_xappend(NULL, &dst, bstr0("-"));
|
||||
else
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
return dst.start;
|
||||
}
|
||||
|
||||
int mp_input_get_keys_from_string(char *name, int max_num_keys,
|
||||
|
@ -256,8 +256,8 @@
|
||||
// Get input key from its name.
|
||||
int mp_input_get_key_from_name(const char *name);
|
||||
|
||||
// Append given key by name to ret, return ret.
|
||||
char *mp_input_get_key_name(int key, char *ret);
|
||||
// Return given key (plus modifiers) as talloc'ed name.
|
||||
char *mp_input_get_key_name(int key);
|
||||
|
||||
// Combination of multiple keys to string.
|
||||
char *mp_input_get_key_combo_name(int *keys, int max);
|
||||
|
Loading…
Reference in New Issue
Block a user