1
0
Fork 0
forked from len0rd/rockbox
foxbox/apps/plugins/mpegplayer
Solomon Peachy d05c59f35b internals: Support characters beyond the first unicode plane (WIP)
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
2025-08-20 16:08:43 -04:00
..
libmpeg2 arm: Use -masm-syntax-unified when compiling with gcc8 or newer 2024-05-08 21:45:42 -04:00
alloc.c Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
audio_thread.c fix warnings on some systems / format specifier mismatch 2024-12-07 11:07:44 -05:00
disk_buf.c fix warnings on some systems / format specifier mismatch 2024-12-07 11:07:44 -05:00
disk_buf.h Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
mpeg_alloc.h Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
mpeg_misc.c Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
mpeg_misc.h Fix unified syntax in ARM inline assembly 2023-03-23 18:16:33 +00:00
mpeg_parser.c fix warnings on some systems / format specifier mismatch 2024-12-07 11:07:44 -05:00
mpeg_settings.c New port: Anbernic RG Nano 2025-07-29 21:01:53 -04:00
mpeg_settings.h Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
mpeg_stream.h Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
mpegplayer.c internals: Support characters beyond the first unicode plane (WIP) 2025-08-20 16:08:43 -04:00
mpegplayer.h Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
mpegplayer.make Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
parser.h Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
pcm_output.c Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
pcm_output.h Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
SOURCES Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
stream_mgr.c misc: Properly annotate some intentional case fallthroughs 2025-04-22 20:54:37 -04:00
stream_mgr.h Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
stream_thread.h Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
video_out.h Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
video_out_rockbox.c Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00
video_thread.c Revert "RFC: Get rid of mpegplayer plugin" 2022-10-13 11:08:11 -04:00