Commit graph

39206 commits

Author SHA1 Message Date
Solomon Peachy
39497d1c74 build: Silence a pile of set-but-not-used warnings in codecs
GCC16 is stricter about reporting these, and while we can rely on
the compiler to optimize away dead stores, we're better off eliminating
them from the source code.

Change-Id: I14570a986811a77ca656c60d792593ff8c458571
2026-05-17 16:39:06 -04:00
Christian Soffke
8abc859c32 fix regression in cae4336
Change-Id: I026fe919401bbe13cef161a6eb6ce44e5fbbbb6f
2026-05-17 14:49:46 +02:00
Solomon Peachy
cae433608f build: Silence a pile of set-but-not-used warnings with GCC16 in apps/
The compiler is smart enough to optimize away dead stores but let's
just get rid of them in the first place

Change-Id: I5c85d7c05ef03b084205356a21248f7b049296b0
2026-05-17 08:03:44 -04:00
mojyack
2c0381a34e plugins: mpegplayer: libmpeg2: idct_armv6.S: use explicit register pair for ldrd
Change-Id: I65c7516f500cfe9f2b4990f769e9d85708f7fc62
2026-05-17 07:36:11 -04:00
mojyack
a446c06b21 recorder: jpeg_idct_arm.S: use explicit register pair for ldrd
Change-Id: Ic76b4ed4d2a3bea16937a5880502f0a57dd4e556
2026-05-17 07:35:00 -04:00
William Wilgus
d8db60b34a [bugfix] splash goes into infinite loop when vp is too small
chris_s reported that a vp width of 1 wpuld cause the trxt reflow to go into an endless loop

check for this and skip displaying the splash
add a warning to the sim for catching unintentional cases of this

Change-Id: I9e1c561f745b5bcf113d0a6cdff57a00cd190fd4
2026-05-16 17:33:20 -04:00
William Wilgus
7c2e84ad2f FS#13898 expand date_time.lua example
os.date(*t) did not return table when *t supplied because
require("strfrtime.lua") was not loaded

Change-Id: I89b02adad633dca0106b571bdb4b10ffb39cbcf6
2026-05-16 15:54:42 -04:00
William Wilgus
17d28b96b6 lua rocklib.c add splash_progress function
Change-Id: I864a301368c3144a7808ecfa9644e679af2ac727
2026-05-16 14:56:51 -04:00
mojyack
b350d6e066 target: arm: s5l8702: crt0.S: use APSR_nzcv instead of r15 in mrc operand
Change-Id: I7e0cf0325407cade9d95d73af6f8dceb92bf3155
2026-05-16 12:02:32 -04:00
mojyack
c4abbdd718 target: arm: mmu-arm.S: use APSR_nzcv instead of r15 in mrc operand
Change-Id: Ie27d323ac497fe8d63cee89d2c0722caa293cd25
2026-05-16 12:02:11 -04:00
mojyack
127428e32d bootloader: ipodnano2g: fix mcr/mrc usage for clang
Change-Id: I0e328c2d0d4243783cbede843a6451c45f5ba914
2026-05-16 12:01:36 -04:00
mojyack
6fc41c7cdf target: arm: s5l8700: fix mcr/mrc usage in crt0.S for lld
Change-Id: I6d25e4759e1d86f8de3047d10f5fcac8030afc6e
2026-05-16 12:00:45 -04:00
William Wilgus
21fe45caad [Bugfix] splash adjust string split logic, tab justify
only split a long word across lines if it is larger than screen width
also consider \0 as a valid place to split so we still run through the space finding loop

make /t left justify the splash window (in RTL langs it right justifies)

Change-Id: Id2955878a178c66cb0a1c644e62f943247666d8b
2026-05-16 11:51:53 -04:00
Solomon Peachy
1beafb9290 FS#13891 - Updated Romanian and Moldavian translations (Mihai Alexandru Vasiliu)
Change-Id: Ida441f2324fad443c89da82a9d4d58fcbb9e2f6f
2026-05-16 07:37:40 -04:00
Solomon Peachy
6ee85ce61a imx233: Increase the memory region reserved for loading firmware
The imx233 bootloader reserves the first 1MB of DRAM for loading the
main firmware, but the recent utf8proc changes means we now exceed that
size on most imx233 targets.  Bump this up to 1.5MB to give us more headroom

Change-Id: I1b8bede85d06d40338ea6e3d9abb4e5da34423be
2026-05-15 11:41:23 -04:00
William Wilgus
b4c308d698 splash, rework word wrap, support some escape characters
Fixes issues with multiple spaces
adds support for \n and multiple \n
adds support for \t (only at start of line)

adds utf8 aware string splitting

locks to max width/height

adds \f to reset min width / height

larger buffer for units with ram > 8mb

make splash buffer static

Needs testing
Change-Id: I46915043719dce0d696c5ab0da3ed92e4755829c
2026-05-15 11:13:12 -04:00
Solomon Peachy
89cb41c322 pdbox: Add a keymap for the ErosQ family, enable it in the build
Change-Id: I9df8d8a8eac161aeaa133e234cc0c2a60b2f3f93
2026-05-15 10:54:08 -04:00
Solomon Peachy
f774de61b6 xworld, pdbox: Fix issues with using strncpy
Change-Id: Iaed18b7c856b7febef443d1e3e5f6b527b32ecae
2026-05-15 10:37:35 -04:00
Solomon Peachy
a977c19338 fix broken bootloader builds, regression from 5951f6e5e9
Change-Id: I0daf76c362c9e50bf6593e3c8f40847a121dd3ea
2026-05-15 10:25:25 -04:00
Skye
5951f6e5e9 libc: move strncpy to core
Change-Id: If005a0305cedbab85905536238d0f799f19213e1
2026-05-15 10:04:06 -04:00
Solomon Peachy
4c60fe95fc Revert "pp5020: ata: do not yield in ata_wait_intrq()"
This reverts commit e13befb925.

Reason for revert:  Significant performance regressions, especially with respect to UI interactivity when the database is in use; see https://forums.rockbox.org/index.php/topic,55703.0.html

Change-Id: I0428711871480b74f7faeecb0536f7ed63f631cc
2026-05-14 14:42:53 -04:00
Skye
7d3f738b3f libc: fix firmware assert.h
Change-Id: Id7cc3e4656519fee908083d3b551c5228d220ef7
2026-05-14 11:54:52 -04:00
William Wilgus
db32a7f07e [bugfix] font_getstringnsize() incorrect count, add font_measurestring()
maxbytes counted final characters not actual bytes

font_measurestring() returns the number of bytes of a string that will
fit in a given width

Change-Id: Id73b763267e399bd558f87872b5e715076f9b7f7
2026-05-14 09:51:58 -04:00
Skye
7ab521cba6 libc: add actual sprintf to sprintf.c
Change-Id: Iba19b587781da3191c7674a6a141c0c4fbf8b344
2026-05-12 10:19:51 -04:00
Skye
25551180ba libc: add basic maximum field width support to sscanf
Change-Id: Iba6d8af32435beccf9a77d801b0eaac91549bc89
2026-05-12 10:16:45 -04:00
Christian Soffke
51abd937d5 playlist viewer: retrieve track name id3 from db
Metadata for formatting the trackname can
be read from the database instead of from
disk. I think this was changed by mistake,
when a single function was added for both
Show Track Info and track name formatting.

Change-Id: I903d36bb513898242505f01562340924bf642a12
2026-05-12 09:38:29 -04:00
Christian Soffke
9bda6389ce quickscreen: fix UI update when USB connected
Regression introduced in commit 7aca1d4.

Quickscreen kept redrawing itself over the USB screen,
because remove_event_ex was only called after returning
from it.

Change-Id: I8a187809781cef46d13ed45392efecb28435a9df
2026-05-11 21:58:13 +02:00
Aidan MacDonald
075d1deac3 pcm_mixer: remove some unused preprocessor symbols
Change-Id: I0c9c96f082cd4bb8313ade9a8d8da7fa2ba087e4
2026-05-11 07:19:50 -04:00
Christian Soffke
bc528c4079 plugins: properties: don't clear UI viewport for dirs
Accidentally made the vp flash in previous commit.

Dir scanning doesn't display a progress bar
and already handles its own drawing

Change-Id: Id0e67d62081dfe4b22e91c775cd80af2e55a4b69
2026-05-09 07:03:58 +02:00
Christian Soffke
325a028af4 plugins: properties: clear UI viewport at startup
Otherwise, with themes that adjust the viewport
for the current activity, the background behind
the progress bar may look glitchy while
scanning items, until the list is displayed

Change-Id: I27a207b37c3209eae9bc61e1fd0862fb5872be57
2026-05-08 17:00:15 +02:00
Christian Soffke
ae871d25a9 gui: skin_engine: reduce updates
Slight optimization of c145d19. Not supposed to result in
any visible difference.

- if UI viewport is drawn for GUI_EVENT_NEED_UI_UPDATE,
  it doesn't need to do a viewport update; skin_render
  already updates the display

- skin_render_deferred shouldn't need to request that
  the skin perform an immediate update

Change-Id: Id03cf89357eaf0d61af1e928c94942d8c4882dba
2026-05-08 15:43:55 +02:00
Christian Soffke
ce403586e0 playlist_viewer: show loading splash for current playlist after delay
Provide UI feedback if playlist can't be displayed in time.

Change-Id: I5faabc2690aaeb6989f342dc284e1e7e38ba1d7d
2026-05-08 04:36:18 +02:00
Christian Soffke
05f1a6605d gui: skin_engine: fix dirty & force_waiting ignoring multiple screens
In part regression introduced in c145d19e85.

force_waiting not taking multiple screens into
account appears to be pre-existing issue.

Change-Id: Iabfc2933470145eb512c8f2763fb350e170cb1fa
2026-05-08 04:36:18 +02:00
Christian Soffke
20194cb606 gui: wps: render SBS and WPS in one batch
For themes that display the SBS on the WPS,
update display only once, instead of separately.

Change-Id: I773207ef2ddbe185eb287505950ba8322624d380
2026-05-07 22:28:55 -04:00
JJ Style
34054eaa42 dart_scorer: scale better on smaller devices
Calculates sizes of strings to position properly on device, and reduce length of some strings so it scales better on smaller devices as it was unusable on a sansa clip zip

Change-Id: Iad16c15cf85cb79fc9a9ee7146aa40c1c741c26d
2026-05-06 13:20:48 -04:00
Christian Soffke
7aca1d46b8 quickscreen: fix possible flickering for GUI_EVENT_NEED_UI_UPDATE
Immediately redraw when skin engine does refresh, so
themes that draw over UI viewport don't cause visible
flickering

Change-Id: I6f314cdfbd1136c710b9fee7526673e2f8b98849
2026-05-06 18:25:11 +02:00
Skye
e37111c3eb erosq: make volume buttons work in quickscreen
Change-Id: If0efdf1cb05bf665815e772bcc7063654e8f21ac
2026-05-06 08:24:16 -04:00
Skye
1d5aa53321 playback: do not try to switch to a sampr the current sink doesn't support
Change-Id: I73c18365cb3010ca45c6d41ae390b8de095c7589
2026-05-06 08:22:30 -04:00
mojyack
d8a4730159 tools: fix reggen is not cleaned
Change-Id: Iacb3f7b2c3104435a3188c9b24eb8f4374ef8b59
2026-05-04 20:33:52 -04:00
mojyack
142e1864ef usb: fix get_max_packet_size is called before endpoints are allocated
retrive the requirements like others rather than callback

Change-Id: I20efce76a418ebd7aa6943f02e53b3f7a8fd2797
2026-05-04 16:46:57 -04:00
mojyack
8873cbb57e usb: designware: support max packet size override
Change-Id: I75d3aca1599ce064c604c96f2b5ed4c041f975b8
2026-05-04 16:45:57 -04:00
Solomon Peachy
d92b42c70f Fix Yellow & Red in 41caf678fe
Change-Id: If111595271289878097c2a8b30bec3f18390a49c
2026-05-04 14:04:26 -04:00
mojyack
41caf678fe usb: allow more flexible endpoint allocation
the capabilities of endpoint of several devices such as dwc2 change during
runtime, so they cannot be determined during driver initialization.
therefore, allocation using ep_specs is inappropriate.

to support these devices, add functions to the driver that determine whether
endpoints are available and make allocation more flexible.

tested with ipodvideo(arc) and erosqnative(designware)

Change-Id: I8005c17f3d763cd17306bf49918e1cd8084bdeff
2026-05-04 13:31:21 -04:00
Christian Soffke
42841d493f gui: inbuilt statusbar: defer viewport update
Don't independently update the statusbar
viewport when rendering the skin

Change-Id: Idb5a983c5b08fe60db7ab239d6dfbc60190768fb
2026-05-04 13:16:16 -04:00
Christian Soffke
c145d19e85 gui: align display updates, reduce UI glitches
Based on commits ce33902 and 8990d52 (without PictureFlow)
from "Rockpod" fork by Nux Li (https://github.com/nuxcodes/rockpod),
with some adjustments.

Addresses flickering when:
- plugin is opened/closed
- activity changes
- theme is toggled
- QuickScreen is opened

In these cases, skin_render will not immediately update the display
anymore, but instead will wait until the UI viewport is ready to be
drawn as well, so we don't produce unnecessary visual glitches.

Change-Id: I8bed8f06221d3e767a32450f199e69d742bc61cd
2026-05-04 13:16:09 -04:00
Christian Soffke
89d24f3bd4 list: fix GUI_EVENT_THEME_CHANGED timing issue
Initialize a list's dirty_tick to last_dirty_tick instead of to the
current tick.

Issue probably only affects the sim:

To force a list to reinitialize using the GUI_EVENT_THEME_CHANGED
event, last_dirty_tick is set to the current tick.

list_is_dirty() checks whether the list viewport needs to be
re-initialized by comparing the list's dirty tick to last_dirty_tick,
and seeing if time has passed.

In some scenarios though, the list's vp may be initialized, become
immediately dirty, and list_is_dirty is called, all in the same tick.

Change-Id: Ia379117a07bbaf545e0a16d35e74888955893441
2026-05-04 13:58:59 +02:00
Vencislav Atanasov
02638c1cb8 s5l87xx: (Re)name the SHA-1 registers
Synced with the s5l8702-sha1 Linux driver in the freemyipod fork

Change-Id: I5243346205f7883f4271d4b272936dd125adb496
2026-05-04 07:16:29 -04:00
mojyack
bbdada7690 usb: enable cpu boost for specific class drivers
add needs_cpu_boost field to usb_class_driver and manage boost state in
usb_core, similar to needs_exclusive_storage.

Change-Id: Ieb0cd7bedda5b24bb0d209d5ce907db30f4815db
2026-05-04 18:15:52 +09:00
mojyack
732f7bcfd9 usb: allow class drivers to return error from init_connection()
Change-Id: Idcd48dd00d9d2f06c49a347e02a41a5de7252431
2026-05-04 18:15:49 +09:00
mojyack
3c10b21c10 usb: hold class_driver instance in each driver
Change-Id: Ia2f857bffcc6c3cca4dee59791c48c628082595b
2026-05-03 15:18:51 -04:00