Commit graph

38461 commits

Author SHA1 Message Date
William Wilgus
380e8c2687 [BugFix] lua add stub for splash() to splashf()
Change-Id: If3fbcae201fd950c60eedc9e090cca5f9ca45bae
2025-06-03 01:45:18 -04:00
Christian Soffke
5c2a33bba3 Hide extension in Rename dialog when viewing single file type
Hides the file name extension when renaming a file in
places other than the File Browser, such as in the
Playlists menu, where only a single file type is displayed.

Otherwise, a file can disappear from view if its extension
is accidentally changed.

Plus, it becomes a little easier to edit playlist names,
because  you don't have to skip past the extension in the
keyboard picker anymore.

Change-Id: I39fc2b008d5504080e0aa728acf88ceedc2b4617
2025-06-02 21:05:32 -04:00
Christian Soffke
d9feabc720 voice: replace splashf with talk equivalent
Add voice equivalent to splashf messages that require
pauses between individual announcements, or that need
to include their arguments

Change-Id: Ie72326a2371f242de8999761278b22080ba33c81
2025-06-02 21:04:19 -04:00
Christian Soffke
60010b52a2 voice: Use "All" prefix for final progress announcement
Use "All" prefix when the final item count is announced
in display_playlist_count and search_playlist
("All 2000 tracks saved"), to make it possible to tell
when the operation has finished.

Change-Id: I90419599fb30da511ee4671b8f0f7f92e2098fd0
2025-06-02 21:04:06 -04:00
Christian Soffke
4e50ae5e6e voice: database: interrupt for LANG_RANDOM_SHUFFLE_RANDOM_SELECTIVE_SONGS_SUMMARY
Change-Id: I7450d98323d377bebbd58521748b54e73a1646cd
2025-06-02 21:03:39 -04:00
Solomon Peachy
123d3b9a23 talk: Keep QUEUE_SIZE at 64 for smallmem devices
Change-Id: I03fb48b4dadbe0079f699d1fa9d994efd7fe4f68
2025-06-02 12:44:44 -04:00
Christian Soffke
36a5501d74 talk: Increase QUEUE_SIZE from 64 to 128
Ensures that fewer spelled-out strings
will run into this limit

Change-Id: I66cc1bcaffc7b63ee4a9908a59d157e4d2b7e598
2025-06-01 20:35:54 -04:00
Christian Soffke
ae1dc0adf8 talk: Keep UI responsive when spelling out long strings
Commit 3b1230b ensured that strings exceeding QUEUE_SIZE
were spelled out completely, but also resulted in the UI
becoming unresponsive.

We now check for any button presses, and truncate the
spelled-out string in that case.

Change-Id: Ibbd4f630cb5b88c9c133fdaf3a591e1a38f61e82
2025-06-01 19:59:57 -04:00
Christian Soffke
c51ca1eeb5 voice: splash_progress
Says "Loading x%" in previously unvoiced splash_progress

Change-Id: I81780e3baf6ea8a8871a4433e1a733100b8cd5f6
2025-06-02 00:03:42 +02:00
Solomon Peachy
a001d76afe More translation updates
* Moldavian: Mihai Alexandru Vasiliu
 * Romanian:  Mihai Alexandru Vasiliu
 * Slovak: Matej Golian

Change-Id: I63585940fc1b517c3ad399db4d3afe1dc515745b
2025-06-01 15:09:05 -04:00
Roman Artiukhin
2334e08d72 Codecs: Fix stuck buffer when advance_buffer fails
Fixes FS#9186 (constant noise at the end of truncated flac file)

Change-Id: I516282e48cecb2be009b5779115395a50edb6fdc
2025-06-01 12:11:53 +03:00
Vencislav Atanasov
c464a81e00 iPod S5L87xx bootloader: Add code for dumping the boot flash to UART
Change-Id: I9513cac0a9463f033456fd7ba7c3db648edf691b
2025-05-31 11:49:51 -04:00
Vencislav Atanasov
6a626a2cae iPod S5L87xx bootloader: Implement the development menu as a list selector
This allows more than 5 items to be added, as every item was bound to a physical button.

Change-Id: Ib03ffe8e7c5f356e170a72bedf35f143051d1eaf
2025-05-31 11:49:51 -04:00
Solomon Peachy
bda1fc9003 Multiple translation updates:
- US English (myself)
 - Simplified Chinese (王吉)
 - Italian (Alessio Lenzi)
 - Korean (Hoseok Seo)
 - Latvian (Renalds Belaks)
 - Polish (Adam Rak)

Change-Id: I93b8650835c6f7209c0264ad039f7a6c329ce58a
2025-05-31 11:39:15 -04:00
Christian Soffke
8ba02932b3 voice: splashf 39f8685 add missing voice phrase
Two of the splashf messages that were converted
to support voicing in commit 39f8685 didn't have
a voice string yet. Translations tbd for:
* LANG_READ_FAILED
* LANG_FM_SCANNING

Change-Id: I73fc609348f319f84d1e94cc9673685c75958bbc
2025-05-30 08:30:58 -04:00
Christian Soffke
4346a1e8e7 playlist catalog: sort independently from file browser
Allow independent sorting of playlists in the
playlist catalog, using the context menu.

You may want to usually sort playlists by their date
(modified), but sort audio tracks alphabetically.
This is now possible without having to constantly
adjust a setting.

The fact that 'Sort Files' applied to both the file
browser and playlist catalog seems more like a side
effect of the implementation, rather than behavior
that is wanted. Additionally, the 'By Type' sorting
makes no sense when only a single type is displayed.

Since many of the other File View settings don't
apply to the playlist catalog, hide the menu there.

Change-Id: Ic35038015d0860998ae117f472ce23ce3bc80cfa
2025-05-30 08:30:47 -04:00
Christian Soffke
6e06319988 addendum to 498d581
two more that I missed

Change-Id: I48863fb870375328228d2c4caf1ea83931ccc218
2025-05-28 12:52:45 +02:00
Christian Soffke
498d581ca6 voice: fix regression 39f8685 (already voiced)
Some of the splashf messages that were converted
to support voicing in commit 39f8685 already had
a voice equivalent that was more appropriate,
since it also voiced parameters, and included
pauses between announcements where necessary.

Change-Id: Ia91a01c82acd6148afb4afadd64b1105802aea36
2025-05-28 11:18:29 +02:00
Christian Soffke
348054712d fix red f3d127f372
Change-Id: I62e7f16c49d8e6f7f8645e1f27ee4fa0cfecee66
2025-05-27 05:46:19 +02:00
Christian Soffke
f3d127f372 Minor confirm prompt adjustments
* Rename LANG_RESET_ASK to LANG_ARE_YOU_SURE,
  so that it matches the actual language string
  (translations remain valid), and can be repurposed
  for generic confirmation prompts, where the
  first line says "Are you sure?", and the second
  line reiterates the selected action

* Add "Reset Settings" as second line to the prompt
  shown before resetting settings, instead of just
  asking "Are you sure?"

* Make Shuffle prompt consistent between WPS and
  Playlist Viewer, and ask whether user is sure they
  want to Shuffle instead of warning them that the
  current playlist will be erased, which was a bit
  misleading

* Explicitly say "Cancelled" when user answers NO to
  erasing the current playlist or to overwriting a file.
  Improves consistency with other prompts that are
  displayed for potentially destructive actions, e.g.
  before items are deleted, renamed, saved, or reset.

* PictureFlow: Prompt before rebuilding/updating cache

Change-Id: Id8ae36db7187315eb1a374701307e6ab4dcdbd1d
2025-05-26 23:15:53 -04:00
Solomon Peachy
57f3f290c9 warble: Fix build in light of ci.strip_filesize
Change-Id: I8fb7b04c71f588258496cf353fb01df3b38da227
2025-05-26 11:51:26 -04:00
Roman Artiukhin
38105860dc Codecs: mp3: Move strip tags to codec
Another fix for FS#13626 (replacement for 2bd88936f7)

Change-Id: Ife5f65539457559fd908d0048d4df94649b0b894
2025-05-26 10:59:56 -04:00
Roman Artiukhin
78903e9d38 Reapply "buffering: remove bufgettail/bufcuttail"
This reverts commit 2bd88936f7. Strip tags functionlity will be moved to codec.

Change-Id: Iff28ff7a29da09632ceed30a7959cc1ee8bf3cc8
2025-05-26 10:59:56 -04:00
Christian Soffke
e7110c0beb macos: tools: configure: use GCC 15
Matches updated GCC Homebrew formula:
https://formulae.brew.sh/formula/gcc

Change-Id: I9b8e66a16ccfaf840fd50bbe313cae33e44d4f11
2025-05-25 14:46:16 -04:00
Solomon Peachy
efefe143bd ibasso: Fix a build warning that got lost
Change-Id: I51287f5cdd7f07d9407ed6aac949d4e389d6df0e
2025-05-25 11:02:27 -04:00
Solomon Peachy
adb49159ce winsim: Build fixes for current mingw64 cross compiles
Change-Id: I5d523a4aa0ca9044b8f83ae6aafd4f3705ff96d6
2025-05-25 07:56:05 -04:00
Christian Soffke
667d6c140b plugins: main_menu_config misc addendum 5efb6d7fac
handle USB or shutdown events, exit for ACTION_STD_MENU,
and eliminate unnecessary list redraws

Change-Id: Ieedf75805f3a859d1aeb85ef51253636d8870fb6
2025-05-24 02:57:37 +02:00
Solomon Peachy
33c74d948c convbdf: Replace magic number with #define shared with main code
Change-Id: Id46d5f2fe88fdaac94d00b1a4810ab161baad35b
2025-05-23 18:55:11 -04:00
Christian Soffke
5efb6d7fac Settings menu: add main menu customization
Lets you launch the main_menu_config plugin
from Settings, so that it remains accessible,
even after all other menu items have been
hidden.

Includes minor changes to the main menu config
plugin, so that it better fits in with the rest
of the settings menus:

* Keep theme enabled
* Autosave
* Add "On" or "Off" suffix to each item, to prevent
  confusion when Icon_Config is blank, as is the case
  with certain iconsets
* Update current selection after swapping items
* Prefix spoken selection with row number for enhanced
  clarity when swapping items
* Change title to LANG_MAIN_MENU
* ACTION_STD_OK to toggle an item's visibility
* ACTION_STD_CONTEXT to access options for reordering
  menu items, or for reverting to the default menu
* Ask for confirmation before reverting

Change-Id: I74240b94243224c76e23ef8f3a0559bd8ba28df0
2025-05-23 14:28:29 -04:00
Vencislav Atanasov
dbeefebcad Change playername.txt default value
Replaces the "Rockbox!" string in playername.txt with the player's model name, in case the file does not exist at boot.

Change-Id: I458b6b89d0d998d8cf889d01122b01cee42b21c5
2025-05-23 11:45:41 -04:00
Roman Artiukhin
9e95b337cc Codecs: mp3: Skip attempts to recover from buffer errors when the stream has ended
Change-Id: I81a636b48ea1e55de1dc8911a20d84f0f73c43ad
2025-05-23 11:35:47 -04:00
Solomon Peachy
2f6ecaf3c2 convttf: Switch to c99 fixed size integers for fnt file header
Change-Id: Idff55a88a9bddaec42e568cf3c3ff3f6df15ec34
2025-05-23 09:01:56 -04:00
Solomon Peachy
adaae1731f tools: Switch CFLAGS to -Os -Wall -Wextra
(From -Og -W -Wall -pendantic)

Change-Id: If094a22e7c7cd4fb175909fd12b9d8de514f1f38
2025-05-23 09:01:56 -04:00
Christian Soffke
83a8fc4c7e voice: output_dyn_value: fix scale
regression introduced in 15e5237

Change-Id: Ib107be08d2712b9c74e2795180ac8565c146af0b
2025-05-22 19:41:46 -04:00
Vencislav Atanasov
614c6e9500 Remove flashing text with the player name from the Next track label in WPS
Currently, in Cabbie v2 there is a demonstration of the %ft() tag, which shows the player name (or Rockbox! if not configured) for a second between switching tracks, or every 5 minutes of playback. This is confusing for a couple of users (including me), does not bring any useful information, and is removed from the theme. The tag and its documentation are left intact, so theme developers can make use of it in their themes.

Change-Id: Id3c79f442e4836a78d24997bd66e01c08206dd18
2025-05-23 01:38:50 +03:00
Solomon Peachy
08a6f804ce ibasso: Use correct API to query power input and charging state
Instead of using the generic hosted sysfs code, which expects
a full path, the ibasso code's sysfs code uses an enumeration.
Unfortunatley the generic power input/charging code used the former
API but linked with the latter.  oops.

Correct this by placing a private copy of these functions in
the ibasso-specific port, and removing the generic version from
that build.

(A "proper" fix would be to rework all 17 of the ibasso sysfs calls
 to use the generic sysfs API)

Change-Id: Ic13adc9782d85560f0c74d77f60a629619d38668
2025-05-22 07:15:15 -04:00
Solomon Peachy
2bd88936f7 Revert "buffering: remove bufgettail/bufcuttail"
This reverts commit 9e93796407.

Fixes FS#13626, which is caused by non-audio ID3v1/APE tags at
the end of the audio data stream.

Change-Id: Ic69af14a5d1264b7896a54b5f2ad314022dd98ac
2025-05-20 07:51:48 -04:00
Roman Artiukhin
3cb4e63253 strnatcmp: Sort dots first
Moves special folders (like .rockbox) on top and makes filenames sorting look more consistent with folders sorting. See https://forums.rockbox.org/index.php/topic,55303

Change-Id: I6ffd9b3ea0acfcbab69f09415f4e9f53737e7769
2025-05-18 22:50:05 -04:00
Roman Artiukhin
e08b8fcc74 strcasecmp: Optimize size and speed
Applies changes similar to strncasecmp in 64c0cfb0.

Change-Id: I5f80b0031dd12c58d982578f5c5224c7f59cd915
2025-05-18 16:57:35 -04:00
Solomon Peachy
3e92a11618 FS#13625: Disabling voice menus didn't entirely silence playing_time plugin
Change-Id: Id8b472fdfc51d837810fb36bce815d4a7b67b712
2025-05-18 16:08:33 -04:00
Solomon Peachy
afcebf1b48 Fix sea of errors introduced in cde144233b
I swear I compiled this successfully; clearly I had not.

Change-Id: Id604abeeeb895aa9c61acaad261b7190f0140089
2025-05-17 18:40:47 -04:00
Solomon Peachy
39f86858c4 voice: Convert a pile of splashf() messages to be voiced
Basically, this just replaces str(STRID) with ID2P(STRID).

The voiced version of these strings cannot not have any format
specifiers (enforced by the language tooling) and are instead more
generic.

As many of these are error conditions, it is doubly important for
them to be voiced in some way.

There are some places in the code that perform their own voicing
for splash messages (eg the shutdown code); those are left alone.

Change-Id: I7d51af351e8fa5c4beee42fbfc02719f1d6591b8
2025-05-17 17:33:46 -04:00
Solomon Peachy
cde144233b misc: Suppress -Wformat-security when building with GCC7
Making splash -> splashf means its arguments are now checked
at compile time, but the "format" is nearly
always one of our virtual pointers instead of a string/format
literal.

Our gcc494 (and upcoming gcc950) toolchains handle this fine,
but simulator builds with gcc7 complain about this, so suppress
the warning for those environments.

(GCC 12, GCC 14, and GCC15 all seem to be okay with this too)

Change-Id: Ifaf061f14e2552db73a7515f61950ad83116e8b5
2025-05-17 17:30:09 -04:00
Solomon Peachy
622ff574e7 splash: splashf() should be voiced if given an IDPTR
Most calls to splashf() use str(IDNUM), those can be safely
moved to ID2P(IDNUM) now.  Those will follow.

This change effectively makes splash() a simple wrapper around
splashf() so just make it into a #define instead..

Change-Id: I820e74e34cb4be3f523b25ce3f5dcc341bdba3e4
2025-05-17 16:13:58 -04:00
Solomon Peachy
4ab056ab15 database: Respect global "talk menu" setting in the database tree
Should fix FS#13625

Change-Id: Ibc6210be45941b2074da1e5c11536bcd31b5ac8f
2025-05-17 08:27:33 -04:00
Solomon Peachy
944026f2b7 rbutil: Correct typos in the language names
Change-Id: Ib6f66d528a03e64255407fb4bba4aca4fde1ee8b
2025-05-11 09:38:51 -04:00
Solomon Peachy
1d7e9d4910 rbutil: Show language names in their native script
Change-Id: I02a9a05dc3cfe2484285868e1ead6c44d0e2989a
2025-05-09 11:36:12 -04:00
William Wilgus
92b786a0fd Don't turn off backlight while buttons are pressed FS#13391
while scrolling lists or seeking in a song with several second
backlight timeouts the screen turns off even though you are currently
pressing a button

Try #2 moves the logic to button_tick()

Change-Id: I32455eb578cc578b4cbd4b4dc16325970cf9dc29
2025-05-09 11:18:38 -04:00
Solomon Peachy
077f44ca41 rbutil: Pull voice-corrections.txt out of voicestrings.zip
If the corrections file is not present on the target, then
fall back to the (probably outdated) compile-time builtin version.

Change-Id: I9904b81b2f3737149fc8a905ecd03ff54782bbdf
2025-05-09 09:26:14 -04:00
Solomon Peachy
bb20b5c6bf rbutil: Don't stub out PlayerBuildInfo in tests
Change-Id: I75667bc291828c1d4c548ab8f92c43a7a7fb892e
2025-05-09 08:38:24 -04:00