forked from len0rd/rockbox
We used 16-bit variables to store the 'character code' everywhere but
this won't let us represent anything beyond U+FFFF.
This patch changes those variables to a custom type that can be 32 or 16
bits depending on the build, and adjusts numerous internal APIs and
datastructures to match. This includes:
* utf8decode() and friends
* on-screen keyboard
* font manipulation, caching, rendering, and generation
* VFAT code parses and generates utf16 dirents
* WIN32 simulator reads and writes utf16 filenames
Note that this patch doesn't _enable_ >16bit unicode support; a followup
patch will turn that on for appropriate targets.
Known bugs:
* Native players in 32-bit unicode mode generate mangled filename
entries if they include UTF16 surrogate codepoints. Root cause
is unclear, and may reside in core dircache code.
Needs testing on:
* windows simulator (16bit+32bit)
Change-Id: I193a00fe2a11a4181ddc82df2d71be52bf00b6e6
|
||
|---|---|---|
| .. | ||
| libmpeg2 | ||
| alloc.c | ||
| audio_thread.c | ||
| disk_buf.c | ||
| disk_buf.h | ||
| mpeg_alloc.h | ||
| mpeg_misc.c | ||
| mpeg_misc.h | ||
| mpeg_parser.c | ||
| mpeg_settings.c | ||
| mpeg_settings.h | ||
| mpeg_stream.h | ||
| mpegplayer.c | ||
| mpegplayer.h | ||
| mpegplayer.make | ||
| parser.h | ||
| pcm_output.c | ||
| pcm_output.h | ||
| SOURCES | ||
| stream_mgr.c | ||
| stream_mgr.h | ||
| stream_thread.h | ||
| video_out.h | ||
| video_out_rockbox.c | ||
| video_thread.c | ||