Commit graph

38627 commits

Author SHA1 Message Date
Aidan MacDonald
6078b2a6b4 echoplayer: enable debug symbols by default
This adds debug symbols to rockbox.elf & bootloader.elf to
make debugging with GDB easier. This won't affect code that
runs on the target because debug symbols are stripped from
the final binary.

Change-Id: I9efe207c63e8bd96404213aad96405be27030ae9
2025-12-23 17:57:59 +00:00
Christian Soffke
5aa2b339d5 plugins & debug menu: apply consistent titles
Purge "Menu" or "Rockbox" from plugin menu titles
and match application names from manual.

Exception: "Main Menu" is left unchanged as the
title for the Main Menu Configuration plugin, since
it appears in Rockbox's Settings menu and therefore
should match the name of the setting.

E.g.:

"Rockbox Goban" => "Goban"
"Image Viewer Menu" => "Image Viewer"
"Viewer Menu" => "Text Viewer"
"Menu" => "Chess Clock"
"Do What?" => "Text Editor"
"Mpegplayer Menu" => "MPEG Player"
"Multiboot Settings" => "Multiboot"
"Disktidy" => "Disk Tidy"
...

Change-Id: Ie6d3be7557f31a36309489037ad8b2b27b06706e
2025-12-23 10:25:05 -05:00
Christian Soffke
fe690dfa20 plugins: playing time: adjust error message, keep theme enabled
Replace generic error message  with voiced
info about the number of tracks skipped

Change-Id: I334fac447eeef2eb5c0d302675b98027b01b09d0
2025-12-23 10:22:14 -05:00
Christian Soffke
4e211b55f9 plugins: sort, vbrfix: add warning
Destructive operations should come with a
warning, especially if they are easy to
select by accident from the Open With... menu.
vbrfix even seems to be selected by default
for audio files (which is probably not ideal).

Change-Id: I4d2c79f2f19129d8b0257655e2d7c6093ad86eca
2025-12-23 09:58:23 -05:00
Christian Soffke
f316535684 plugins: view-text, zxbox: fix panic when called without parameter
Change-Id: Ife654e6dcb29916f661ce0c2232f4060ac02f5d2
2025-12-21 23:58:04 -05:00
Solomon Peachy
a2e63fca59 FS#13721: Updated French Translation (Matthieu BACHELIER)
Change-Id: Id49928589f68ff5d77a830c76823a4e21d952360
2025-12-21 17:54:55 -05:00
Christian Soffke
4698be4a17 plugins: flipit: remove 4s delay on devices without instruction
Change-Id: Iab0e54ca20de5318bf3d74e8571d0e6e209e3430
2025-12-20 13:57:03 +01:00
neofright
8cc372c4e4 Add line break to fprintf in database.c
Before:
Scanning files (may take some time)...Read metadata for /Music/foo/bar/baz.ogg

  After:
Scanning files (may take some time)...
Read metadata for /Music/foo/bar/baz.ogg

Change-Id: Id3816104779fd80930cd213bab29765bdd3db451
2025-12-20 02:47:08 -05:00
Roman Artiukhin
c594b58af2 imageviewer: jpegp: Fix downscaled image rendering
Fixed rendering issue when dimension is not divisible by downscale factor

Fixes FS#13719

Change-Id: I3b4ad035d5cce57acd3dc8a8e846bb5303598c8d
2025-12-19 13:35:52 +02:00
Christian Soffke
eb49b82d33 backlight-sw-fading: FS#13717 fix brightness overshoot
Change-Id: If4cb0a1993c93e6ba524cbed8690bb6c1664908e
2025-12-19 08:20:07 +01:00
Solomon Peachy
70e9ae0996 metadata: Explicitly use base 10 when parsing track numbers
Otherwise stuff with a leading 0 gets parsed as octal, leading to failures
to parse '08' and '09'

Change-Id: I997c505617104733793c6c113d4915bd4fd912e5
2025-12-16 15:08:54 -05:00
Solomon Peachy
488b915432 FS#13716 - Update to Latvian translation (Renalds Belaks)
Change-Id: I815f5482d6227be4dd4206311d365dcc949d3ac8
2025-12-15 15:12:13 -05:00
Christian Soffke
16cf7f5d8b plugins: starfield: enable USB audio
forgot about this...

Change-Id: Ib9d1451785390f1fabcaab679271510e76f9e330
2025-12-15 07:48:45 -05:00
William Wilgus
2398616d63 Bugfix lua font_getstringsize ignoring supplied fontid
Change-Id: I62c334300f427670b237957553176302a8589fe7
2025-12-14 17:51:29 -05:00
Solomon Peachy
b9ca4ba456 metadata: MPEG4 'trkn' field is actually numeric
So accept whatever value is supplied as correct.

Change-Id: Ic5ba6909f036957bceeaf7e79ad24273dac2e677
2025-12-13 19:19:52 -05:00
Solomon Peachy
bc627659ec FS13713: Fix null ponter deref with mp4 files with a tracknum of 0
mp4 metadata doesn't use strtol, so needs to handle things differently.

Change-Id: Idb54fae845b08222ea6b79870f6b99390af9c684
2025-12-13 17:54:29 -05:00
Dana Conrad
75df18f2c1 FS#13712: ErosQ: move all of sound hw init to audiohw_init()
Fixes voice not working after booting but before starting music playback
while line-out is plugged in. Doesn't seem to break anything on hw1 or
hw4.

Change-Id: I7b830adeeceae621177c94353e4814aa6ad0e1ec
2025-12-12 22:44:22 -05:00
Aidan MacDonald
a30f822500 plugins: add strstr() to plugin API
Multiple plugins carry their own strstr() implementation because
the in-core version wasn't exported to the plugin API.

Change-Id: Ib57a9b63754c89fb3447ec1d3958963d23145105
2025-12-12 13:30:54 +00:00
Roman Artiukhin
2e1af37536 plugins: imageviewer: don't downscale unscaled image if it fits on screen
Change-Id: Ifd686884d1d8fe3dca9da58ba38ee2de822b5787
2025-12-12 08:06:20 -05:00
Christian Soffke
3ee26f761b manual: html: fix unrecognized --parent(s) option on BSD/Darwin
Replace --parents (specific to GNU cp)
with separate mkdir -p command.

See https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html#index-_002d_002dparents

Change-Id: I80dd5e513300dc921a59227aff9454ddb5766671
2025-12-11 19:14:48 +01:00
Aidan MacDonald
fe11a04579 mips: show version info on exception panic screen
Change-Id: Iff315869e9190ce7d68c672c6cc78cb1fc301264
2025-12-11 15:48:50 +00:00
Roman Artiukhin
4e18f60987 cuesheet: allow playback from arbitrarily named cue file
The removed filename check is required for proper cuesheet recognition in WPS, but it should not prevent playback from an otherwise valid cuesheet.

Change-Id: I2876a8855f06fb569e3ac171b04931af8be16cd1
2025-12-10 17:37:19 -05:00
Roman Artiukhin
4e655be473 dsp: Optimize fractional multiplication in audio processing
Removed duplicated multiplications

Change-Id: Iafe1030cd96f16664d6b136ebbe429313b6e6448
2025-12-08 16:14:06 +02:00
Solomon Peachy
cbfaa49d3f xrick: Fix up -wundef warnings in miniz library
Ensure that if a posistive condition results in "#define XXX 1", ensure
we set "#define XXX 0" if that test fails.  This is necessary because
the code uses "#if XXX" isntead of "#ifdef XXX" all over the place.

Change-Id: I16157fd6ae251a70331f48a895b6c53a6648ab2b
2025-12-07 14:28:51 -05:00
Solomon Peachy
a5df7c2e02 Revert "xrick: fix sim build warning on arm with -Wundef"
This reverts commit f05be27ae6.

Reason for revert: Introduces warnings on all (x86) sim builds.  

Change-Id: I052c3569693663910a4290668b90ff444da65c75
2025-12-07 14:18:02 -05:00
Solomon Peachy
ecb3e9936f build: Explicitly disable all arch-specific optimizations for sdlapp or sim
Change-Id: I76d1097cea58018cb1e96dbbce8d5feaeacd8a96
2025-12-07 13:22:28 -05:00
Christian Soffke
95ab3e8b0e configure: Fix compatibility with BSD sed used in MacOS
Change-Id: I72f26eed4cbb3996d0a92c4334fa2c63b973bc9b
2025-12-07 13:22:17 -05:00
Christian Soffke
f05be27ae6 xrick: fix sim build warning on arm with -Wundef
Change-Id: I11513a20e0cd0bfd6dbe0759c86e4ff893a3d537
2025-12-07 13:22:13 -05:00
William Wilgus
11552d0710 bugfix PLUGIN_GOTO_ROOT didn't reset previous screen
Change-Id: I971eb5a6890d35c9a06c37526c8107c6afde35e5
2025-12-07 13:10:04 -05:00
William Wilgus
7a73ca2230 FixRed lua -- rb->strtol for native targets
missed this reference

Change-Id: If8d747399223e5cd33d044a274e6d1d81745ed1c
2025-12-06 21:26:27 -05:00
William Wilgus
8a773fb29f lua -- remove strtol and strtoul replace with rb->strtol and rb->strtoul
Change-Id: Ib7ba358b6488b946404c0c4cd8773e948810a7f7
2025-12-06 18:11:13 -05:00
Solomon Peachy
dada036b10 configure: Partial revert of 6c6bdbf60e
Turns out I compile-tested stale trees instead of the broken change

Net result is just the simpler MIPS revision (32/64/"classic") lookup rather than
the sub-revision (eg mips32r2 etc).

Change-Id: Ideebe522d29132f00f3769222f3846000b3a89fd
2025-12-06 15:54:43 -05:00
Solomon Peachy
6c6bdbf60e configure: Revamp MIPS architecture version+revision detection
This allows us to easily distinguish between mips32 and mips32r2

(Works at least as far back as gcc 4.9)

Change-Id: I2bcba194fd9cbeedf76cea739252271908bf73d0
2025-12-06 14:58:40 -05:00
Solomon Peachy
5e5b434ce8 configure: Simplify the arm architecture version lookup
Going back to at least gcc 4.9, we can key off of __ARM_ARCH
which is all we care about here.

Change-Id: Ic2659db5ff55ccefe2c3f71957b967f36025f7e3
2025-12-06 14:43:03 -05:00
Solomon Peachy
1203b8657e configure: -masm-syntax-unified does not apply to aarch64
Change-Id: Ida12a60b629ccdea3980bcabc79812e3b97181e8
2025-12-06 14:24:32 -05:00
Solomon Peachy
e94a96cdcf FS#13497: '0' is sometimes a valid track number
Most notably for CD rips that use a track number of 0 for
the leadin.

Therefore change our "invalid track number" canary to -1 instead
of 0.  Additionally don't try to parse an empty string.

In the process, get rid of redudant 'discnum = 0' as well.

NOTE: While not strictly necessary, we recommend rebuilding the
      database to ensure files without track numbers are
      updated with the new canary.

Change-Id: I543f98ca49cec7b5eeffa7c14c1eca57171f345a
2025-12-06 09:20:32 -05:00
Solomon Peachy
481cc70fe0 libc: Add an implementation of strtol/strtoul and export it via plugins
These were lifted from the lua plugin.

sdl, doom, puzzles updated to use the exported version

todo: lua, maybe?
also: convert uses of atoi [back] to strtol

Change-Id: I5a1ebbe8d8c99349e594ab9bbbce474e7645b4e9
2025-12-06 09:04:36 -05:00
William Wilgus
32edbd430d plugins - Add PLUGIN_GOTO_ROOT - lua add PLUGIN_GOTO_ROOT and PLUGIN_ERROR
Change-Id: I018f68685877700571aa7687428cfdda436a0294
2025-12-05 12:03:58 -05:00
William Wilgus
7b7d9a384a scrobbler / log viewer allow cancel button long press to exit plugin
some devices will shutdown before the button repeat even occurs so unfortunately
it still might not work on some devices (sansa clip series)

Change-Id: I1c5eda6c5a97887f69e1fbd0ada39cce01db352b
2025-12-05 12:03:58 -05:00
Aidan MacDonald
9d7af45122 touchscreen: Allow progress bars to be used in the .sbs
Progress bars (for seeking in the current track) can now be
used on the .sbs skin.

Change-Id: I42377b16036ca4ca8017ecfa2bdab08bd0fa1e64
2025-12-05 12:02:53 +00:00
Aidan MacDonald
9b5b9d6a6d touchscreen: Allow volume bars to be used in the .sbs
Move the volume bar input handling to skin_touchsupport.c so
volume bars can be used in the .sbs as well as the .wps skin.

Change-Id: I018fa1c84f93b64d676b68e3bea63ddb9141e492
2025-12-05 12:02:53 +00:00
Aidan MacDonald
e3e0c7b73c skin engine: Fix some user-created touch regions being suppressed
Fix the heuristic used for detecting a touch-enabled theme.
The old method assumes that volume bar and progress bar tags
are always auto-created, but this might not be true. Instead,
mark regions that originate from a %T tag as user-created and
check for those.

Change-Id: Iec732d299a2b4e298bef8069a68ff94e3b642703
2025-12-05 12:02:53 +00:00
Aidan MacDonald
1816667937 touchscreen: Allow bar tag touchregions to be labeled
This is necessary if you want to detect touches on the bar region
using %Tl conditionals. Suppressing the auto-created region and then
creating one manually using %T doesn't give exactly the same results
because user-defined touch regions can't yet specify padding.

Change-Id: I2f4bde8eb56ba89645c72f3cc9d4b2355b934abd
2025-12-05 12:02:53 +00:00
Aidan MacDonald
b781beecf5 manual: document touch area labels for %T and %Tl tags
It's been possible to label touch areas since the v3.9 stable
release, but it was never documented in the manual, only the wiki.

Change-Id: I6b92ff1d19369c105dc3a90aa04f8763f18a4214
2025-12-05 12:02:50 +00:00
Solomon Peachy
afe128f4cc arm: Profile/variation detection improvements
* Detection of 64-bit Arm v8-a
 * Proper detection of integer division support
   * always on v7-m, v8-a, v9-a, v8-m.main
   * sometimes on v7-a, v7-r, v8-r
   * never on v8-m.base v6-m, v6 and older "classic"
   * tl;dr: Rely on toolchain preprocessor definition

For the most part these additional variations won't acutally work
for native target builds, but sane -A detection is needed for
"local" builds now. -R detection is left out as it's not likely
to matter.

Change-Id: I8f6a52edc4d14490fc00e2f487406eca701eef02
2025-12-04 20:43:30 -05:00
Solomon Peachy
6d39bf5e48 manual: Update %Tp documentation
It returns 't' only if a touchscreen is present and set to pointer mode

Change-Id: Ia72c0ea0ceea78fc53327a4c6d6cb25436ef572c
2025-12-04 20:33:57 -05:00
Aidan MacDonald
910a39af27 touchscreen: Evaluate %Tp tag only if pointing mode is enabled
Simply knowing that a touchscreen is present isn't that useful for
themes. Having %Tp evaluate as true when in pointing mode and false
in 3x3 mode is better. For example, themes can change their layout
or hide touch UI elements when in 3x3 mode, or show a status icon.

Although a similar effect can be achieved with the %St tag it's
simpler to use %Tp for this purpose -- it can report the current
mode, not just the user preference.

Change-Id: Ie343c105970dca11864fa44c6a091ed8e9e35b3d
2025-12-04 19:36:51 -05:00
Aidan MacDonald
02ad19c959 touchscreen: Fix seeking to end of track in WPS
Seeking to the very end of the track with the touchscreen caused
rapid skipping through the playlist because each touch event
generates a separate seek operation, kind of like rapidly pressing
a physical button. Fix this bug by executing the seek operation
only for the release event.

Change-Id: Ic1080065a68e7cc2ba98e2f27293c954f2ec8fb2
2025-12-04 19:36:19 -05:00
Aidan MacDonald
010d22ed29 touchscreen: Port skin engine to gesture API
Use the gesture API for improved reliability.

Change-Id: I44c4e124132605ecf4f1499f97defd7b4b2d78e8
2025-12-04 19:00:38 -05:00
Aidan MacDonald
0f99defe1f touchscreen: Port quickscreen to gesture API
Use the gesture API to improve reliability, and allow press and hold
to repeatedly increment or decrement a value like on button targets.

Change-Id: Ic01b7a0802c3dec9f1534f5dd11e006b28a875b6
2025-12-04 17:29:54 -05:00