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
* font manipulation, caching, rendering, and generation
* on-screen keyboard
* FAT filesystem (parsing and generating utf16 LFNs)
* WIN32 simulator platform code
Note that this patch doesn't _enable_ >16bit unicode support; a followup
patch will turn that on for appropriate targets.
Appears to work on:
* hosted linux, native, linux simulator in both 16/32-bit modes.
Needs testing on:
* windows and macos simulator (16bit+32bit)
Change-Id: Iba111b27d2433019b6bff937cf1ebd2c4353a0e8
All toolchain dependencies are circa the GCC 10.5.0 release:
GCC 10.5.0, binutils 2.40, gmp 6.2.1, mpfr 4.1.1, mpc 1.3.1, isl 0.24
Native:
* arm - mini2g, nano2g works
- ipod6g hangs at logo display
* mips - xduoox3 works
* m68k - binaries untested
Hosted:
* arm - samsungypr0 works
* mips - xduoox3ii works
* Android NDK - unchanged at GCC 4.9.4
Change-Id: Ic157255d76030e66325719e64331f553cb7c4363
Clarifies presumably intentional fall-through for
PF_TRACKLIST and fixes unwanted behavior of
PF_TRACKLIST while scrolling, which may have
started playback instead of showing the track list.
(affected keymaps at the moment are only SANSA_FUZE_PAD,
SAMSUNG_YH820_PAD, SAMSUNG_YH92X_PAD, and FIIO_M3K_PAD)
Change-Id: I335dd1b4a2152caed966b73aaa189bcfddc79734
When you're using a "large" screen device, and the message doesn't need
to scroll, parts of the previous mesage are left behind.
Work around this by explicitly clearing the messgage with a loooong
blank string.
Change-Id: I02f7789eb6567e92ecca174c40dabc4b580ac045
musl doesn't unload shared objects when we dlclose() the handle. This means
it also never re-initializes them if we try to re-launch.
This means that global state is persisted across invocations instead of
being wiped. Until we come up with a proper workaround we can apply
globally, have the textviewer clean up the important global state when
it exits.
Change-Id: I43bf38e6e9f0e7d824931740daff6c060537235a
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
All toolchain dependencies are circa the GCC 10.5.0 release:
GCC 10.5.0, binutils 2.40, gmp 6.2.1, mpfr 4.1.1, mpc 1.3.1, isl 0.24
Native:
* arm - mini2g, nano2g works
- ipod6g hangs at logo display
* mips - xduoox3 works
* m68k - binaries untested
Hosted:
* arm - samsungypr0 works
* mips - xduoox3ii works
* Android NDK - unchanged at GCC 4.9.4
Change-Id: Ic9c4ad487927d2ad4247c140f1a7db2740e5f316
Affected a bunch of resolutions, tested with every resolution that had the game and ui simulator support.
Change-Id: I6abe9626f323d1f87f94589299ea6c847682e88b
According to screen driver this device screen is actually 16 bit RGB565 (https://github.com/DrUm78/linux/blob/FunKey_S/drivers/staging/fbtft/fb_st7789v.c#L137).
This also fixes the color banding issues we had before and boomshine doesn't segfault anymore. Also building rockpaint now that's possible.
Change-Id: Icee49c347fbfabc79e0040314ec148cb77ca6325
A bit of context, this device is a clone of the FunKey-S with a different form factor, hardware is mostly identical, the relevant difference is it has audio out (via usb-c, adapter to 3.5mm is included), this is the reason why the FunKey-SDK is needed for bulding.
This port is based on the old SDL 1.2 code because the device doesn't have SDL2 support. Alongside what was supported in the SDL 1.2 builds this port supports battery level, charging status and backlight control.
Change-Id: I7fcb85be62748644b667c0efebabf59d6e9c5ade
In direct mode, the statically allocated Rockbox LCD framebuffer is used and should never be freed. Otherwise, ROCKBOX_VideoQuit takes care of freeing the dynamically allocated hidden buffer, used for scaling.
This fixed hanging of Rockbox when quitting an SDL app.
Change-Id: Ib9cd8c04cc0d2d6ccedaa582a5a85ef211d0273c
- Default to round border in analog mode
- Default to segmented LCD style in digital and binary mode
- Default to date format most fitting for current language
(instead of D-M-Y)
- Don't forcibly set a light background before menu is
displayed or when quitting
- Update manual
Change-Id: Ifb6a41bb99701ae8f8cbf5fa0db2a3a332085f43
- Use system time format and remove separate setting
- Hide timer until started & eliminate setting for it
- Simplify menu, reorder settings, keep theme enabled
- Make dialog for resetting settings more consistent
with other reset dialogs
Change-Id: I0fd38612b0592cd5a650c8985f377acc70a48eb7
- When loading or saving clock settings,
only show message if an error occurred
- Eliminate error message that was displayed
when clock settings file didn't exist (yet).
Change-Id: I6d9c646d3895dba1f18ef3c2f9e73fa15fbc2c1c
- lap times were not cleared after reset
- fix stuck lap scroll position after reset
- the running counter displayed stuck pixels
depending on the font's character width
Change-Id: I0427bb2257ae8646ae675ae92ae3a5601083c4d1
- Show stats when finished
- Keep stats on screen until Cancel or Menu
button is pressed
- Limiting progress updates to 10fps results
in a big speedup
Change-Id: Iebffaead6e1212306edaa42aad925458d13a5f82
Some of the splashf messages that were converted
to support voicing in commit 39f8685 already had
a voice equivalent that was more appropriate,
since it also voiced parameters, and included
pauses between announcements where necessary.
Change-Id: Ia91a01c82acd6148afb4afadd64b1105802aea36
* Rename LANG_RESET_ASK to LANG_ARE_YOU_SURE,
so that it matches the actual language string
(translations remain valid), and can be repurposed
for generic confirmation prompts, where the
first line says "Are you sure?", and the second
line reiterates the selected action
* Add "Reset Settings" as second line to the prompt
shown before resetting settings, instead of just
asking "Are you sure?"
* Make Shuffle prompt consistent between WPS and
Playlist Viewer, and ask whether user is sure they
want to Shuffle instead of warning them that the
current playlist will be erased, which was a bit
misleading
* Explicitly say "Cancelled" when user answers NO to
erasing the current playlist or to overwriting a file.
Improves consistency with other prompts that are
displayed for potentially destructive actions, e.g.
before items are deleted, renamed, saved, or reset.
* PictureFlow: Prompt before rebuilding/updating cache
Change-Id: Id8ae36db7187315eb1a374701307e6ab4dcdbd1d
Lets you launch the main_menu_config plugin
from Settings, so that it remains accessible,
even after all other menu items have been
hidden.
Includes minor changes to the main menu config
plugin, so that it better fits in with the rest
of the settings menus:
* Keep theme enabled
* Autosave
* Add "On" or "Off" suffix to each item, to prevent
confusion when Icon_Config is blank, as is the case
with certain iconsets
* Update current selection after swapping items
* Prefix spoken selection with row number for enhanced
clarity when swapping items
* Change title to LANG_MAIN_MENU
* ACTION_STD_OK to toggle an item's visibility
* ACTION_STD_CONTEXT to access options for reordering
menu items, or for reverting to the default menu
* Ask for confirmation before reverting
Change-Id: I74240b94243224c76e23ef8f3a0559bd8ba28df0