Commit graph

18221 commits

Author SHA1 Message Date
Solomon Peachy
2db798ff6d FS#13755: Updated Moldavian and Romanian translations (Mihai Alexandru Vasiliu)
Change-Id: I631393e17de68ea80e5f9b7ccc8793d1273b07d5
2026-01-12 08:26:16 -05:00
Mauricio Garrido
752467dee4 3ds: Various fixes, optimizations.
This commit does the following changes:

- Fix mkdir implementation not reporting EEXIST error.
- Fix database build feature.
- Small speed-up when parsing directories and files.
- Fix buffering thread hogging cpu and preventing other threads to run.
- Fix sdl plugins not compiling by re-adding ctru specific cflags in sdl.make.

Change-Id: I507c0dcc85cdbcc607ab9c9c6d0b42e6a80caa5a
2026-01-09 20:54:44 -05:00
Solomon Peachy
0abfb3ff78 voice: Include a simple string enumeration in voicestrings.zip
This maps the numerical IDs contained within the binary .vstrings files
to their logical LANG_* and VOICE_* names.

While not strictly needed to produce voice files, it adds the final
piece to be able to use vstrings files to produce the same voice files
as the existing 'make voice' flow that directly parses the language files.

The 'make voice' flow intentionally divert a few of the generated clips
into standalone files:

 * "invalid voice file"
 * <spoken language name>
 * <short pause>

For this to be possible, we need to know which specific entries in
vstrings map to the ones we care about, and without this enumeration
(which can change on a per-target or even per-build basis) this is
effectively impossible.

The produced lang-enum.txt is simple, with one entry per line of the
format: number:name

Note that nothing uses this new file yet; that will come in subsequent
commits.

Change-Id: Iec3fccbb6d503dd7e2d529aad318009a489b1d77
2026-01-09 20:47:34 -05:00
William Wilgus
032a38df4e lua -- remove direct rb-> libc calls infavor of macro substitution WIP
there are no functional changes in this patch
it just makes it easier to build lua in core app
or plugin form

-Update moved some things around messing up compilation on Native targets
due to *errno

Change-Id: I0921df62d72a87516ad95c68e986b5931c35345e
2026-01-08 22:32:23 -05:00
William Wilgus
ded29fd751 lua plugin remove strfrtime in favor of strfrtm.lua
saves 2.2k on the bin

also supplies gmtime, and a test script to check the returned time/dates

Change-Id: Ib83b11d89bdf44a50830ff51c72ac6395b675603
2026-01-08 21:39:54 -05:00
Aidan MacDonald
d791d26b6b apps: remove lc_open_from_mem() from plugin API
No plugin uses it and it doesn't work on hosted targets,
which limits its utility.

Change-Id: I5f29eec4dd11ffceb7be3e4d26e536483058055f
2026-01-05 13:42:23 -05:00
Aidan MacDonald
3d281c2ea3 apps: cleanly disable codec buffering when not supported
Move HAVE_CODEC_BUFFERING to config.h, and disable all
related code on targets that don't support the feature,
ie. hosted targets that can't implement lc_open_from_mem().

Change-Id: I0d2a43900cd05b1a80c3cee519f8ad7b26e39fe7
2026-01-05 13:15:49 -05:00
Nyx Guan
012245c51f tagtree/tagcache add new clause operator contains_oneof
new operators @~, *~
contains_oneof and not_contains_oneof

genre @~ "metal|core"
black metal, death metal, grindcore, mathcore

genre ~ "jazz" & genre *~ "rock|pop|fusion"
included: jazz, free jazz, cool jazz, etc.
excluded: jazz rock, jazz pop, jazz fusion

Change-Id: If9590c8607b58373a98f5c9ea537f54df78d5a2f
2026-01-04 22:55:40 -05:00
Solomon Peachy
b31becd4bc lang: Actually remove the deleted translations from SOURCES
Change-Id: I3cca83c2c999cbd99361606ef3fafc341d5b1395
2026-01-04 17:43:41 -05:00
Solomon Peachy
87f135b349 Retire the Afrikaans and Walliser German "translations"
They have not been touched in over 20 years, and have effectively
bitrotted to the point where they are effectively untranslated.

Any interest in these translations would have to effectively start from
scratch anyway, so let's stop pretending the status quo is useful.

Change-Id: I13e1ae920883f5babb232f0592076be24c8122d4
2026-01-04 17:25:51 -05:00
Marc Aarts
1f97ae73a5 Use user preferred touchscreen mode in 'Main Menu Config' plugin instead of defaulting to 'button' mode.
Motivation:

1. 'Absolute point' mode works fine in this plugin.
2. This plugin is part of the Rockbox menus. If the user setting is not 'button' mode, it is unexpected to have only this menu work in a different mode compared to all other menus.

Change-Id: Iec91d3cd875e8a80e835a4a58d87a6ec84529def
2026-01-03 20:25:13 -05:00
Sebastian Leonhardt
a0bd48bfd7 Creative ZENV: fix keymap
(remove overlooked reference to BUTTON_MENU)


Change-Id: I63e8f19726dc04c57e45fa4ad704fe83951ed987
2026-01-03 20:03:24 -05:00
Aidan MacDonald
ea49358cc6 playlist: fix missing cleanup on OOM in playlist_resume()
Introduced by 3892773bd7, my fault for hitting merge
too quickly...

Change-Id: I18bbc3259a67664753a608a0175c59ee5a4241e0
2026-01-04 00:05:16 +00:00
mojyack
3892773bd7 playlist: fix deadlock when calling playlist_restore() on certain timing
for example:
<audio> audio_thread
<audio> -audio_playback_handler
<audio> --audio_start_playback
<audio> ---audio_fill_file_buffer
<audio> ----playlist_peek
<main>  -playlist_resume { playlist_write_lock(playlist) }
<main>  --alloc_tempbuf
<main>  ---core_alloc_ex
<main>  ----buflib_alloc_ex
<main>  -----buflib_compact_and_shrink
<main>  ------playback.c:shrink_callback
<main>  -------audio_queue_send(Q_AUDIO_STOP)
<main>  (waiting for audio queue reply)
<audio> -----get_track_filename { playlist_write_lock(playlist) }
<audio> (waiting for playlist lock)

resolve this by not locking playlist until temporary buffer is allocated

Change-Id: I55a856780d17455b13e2515e096095ae0e9c86c2
2026-01-03 18:56:57 -05:00
Solomon Peachy
247d2020fa Mechanical correction for Ukrainian translation
Change-Id: Iaf1476e81c6145cd33ec35267027cb172732f5a5
2026-01-03 14:03:57 -05:00
Solomon Peachy
ae1bcbf913 FS#13743 - Small fix for Ukrainian translation (Pavlo Rudy)
Change-Id: I250bd30cfceaf7c210626c18697ede2ccd90d5bd
2026-01-03 14:02:08 -05:00
Mauricio Garrido
09a31fff91 3ds: Enable plugins for the 3ds platform.
This commit enables plugins for the 3ds platform.
And adds 3ds specific pad configurations for each plugin.

Change-Id: Ie28fef4da32ed4cd2caa6c9fa3b2fe312ee009ef
2025-12-31 21:13:34 -05:00
Roman Artiukhin
7d067ca798 imageviewer: jpegp: improve downscale quality
Use simple area-averaging for smoother images.

Change-Id: I7ac2db05262500041286404c97a615e4b3a43194
2025-12-31 21:11:51 -05:00
Solomon Peachy
cc9ce232ab Translation updates:
* Latvian (Renalds Belaks)
 * Hungarian (Gyúróczki Norbert)

Change-Id: I85b15a925000ac5f8e63b368a7d0938224693a6c
2025-12-31 06:58:48 -05:00
Solomon Peachy
a8ff5597bd FS#13739: Updated Vietnamese Translation (Chu Khanh Hanh)
Change-Id: I5bc0086e9a6c144203456dcd5652e3dd1e9f8bda
2025-12-30 23:18:04 -05:00
Sebastian Leonhardt
6552554939 Creative ZEN: split ZEN V keymaps off from other ZEN targets
The ZEN V target is the only one which has volume buttons,
but lacks the menu and shortcut buttons.
IMO an independant keymap will make maintenance easier.

Change-Id: Ide79fab629b13eae94946561d99052e570c0e4f2
2025-12-29 23:20:06 +01:00
Petr Mikhalicin
19a49220b1 plugin lrcplayer: Fix late rewinding at lrcplayer
If you try to rewind music at lrcplayer it
1. returns back to old time
2. play for some time (1-2 seconds)
3. only after that returns for new time

According to wps code audio_pre_ff_rewind function should be called
before any rewinding. It stops playback and automatically resumes it
after audio_ff_rewind call

Change-Id: Id3755bfe4deeb7cd5d889ad7d8e1dec45061fa5c
2025-12-29 12:58:47 -05:00
Solomon Peachy
716f45e291 Another correction for the Dutch translation
Change-Id: Ia20ba715264464be17516220933675eef2e825bd
2025-12-29 12:57:19 -05:00
Petr Mikhalicin
6f7d70797e plugin api: Add audio_pre_ff_rewind to plugin's API
According to wps code audio_pre_ff_rewind function should be called
before any rewinding. It stops playback and automatically resumes it
after audio_ff_rewind call

So, let's add audio_pre_ff_rewind to plugin's API

Lua scipts were tested:
```lua
-- has issue with rewinding
rb.audio("ff_rewind", 0)
```

```lua
-- no issue with rewinding
rb.audio("pre_ff_rewind")
rb.audio("ff_rewind", 0)
```

Change-Id: I2ad6b9c396760b2086bc0a28633a1c80c3512739
2025-12-29 19:58:26 +05:00
Solomon Peachy
06badb81b4 translations: Mechanical corrections to Dutch translation
Change-Id: Ifeef3cdff24d067a09dbed49b99088cffb14f890
2025-12-29 09:21:30 -05:00
Solomon Peachy
9735e5e878 FS#13736: Updated Italian translation (Alessio Lenzi)
Change-Id: I44d603c47527fbb5cf0608122fea03af196a9f12
2025-12-29 09:02:32 -05:00
Solomon Peachy
5f5c03b3c7 translations: Minor mechanical fix to German translation
Change-Id: Ib5249fe3c7c009187bbe51f00cf6056e4b531a12
2025-12-29 09:02:09 -05:00
Christian Soffke
1a66c4fd5d eq_menu: fix talk menu setting not being respected
Change-Id: I2f3762c466083375dc72d682f6951e9644b06acc
2025-12-29 13:43:50 +01:00
Solomon Peachy
ca253a78cf More translation updates:
* Ukrainian (Pavlo Rudy)
 * Dutch (Marc Aarts)

Change-Id: I72ed4e30f8d43136f6e9c8fc2d185336ddbfdc57
2025-12-28 10:55:33 -05:00
Solomon Peachy
4b4f85f0f4 Fix warnings on hibyr1/r3proii targets
Change-Id: I7b0331bd8ffd2d919799e88e4556c3e01ff90c46
2025-12-28 10:30:54 -05:00
Solomon Peachy
ead839b1c3 FS#13726 - Updated Ukranian translation (Pavlo Rudy)
Change-Id: If7db4efc3993585eb6e4d388b504013c02fbc359
2025-12-28 08:24:34 -05:00
Solomon Peachy
d4f341e46d Translation updates:
* German (Karl Huber)
 * Korean (Hoseok Seo)
 * Polish (Adam Rak)
 * Simplified Chinese (王吉)
 * Slovak (Matej Golian)
 * Swedish (wilton millfjord)
 * US English (myself)

Change-Id: I644133e326c3ee1ec3862791075dda39fd17a3e4
2025-12-28 08:22:06 -05:00
Marc Aarts
1183b1ab1b Rockbox for the HiBy R3 Pro II/R1
Original author Melissa Autumn (https://codeberg.org/oopsallnaps/rockbox-hibyos) with contributions from Marc Aarts.

Adaptation to Rockbox standards by Marc Aarts

Change-Id: I09e5af7ba0a75c648e4b9fd424badc2d3665c943
2025-12-27 15:44:54 -05:00
Petr Mikhalicin
eee6c31b4a plugin otp: Stop freezing display when generate OTP
Sometimes OTP code expires soon and we can't use it. So, We have to
wait for new one. And it's really anoying, when devide stucking at this
time

Change-Id: Ic5e0105b6c051ad2ec2a2421068867be2e497683
2025-12-27 12:08:16 -05:00
Petr Mikhalicin
4e13e69de3 plugin otp: Fix handling of unknown otpauth uri parameters
OTP uri parameters is key value options separated by '&'.
So, we on unknown params we have to reject also everything what was
behind '&'

Example:
otpauth://totp/kek?issuer=petya%40IPARTKN.TEST&secret=1234567890&digits=6&algorithm=SHA1&period=30

"algorithm" was unknown. So, next token after it was "SHA1&period", not "period"

Change-Id: I48eb198fd46212c6422dd8eac214adafdf3a52eb
2025-12-27 12:08:06 -05:00
Petr Mikhalicin
ca57184ff0 plugin otp: Make 'Generate Code' first option at otp plugin
Generating code is more popular action then adding accounts. So, let's
make it first

Change-Id: I15ea07ef63186611c4a87ba741c5a7b5d0d5041c
2025-12-27 12:06:57 -05:00
Christian Soffke
f7ede2b9df plugins: Disk Tidy: wait for dircache
Running Disk Tidy while the dircache is loading is a lot
slower than waiting for it to finish building first.

Typical scenarios for this would be starting Disk Tidy
immediately after booting or after unplugging from USB.

Deleting files during a dircache build also seems to easily
result in memory corruption, as evidenced by visual glitches
appearing in the theme.

Change-Id: I9250d918d916b112ffe2504a9225a0b52bcc3622
2025-12-27 16:29:16 +01:00
Christian Soffke
8e512d1f79 plugins: Disk Tidy: SBS title & minor display adjustments
- Move header that displays "Cleaning...", or
  that shows the last run's date, into SBS
  title area, if it exists.
- Left-align everything if SBS title doesn't exist
- Display "Nothing removed" instead of multiple
  zeros for items, size, dirs, and files
- Display "Today" instead of the current date
- display "2m 1s" instead of "00:02:01, and
  "<1s" instead of "00:00:00"
- "1 items" -> "1 item"

Change-Id: I40302af00d1038adca45a1c6a908af76bd9917cc
2025-12-27 16:29:16 +01:00
Christian Soffke
71f84bedd6 plugins: text viewer: use basename in title
i.e. pictureflow.cfg instead of something like
/<microSD0>/main/.rockbox/rocks/demos/pictureflow.cfg
since the last path component is usually more important
and may not be visible otherwise.

Change-Id: Icdc2d0db21d9290ce53213b0a650c83631e7c9ed
2025-12-27 16:29:16 +01:00
Christian Soffke
8c9f70de82 plugins: text viewer: use SBS title
Take advantage of skinned status bar title, instead of
displaying a custom header that reduces space for content.

A custom header will still be displayed if the SBS
doesn't come with its own title, such as on the default
theme, or if the status bar has been turned off in Text
Viewer's settings.

Change-Id: I14c8d9a61acf338d09d7f54947399e8692987a7b
2025-12-27 16:29:16 +01:00
Christian Soffke
1fd45d23a0 plugins: text viewer: use theme colors & backdrop
When Night Mode was added to Text Viewer
in ab1b67f, the regular mode was changed to
black and white instead of using theme colors.
This looks out of place in custom themes when
the statusbar is enabled, i.e. using the default
Text Viewer setting. Only switch to black and
white when statusbar is disabled, which also
disables the backdrop.

Change-Id: I3ff5e1c42de11ca58640e91bcb315ce7804fadcd
2025-12-27 10:28:00 -05:00
Christian Soffke
06af1090bb plugins: vu_meter: enable theme for submenus
Also properly handle situation where theme is already
enabled at launch.

Change-Id: Ic7b3dcf38e77f6e9d6ef4a5512f729e47880e46c
2025-12-27 15:49:05 +01:00
Christian Soffke
17ea0bb82e simplelist: fix unbalanced viewportmanager calls
viewportmanager_theme_enable isn't balanced by
viewportmanager_theme_undo when connecting to USB
while simplelist is displayed.

Change-Id: Iad9408a52150934246c886a01a5d1efc8febd0fd
2025-12-26 16:05:24 +01:00
Solomon Peachy
515b2816cd FS#13724 - Updated Swedish translation (Wilton Millfjord)
Change-Id: If4c18da6a95a08c9ef3c38d79479742c0da62528
2025-12-26 08:46:21 -05:00
Christian Soffke
dbec04dc81 simplelist: stop scrolling when leaving
Fixes (at least) Shortcuts menu not stopping
a scrolling line after leaving menu for a
plugin in some situations.

Change-Id: I90b4cc71a63e557565d028aae27db082e2e1813f
2025-12-26 02:50:15 -05:00
Christian Soffke
b04fd3efed plugins: fix dangling sbs_title pointer
Change-Id: Ief2a5dde8760e55524a74b482079a2a9ebafece9
2025-12-26 08:29:26 +01:00
Solomon Peachy
aaee78586a Minor mechanical correction to French translation
(USB-DAC is correct, and will be spelled out properly au francais
 thanks to voice-corrections.txt)

Change-Id: I2dd8e0e41df3e687a26fa74272f5248cda8f7b20
2025-12-23 20:08:52 -05: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