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
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
Battery time estimation works now.
This commit also changes the mksquashfs path to FUNKEY_SDK_PATH.
Change-Id: Ic0aa4c40011b0716f1c36c014377eaccb486e841
Backdrops persist regardless of their location
in the file system since commit d09f978 (FS#12041):
"allows loading of backdrops from anywhere, and
keeps those backdrops after reboot."
Change-Id: I7b8cd2cdbca15b6d9ee7baae20a5d074c9765257
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
It was forked off of wpsbuild.pl but never utilized, and wpsbuild
continued to receive improvements
Change-Id: I38de687e45560398f438830ba920bacceff5cc24
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
Actually power off the handheld with the sleep timer and idle poweroff functions instead of closing rockbox.
This commit also moves setting system volume to max from the launch script to system-sdl.c so it works when running rockbox via instant play.
Change-Id: I174b67c6abef451faa05f4a8f52b8d9eeed98a22
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
...Except for simulators, those always need the cursor
In practice this only affects the RG Nano as it is currently our
only SDL target that lacks a touchscreen.
Change-Id: I292f923848528c233da518b062d9ccd8a03515dd
Instant play is a Funkey OS feature that allows it to relaunch at boot the last program it was running before shutting down, which means that if the handheld is powered off (holding the power button) while rockbox is running the next time it's powered on rockbox will launch at boot.
This commit also handles system brightness/volume in rockbox itself instead of the launch script, so the values are properly reset when powering off the handheld while rockbox is running.
Change-Id: Ie1adbf71069aeed5fbf6670971718a2f718716a3
* Move to a structure instead of pointers to registers
* Autobaud operates per-uart
* When explitily setting uart speed, it applies to all uarts
This allows both UARTs to be enabled and serviced simultaneously,
allowing either accessory port to be used. Note that the last
port to receive something is where subsequent transmits are directed,
and only one set of IAP state is maintained.
To change this, we will need to revamp IAP to support more than
one state machine, and then extend the serial API to allow for both
UARTs to be used independently. Probably not worth the effort.
Change-Id: I0142f0906706fc0c4ee6d6d7aa6b0515e1a749dd
mips gcc will fail to build using the system's
BSD sed. Make sure the Homebrew-installed GNU sed
'sed' simlink is in the PATH. Otherwise, only 'gsed'
can be used to run GNU sed by default.
Change-Id: I0a793c692d9a6de4f326e447281892eb08e4f4cb
The zlib version used by GCC 4.9.4 and binutils 2.26.1
is incompatible with clang 17 from the latest Xcode
command line tools, resulting in fdopen being defined
as NULL.
Remove the define for MacOS, as in zlib 1.31:
4bd9a71f35
Change-Id: Ic7f3108dc4fcaca4ae9a571f2bdb9039be095f36
Can make global variable access more efficient at the price of erroring
out if a variable is declared in more than one place.
Change-Id: I918eacf4a4c8c7827be64f7f2ee04cc6cc2009e0
Previous code returned 0 in targets using only `PERCENTAGE_MEASURE` which means the simulator closed itself (due to low battery) shortly after boot.
Change-Id: I8b66dd085e02a8e565893aad4c8b643233dd3852