TAG_MAXLEN is 2* MAX_PATH, so this means we don't reject paths
that we could never actually open on the device.
Change-Id: I64363758163c0a6a5f54ebb1c9b455f3cb5b6e56
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
iap_reset_state() and iap_getc() are now passed the logical IAP port
(0 is dock/only connector, 1 is headphone connector)
Change-Id: I97421146a8cab032b90c9b4eb55b50aa00d73312
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
When a file is deleted from the database, the first character of that entry
is changed to \0. However the entry's length is not updated,
because the entry is still using space in the index.
When checking for deleted files, we were only keying on "length == 0"
instead of also checking to see if the entry itself starts with \0.
Change-Id: Ic00a0b29c3857c597ee5ff6ec01a5f4fd9633447
Although this breaks compatibility with playlist control
file versions 3-5, i.e. control files generated by any RB
build between Jan 29 2023 (commit 25bd3bc) and Oct 26 2024
(commit 7592d2c), compatibility with v2 of the control file
that was in use from 2003 to 2023 is maintained.
Change-Id: I7fd3394e31131bb0563e41d921bcaf940dd999bc
Cleaned up manual changes, and for some reason i forgot to add ACTION_WPS_ABRESET
mappings before so here it is, needed for the manual wps section.
Change-Id: If7ab8b146e84f91bb51a3ed03fb872ef3bab4d1f
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
This feature allow easily to start playing all albums from an artist by following the albums tracks orders, just like the Stock OS does on the iPods when you try to listen to all songs from an artist.
It is just a new opportunity, I did not touch the former "All tracks" button which sorts everything by title automatically since it is also very useful (and stock OS don't have this one, and sorting Alphabetically is very useful to listen to all versions of one track from an artist view).
Change-Id: Icf2a29bffe49c4e72f9c81d9727310b84c1150e4
This reverts commit 9d92d161d8.
Reason for revert: going to end up changing this might as well just revert
Change-Id: I914f61a5e79f80ff1bf40c06253c85dba25cc305
if playername.txt is modified its now splashed on device start-up
should be less confusing than having it in the WPS theme I hope..
Change-Id: Ifcec491f75a0c977a98d26292509f4ca62d79dac
Normally we can't browse into a directory that doesn't exist; hwoever
the theme menu lets us directly browse (eg) fonts, themes, etc. If the
target directory is not present (due to a broken installation) we
actually crash!
So, um, check and bail gracefully.
Should fix FS#13636
Change-Id: Idb28c55cf0ce3954114d056725f9992ceaf1db20
Since even Shuffle and Repeat are now immediately applied
from the Quickscreen, I suppose it makes sense to do the
same for the album art setting as the remaining holdout.
Change-Id: Ib1b56c31f28d8197e001901296d9897a23134564
Adjusting certain settings from the Quickscreen causes a
GUI_EVENT_NEED_UI_UPDATE event to be sent. For example:
Changing the Repeat or Shuffle setting while music is playing
or paused (which results in audio being flushed and tracks
being reloaded immediately since commit 1c80f53)
This creates an issue with themes such as Terminal(Two),
FreshOS, or Themify, which appear to have viewports that
overlap with the UI viewport, thereby wiping out the
Quickscreen viewports.
We now redraw the Quickscreen when a full SBS update is
requested, similar to how it is done by lists. You'll still
see the viewport flash in case of misbehaved themes, so,
ideally, these themes would receive an update by their authors,
removing any viewports that overlap the UI viewport.
Change-Id: I7affbb70fc2e72fd6e1418196559204aec125e12
- 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