diff options
author | wm4 <wm4@mplayer2.org> | 2012-01-13 07:38:40 +0100 |
---|---|---|
committer | Uoti Urpala <uau@mplayer2.org> | 2012-03-25 22:30:37 +0300 |
commit | 166a7de4cf94a78c34040b47a929a72d12f2945f (patch) | |
tree | 3b326a949d7add071c3dc92a1ab1eb5d86e194da /mp_fifo.c | |
parent | 3e6e80a32c04e38c7d2fa77e4bcf1401e792dc7a (diff) | |
download | mpv-166a7de4cf94a78c34040b47a929a72d12f2945f.tar.bz2 mpv-166a7de4cf94a78c34040b47a929a72d12f2945f.tar.xz |
input: allow unicode keys and reassign internal key codes
This moves all key codes above the highest valid unicode code point
(which is 0x10FFFF). All key codes below MP_KEY_BASE now directly map
to unicode (KEY_ENTER is 13, carriage return). Configuration files
(input.conf) can contain unicode characters in UTF-8 to map non-ASCII
characters/keys.
This shouldn't change anything user visible, except that "direct key
codes" (as used in input.conf) will change their meaning.
Parts of the bstr functions taken from libavutil's GET_UTF8 and
slightly modified.
Diffstat (limited to 'mp_fifo.c')
-rw-r--r-- | mp_fifo.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -67,3 +67,13 @@ void mplayer_put_key(struct mp_fifo *fifo, int code) fifo->last_down_time = now; } } + +void mplayer_put_key_utf8(struct mp_fifo *fifo, int mods, struct bstr t) +{ + while (t.len) { + int code = bstr_decode_utf8(t, &t); + if (code < 0) + break; + mplayer_put_key(fifo, code | mods); + } +} |