Commit graph

18076 commits

Author SHA1 Message Date
Hairo R. Carela
69f27d4c66 rgnano: Use proper lcd depth and pixelformat
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
2025-08-18 21:43:13 -04:00
Christian Soffke
8145e326a3 tagcache: skip search roots that don't exist, instead of aborting
https://forums.rockbox.org/index.php/topic,55459

Change-Id: I0c3fa07f9920ed4caabf3013702b10e59c0b550e
2025-08-15 20:46:37 +02:00
Solomon Peachy
bf2320d23b pdbox: Silence false warning with GCC10
Change-Id: I0d5e7d74e9aa27ca21cde739389a040a83505cf7
2025-08-14 20:43:09 -04:00
Solomon Peachy
472a6a69c6 IAP: Reset IAP state upon headphone or dock unplug
Provides a semi-automatic way of recovering from desynchronization

Change-Id: I527b0bacc22ef38c1e7213653e522ea1b0ac155d
2025-08-14 20:41:14 -04:00
Solomon Peachy
80eca90481 tagcache: Don't try to look up "deleted" filename entries
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
2025-08-13 11:38:56 -04:00
Solomon Peachy
01860627bd test_codec: Fix crash due to missing strip_filesize function
Probably only affects mp3 files.

(Introduced in 38105860dc)

Change-Id: I1946e7be604784ec47ff21a47aab81e91d933a3d
2025-08-12 10:47:31 -04:00
Solomon Peachy
b40cf73d36 doom: Fix warning with RGNano Simulator
Change-Id: I311c7afb203d00a229d79ce655f41b702634a03f
2025-08-12 10:47:06 -04:00
Christian Soffke
50f10681b3 playlist: remove support for PLAYLIST_COMMAND_CLEAR
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
2025-08-08 09:34:52 -04:00
Christian Soffke
2ddcc95423 tagtree: Fix FS#13651 database track titles not voiced with extensions turned off
regression introduced in commit 26c612f

Change-Id: Id2328a9f0de1fefdfddc7572524cb22a0668af96
2025-08-05 15:54:11 +02:00
Solomon Peachy
9f91f02159 sdl: Fix up build failures with -fno-common
Big pile of duplicate variable definitions in quake and duke3d

Change-Id: If5ef873c1dc1d7b3104536f657258e0a06574d53
2025-08-04 22:40:00 -04:00
Hairo R. Carela
20de670340 rgnano: Add manual images
Also sliding puzzle button labels.

Change-Id: Id6cf3e342da2e1b4b4ba170c003782f4e9fa4134
2025-08-03 12:39:46 -04:00
Hairo R. Carela
01a4f3eec9 rgnano: Add manual code and missing AB reset mappings
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
2025-08-01 22:32:19 -04:00
Hairo R. Carela
fd9ab93178 xworld: Use ROCKBOX_DIR for data/save paths.
Hardcoded /.rockbox causing issues.

Change-Id: I13bfcda753afda33700ff2d88dfac6d607d3a9dd
2025-07-30 11:16:53 -04:00
Solomon Peachy
dc72190d88 otp: Correct some 64-bit time_t warnings
Change-Id: Ic2c00168170cee797a8ac7de1df2cb6650a9184d
2025-07-29 21:03:52 -04:00
Hairo R. Carela
48392bab94 New port: Anbernic RG Nano
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
2025-07-29 21:01:53 -04:00
Solomon Peachy
8a04d02a1e FS#13648: Update Chinese (Simplified) translation (王吉)
Change-Id: I57b58a0e4a62e0443b0903ade7459610a1bce9c7
2025-07-28 10:36:01 -04:00
Vencislav Atanasov
d40be8404b SDL: Prevent SDL_FreeSurface from freeing the LCD buffer
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
2025-07-25 22:17:19 +02:00
Solomon Peachy
85f731c1e0 Translation updates:
* Italian (Alessio Lenzi)
 * Korean (Hoseok Seo)
 * Latvian (Renalds Belaks)
 * Moldavian (Mihai Alexandru Vasiliu)
 * Polish (Adam Rak)
 * Romanian (Mihai Alexandru Vasiliu)
 * Slovak (Matej Golian)

Change-Id: Ia8df6f4948967c46de716f4c6f1e0d63ac54ea07
2025-07-25 11:28:47 -04:00
Solomon Peachy
e181ebfb2d Udpate english-us "translation"
Change-Id: I16557a3befab65dc35d39f1411b21fe6d679848e
2025-07-23 12:27:57 -04:00
Christian Soffke
f6cdcc8ca9 voice: LANG_PLUGIN_CANT_OPEN
Change-Id: Icbcbd7ed2dff88065726ce2520fbcc718bc3eba0
2025-07-23 11:13:13 -04:00
Paul Sauro
f2356303d9 [Tagtree] Add a new button to list automatically all tracks in all albums of the current view
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
2025-07-23 11:12:54 -04:00
William Wilgus
bf286ef373 Revert "Splash modified playername.txt on device startup"
This reverts commit 9d92d161d8.

Reason for revert: going to end up changing this might as well just revert

Change-Id: I914f61a5e79f80ff1bf40c06253c85dba25cc305
2025-07-22 10:27:34 -04:00
William Wilgus
9d92d161d8 Splash modified playername.txt on device startup
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
2025-07-20 12:16:15 -04:00
William Wilgus
d9a3fe19ce Bugfix plugins rockpaint toolbar blocks exit
allow power button to collapse toolbar and allow exiting the plugin

Change-Id: I205ee5253ca116eddd737683faab6e132f4936ba
2025-07-20 11:22:22 -04:00
William Wilgus
31c8c0496b Bugfix Zero runtime not reset runtime while charger connected
I can't repro the users issue guessing its the difference with
charging monitor vs not

https://forums.rockbox.org/index.php/topic,55406.0.html

Change-Id: I252f48cd24a9cb0fb2b899352fe9f9ac540a9a5b
2025-07-19 09:19:38 -04:00
Solomon Peachy
29e0303915 FS#13640: Updated Russian Translation (Vladislav Voronichev)
Change-Id: I044f45f10aae96af3a1cbf22209963cd973d3f46
2025-07-13 14:22:54 -04:00
Hairo R. Carela
893828b488 Use ROCKBOX_DIR in legal notices file paths
These paths were hardcoded to /.rockbox/ and could cause issues with ports not using that path.

Change-Id: I1aef65d21d47b7f49f06c304a4dc9d30471d3ae2
2025-07-09 19:04:34 -04:00
Vencislav Atanasov
a20fe4a3ff Add debug menu option that dumps the boot flash of iPod 6G to a file
Change-Id: I7d7c3294cb45500297b903c40a3ec93c8a8ea33c
2025-07-06 23:17:26 +03:00
Solomon Peachy
cc4e3b098d FS#13638: Updated Ukranian Translation (Pavlo Rudy)
Change-Id: I84c1367f9726515aaca6cc544a3925cf27c9c77b
2025-06-23 17:47:15 -04:00
Solomon Peachy
c145f41658 theme_menu: Error out gracefully when a directory doesn't exist
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
2025-06-17 18:40:06 -04:00
Solomon Peachy
9265d43a56 FS#13637: Minor update for Romanian translations (Mihai Alexandru Vasiliu)
Change-Id: I74a6daf7f71bd6bf15d834a12d70ae605c05530e
2025-06-17 18:22:05 -04:00
Christian Soffke
5f593fb000 album art setting: use settings callback
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
2025-06-15 11:30:59 -04:00
Christian Soffke
fbbf08575f quickscreen: remove callback
this isn't used by anything anymore

Change-Id: Ia94b34a5e72b3b78e5e65f0a7a75c4aa347f0100
2025-06-15 11:30:59 -04:00
Christian Soffke
5f05d66853 quickscreen: fix disappearing elements in misbehaved themes
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
2025-06-15 11:30:59 -04:00
Christian Soffke
91c724dc19 plugins: clock: adjust defaults, don't restore color
- 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
2025-06-08 11:31:14 -04:00
Christian Soffke
8d4efb6cf2 plugins: clock: simplify settings
- 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
2025-06-08 11:31:14 -04:00
Christian Soffke
ab161a3d89 plugins: clock: remove messages when starting/quitting
- 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
2025-06-08 11:31:14 -04:00
Christian Soffke
2d00292df5 plugins: clock: fix fd not closed when file size differs
Change-Id: I12716c650703c47f8db825b1ae7e6fe62c039258
2025-06-08 11:31:14 -04:00
Christian Soffke
1812d15416 plugins: calculator: remove delay when quitting
Change-Id: Ie419e19302c6ec7d2f452fad4aa3e51a0325e899
2025-06-08 11:31:14 -04:00
Christian Soffke
9593dca0ef plugins: stopwatch: use UI viewport, fix vp not cleared
- 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
2025-06-07 19:01:45 +02:00
Christian Soffke
42e5fa3ea5 shortcuts: Fix garbled title after language change
Change-Id: I09517c2f143e16b8874b8b8df7d3f8125686ff7a
2025-06-07 02:19:34 +02:00
Christian Soffke
855c4d666a shortcuts: voice: fix name isn't ignored when timedata.sleep_timeout < 0
regression introduced in 94cf340

Change-Id: Ib214021413d500b5538e38a38edfe620d3fd3a7b
2025-06-06 22:49:40 +02:00
Christian Soffke
94cf3403e2 shortcuts: add missing voice for sleep shortcuts without name
Change-Id: I1178be8c82671d64746297306b27ee9ccb50c1a2
2025-06-06 19:12:07 +02:00
Christian Soffke
e9d0be5dfd shortcuts: Don't require name for 'time' (i.e. talk or sleep) shortcuts
Change-Id: I5b0777c10527f6a49ac7305ca0ba1d4c269333fe
2025-06-06 18:12:06 +02:00
Christian Soffke
19dc2466c8 action: fix "first keypress enables display only" ignored in plugins
Change-Id: I131887e4b7d72022026dcd4adbfc6bd3e8bd2ee2
2025-06-05 16:09:29 -04:00
Christian Soffke
2bf929c7ae plugins: disktidy: use UI viewport, limit UI updates
- 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
2025-06-05 16:08:58 -04:00
Paul Sauro
e3fb41919d metronome: increase rectangle sizes to use a greater portion of the screen
Change-Id: I6c0b3faa173f5b68282c8e75b039e61d2362f749
2025-06-04 09:44:31 -04:00
Christian Soffke
4ebf2edf32 plugins: pictureflow: fix backlight setting requires restart
Change-Id: I6a2f0fe1ab3909ab831f89f92988d82b5a7c9b14
2025-06-04 12:43:48 +02:00
William Wilgus
4811e48026 [Bugfix] make theme menu reset browse context
we try to reuse the browse context to return to folders in the plugin browser

but in the browse_folder() case we want to load the root directory
so reset the current browse context and force the browse
to be reloaded

Change-Id: I416ee40411cdce4e404b6119b33d91ff6ba533c8
2025-06-03 11:10:53 -04:00
William Wilgus
380e8c2687 [BugFix] lua add stub for splash() to splashf()
Change-Id: If3fbcae201fd950c60eedc9e090cca5f9ca45bae
2025-06-03 01:45:18 -04:00