Commit graph

17478 commits

Author SHA1 Message Date
Christian Soffke
cb7ae38fcd plugins: properties: fix and refactor
- prevent buffer overflow that could theoretically
  happen if an input file's dirname were larger
  than sizeof(str_dirname)
- remove has_pl_extension, use existing filetype_get_attr
- move determination of props type to single function, and
  eliminate need for redundantly reading the container dir
  for a file

Change-Id: Ice7cfcb9d891d22a8eb549439569dda126435bc2
2024-07-30 16:07:40 -04:00
Christian Soffke
a430120b3f plugins: properties: delay UI viewport update
Looks a little nicer whenever loading takes
less than 0.5s

Change-Id: Ied6c03fa8b06009f442d8c51aeaa49ad09b89db1
2024-07-30 16:05:29 -04:00
William Wilgus
e3097bf92c [Feature] File Picker Plugin
allows viewers to pop a file browser to let the user pick a relevant file
which then gets run by the viewer

(only lua so far)

Change-Id: I7e6b4c2827fab5e9f596d336f546100636c4b871
2024-07-30 14:55:07 -04:00
Solomon Peachy
1a54398a33 fonts: Forgot to add the additonal Terminus sizes to the config
Change-Id: Ifffbc1252213c7cdef8c926cd5a2ed7c7bde0fa9
2024-07-30 08:15:24 -04:00
Roman Artiukhin
b918ec531b QuickScreen: stop for first/last entry on repeated actions
Stops on first/last setting value when you switch quick setting using long button press. Useful for long settings list (like Skip Length).

Change-Id: Id7ddae4f70554e7f523661e5f0e09f5e4d5d32fd
2024-07-29 18:20:39 +03:00
Solomon Peachy
d5a4230901 talk: Make talk_fullpath() do the right thing when voicing a directory
The component after the final '/' can be a directory, so don't
unconditionally treat it as a file.

Also check to make sure there is something after the final '/' otherwise
we end up voicing it as '//'

Change-Id: I56d69ea3f299e524df29c328ec9eeb3cfc22ff42
2024-07-28 17:02:43 -04:00
Solomon Peachy
c5e1539c74 talk: When mangling paths, use PATH_SEPCH/SEPSTR
Strictly speaking all of our paths need to work this way..

Change-Id: Id30d26cccdb80eceb7daf9ad04dfd53591b1921f
2024-07-28 17:02:28 -04:00
Solomon Peachy
86bff6214d properties: Use talk_fullpath() for voicing directory names
Change-Id: Ib40c881e7b3053e7e4ef5c5adbe5c3bfec27efed
2024-07-28 17:01:53 -04:00
Solomon Peachy
78283bda64 talk: Voice the volume name when browsing and when voicing full paths
Change-Id: I56660e168edd135a09cd5c021504a58ec9d40093
2024-07-28 16:54:33 -04:00
Christian Soffke
70b96193e7 plugins: properties: use UI viewport for displaying progress
Prevent switching to a fullscreen view when scanning
a directory, which could be a bit jarring, depending
on your theme of choice.

Also pop context menu activity immediately, without
refreshing, so it isn't redrawn when returning from
plugin.

Change-Id: I021e5880505e7f121163851ae732eb47509cc5d8
2024-07-28 20:18:43 +02:00
Christian Soffke
545271c4de plugins: extract redundant functionality from stats/properties
Also:

- Enables cpu boosting for Stats
(*much* faster on some players)

- Displays file size in Stats

Change-Id: I888ba054e1f8c2985fbf8dca36e11e6ef130e7ca
2024-07-28 20:18:41 +02:00
Christian Soffke
6d19214eeb list: remove redundant setting of icon callback to NULL
gui_synclist_init already does this for us

Change-Id: I1288d389c6191416cbc3da37a333b1cad84ee779
2024-07-28 15:33:11 +02:00
Christian Soffke
68fc5b4a7a plugins: playing time: fix missing voice
appears to be a regression from 5d39d987c0

Change-Id: I7b6907338aa647ba3253d56c304a143ab75d7aa0
2024-07-27 19:45:56 +02:00
Solomon Peachy
566d99aced voice: Switch default English Piper voice to 'en_GB-semaine-medium'
The former one ('cori') had some very pathological corner cases
especiallly when voicing single letters. This one is just
better all around.

Change-Id: I275256a637cf70ba196aafdecc24038bfe841955
2024-07-27 07:47:12 -04:00
Christian Soffke
a64faae09e plugins: properties: optimize slightly
- We only have to update stats->dirname when entering
a new directory, or when id3cb needs to be called
- Reduce frequency for calling get_action and LCD update
- Replace dir_stats->len and hardcoded MAX_PATH with
sizeof
- Don't show paths in Properties during scanning
- Don't show error when user cancels

Change-Id: I4afbeba561e69188e8039fa8d91eb1e91318bdab
2024-07-26 21:16:13 +02:00
Christian Soffke
b52e72db36 plugins: playing time: improve precision
Add up length and size of tracks in ms & Bytes,
then only convert units to s & KiB at the end.
Otherwise, the result can be noticeably off when
dealing with a large enough number of tracks.

Change-Id: I2a3e502508089830f63b24c3bbdbb0ab8f57cabe
2024-07-26 21:16:13 +02:00
Christian Soffke
23e5f77ab0 Remove mp3info function & remove list_do_action from plugin_api
Change-Id: Ia9a2d6889679832f23b19a989927277ba886cba4
2024-07-26 15:15:06 -04:00
Solomon Peachy
13830439fa Fix multidrive/multivolume hosted builds.
Generalize the fix in 2348779ae6 to apply to hosted as well as simulator
builds.  Original regression introduced in c0ac043c6d

Change-Id: Ia786533cc318555e3bb842eb21a73a1f76888379
2024-07-26 10:54:07 -04:00
William Wilgus
e94f778f1c plugin argparse update to add userdata to callback
fix a couple of gotchas if you aren't using NULL terminated strings

Change-Id: If5d2a60c0c3e1653e26df50bfda7d3191989bca9
2024-07-26 00:56:13 -04:00
Solomon Peachy
10e883fe02 FS#13455: Updated Italian translation (Alessio Lenzi)
Change-Id: I6526acf718639961e7942fac69b67f401d9e6af9
2024-07-25 17:16:47 -04:00
Vencislav Atanasov
780c05a64d Fix empty string in the Bulgarian translation
From the Rockbox Translation website:
When the English language is set to "" or none, the translation should follow. The strings below don't do this. This is an error and should be fixed.

Change-Id: I4a6946170bf6bf5b4b1f14ebc4f8b3be6ff2f985
2024-07-24 11:50:33 -04:00
Franklin Wei
cd1922fe74 puzzles: update documentation and copyright year.
Change-Id: I50731664f278f76946f96529f4ec696c9c115589
2024-07-23 20:56:05 -04:00
Solomon Peachy
254eaf509e Fix the final two Bulgarian translation same-as-English issues
Change-Id: I6ec904ad0062a3a9b2c909f33a5ec14831471ce3
2024-07-23 15:57:40 -04:00
Christian Soffke
8d436561e2 plugins: playing time: use cpu_boost + simplify a bit
Change-Id: I860621530af1d5c6a6de9651fc81e235e43ece97
2024-07-23 21:14:31 +02:00
Vencislav Atanasov
dd58b05f61 Update Bulgarian translation, part 2
Change-Id: I1480fef46e05bde23a5a2d62b34f14f6bb5387b6
2024-07-23 20:31:09 +03:00
Solomon Peachy
a153f6c266 voice: Add defaults for Bulgarian voicing, and add it to the nightly builds.
Change-Id: I40e9eaf34c68c3e1f77591862f5c4eb6c2a2c059
2024-07-23 12:15:27 -04:00
Vencislav Atanasov
ba4a6f2adc Update Bulgarian translation
Change-Id: Ida1cc237f7e8dab0e7a2afe4c39cfd6a49073418
2024-07-23 18:56:44 +03:00
Franklin Wei
62b0456a4b puzzles: resync with upstream (adds new Palisade cursor interface).
Resyncs properly with this slightly modified upstream:

https://www.franklinwei.com/git/puzzles/commit/?h=rockbox-devel&id=1c62dac3f4f1a819a394ff33cc82912cf9079b50

Change-Id: I2018e81647c22010f9d74d8d14d13982f2969a8f
2024-07-23 06:05:45 -04:00
Franklin Wei
09aa8de52c puzzles: resync with upstream
This brings the puzzles source in sync with Simon's branch, commit fd304c5
(from March 2024), with some added Rockbox-specific compatibility changes:

https://www.franklinwei.com/git/puzzles/commit/?h=rockbox-devel&id=516830d9d76bdfe64fe5ccf2a9b59c33f5c7c078

There are quite a lot of backend changes, including a new "Mosaic" puzzle.
In addition, some new frontend changes were necessary:

- New "Preferences" menu to access the user preferences system.
- Enabled spacebar input for several games.

Change-Id: I94c7df674089c92f32d5f07025f6a1059068af1e
2024-07-22 21:44:08 -04:00
Solomon Peachy
e8257580c6 voices: Add Korean (using espeak-ng) to the nightly voice build set
Change-Id: I8dd3db1fa571353e8a3c06fb6db0d8205530bfd5
2024-07-22 20:27:24 -04:00
Christian Soffke
9a84e9eb34 tree: fix return to root after adding to existing playlist
When adding files to an existing playlist from
the database or file browser, Rockbox returns to
the root menu afterwards.

Appears to be a regression introduced in commit 72c539d
for the file browser. For the database, it has only
become noticeable since commit 188f025

Change-Id: Iac48fe74d20d25f083005f6ebff5abc7ee425080
2024-07-22 15:56:00 -04:00
Solomon Peachy
20948c1b0e FS#13454: Updated Korean translation (Hoseok Seo)
Change-Id: I15859834de4af66333a3738e1be01aa3d44cf42a
2024-07-22 13:43:00 -04:00
William Wilgus
7720b0c4e4 [Bugfix] crashes on usb unplug, extra text on USB screen, viewportmgr ovfl on sim
make _lists_uiviewport_update_callback a oneshot
and reset it each call of list_do_action_timeout()

block multiple runs of gui_usb_screen_run() in the sim

Change-Id: I0c0429c42622c82bcf481ad13efdc47e9055a1bb
2024-07-22 10:27:24 -04:00
Solomon Peachy
2bb9323de8 FS#13429: Add a freeform "player name" configuration setting
The idea is that a theme or whatever could use this to provide visual
differentiation (eg "George's iPod") between multiple
otherwise-identical players..

Defaults to an empty string.

Added to the manual but there is not a way to set this through the
menus yet.

Change-Id: I1cff6b19d621dd6207b4b82eed67741ce2da0ef1
2024-07-22 09:42:05 -04:00
Vencislav Atanasov
ca332b5473 Fixes for the SysCfg viewer
- decrease max entries to the required minimum
- merge two info lines
- fix value in too many entries error message

Change-Id: I72eeca5dd9c7c2fbb4978d0972d4db532dfa901e
2024-07-21 18:12:46 -04:00
Solomon Peachy
f3a5fe2738 FS#13453: Updated Polish translation (Adam Rak)
(Another member of the growing 100% club!)

Change-Id: I82287d1a03e6a749066f72129942ed74e6f1465c
2024-07-21 16:29:07 -04:00
Roman Artiukhin
fe5375a6cb Improve Crossfade handling in Single Mode
Crossfade (see Playback Settings -> Crossfade) now works between songs in Single Mode (see Playback Settings -> Single Mode) unless it’s the last song to be played.

Change-Id: Icfe3d48459bb35bbc050f237a68b27e793ab9152
2024-07-21 11:51:02 -04:00
Solomon Peachy
9f366b1b8a voice: Flag ':' in voiced strings.
Also corrected the 100% languages:

   English, English-US, Chinese-Simplified, German, and Italian

(There is one Italian string I didn't know how to fix)

Change-Id: I958c6737810ad0199333d17fc092eab3120cef40
2024-07-21 11:22:24 -04:00
Solomon Peachy
370fde68ab Fix Korean VOICE_LANG_NAME
It needs to be "korean" not "english"

Change-Id: Icf984c64d33a707d25afed90591d0eff7ed78884
2024-07-21 10:54:49 -04:00
Solomon Peachy
7c565fd40d Fix a typo in the Korean translation
Change-Id: Ib97098e065a904606be7b5d1fc61d890ccea828b
2024-07-21 09:46:59 -04:00
Solomon Peachy
06123c3606 FS#13452: Major update to Korean translation (Hoseok Seo)
...It's nearly complete!

Change-Id: I660f6f3b8bdb46d052a47860659f7041e77e3217
2024-07-21 09:45:12 -04:00
Christian Soffke
a286555578 plugins: properties: Add Directory Track Info
Change-Id: I4bf5ececc73a52afa6c5ff46f23b5ad2368826c0
2024-07-21 13:50:39 +02:00
Christian Soffke
a983e532fa Track info: Hide codec when it differs between tracks
Instead of showing '???', to make it consistent
with other displayed info

Change-Id: I5597bd2203f6e4e86d8e170a854dd6da700537f3
2024-07-21 13:09:14 +02:00
William Wilgus
188f025f51 [Bug Fix] Data Abort on Usb Unplug, database browser ran on USB dc
current_lists holds a pointer to whatver the current list is only problem
is when in one of the function type menus like the plugin viewer, playlist viewer, shortcut menu
probably a few others on usb unplug current_lists holds stale data and updates the list however
the data has already been freed when the function returned

the issue with db browser was a return of true from dirbrowse() which was the value 1 which is the
enum for GO_TO_DBBROWSER

Change-Id: I7349dfab2752e11f8e746925501740e959851cd5
2024-07-21 01:45:25 -04:00
Solomon Peachy
6bfcba4422 FS#13450: 100% Chinese-Simplified translation (Medu Hedan)
Change-Id: If6911a2f6f6b912c35379f46cc5f4635f1557c7a
2024-07-20 10:41:34 -04:00
Solomon Peachy
4e953434c3 FS#13446 - Updated Korean translation (Hoseok Seo)
Change-Id: I127ca48fac9ad8c75b529f2718b564e5bc8a9759
2024-07-20 09:13:38 -04:00
Solomon Peachy
66b0280bb1 FS#13445: Fix AI regression in Superdom (Uwe Schächterle)
The fix in e72bae7c3f was subtly wrong due to variable re-use.

Change-Id: Ibad3ad675a70682580dda0e7b2097702aa880524
2024-07-20 08:25:05 -04:00
William Wilgus
f24271c73c [Bugfix] Plugin Viewer Don't display SYSTEM folders or Volumes
recent changes added first level folders to the plugin viewer
inserting a drive enumerates new folders into the namespace of the plugin viewer
filter these entries OUT

Change-Id: I53c383584511b54940f9dffec4737107a69f6673
2024-07-20 08:19:14 -04:00
William Wilgus
7e90760a48 [Feature] Playlis to cue plugin
generate valid cue files from a playlist

uses remarks to store extra id3 info and display and playlist index

Change-Id: I00c9f6389445bb601dde6eb8f36157044024f8cb
2024-07-20 07:27:01 -04:00
William Wilgus
072228bb70 [feature] playlist. show search progressbar when iterating playlist entries
Change-Id: Ib38363f7495ca523e7cc401c0d39e060ed1705ad
2024-07-20 00:08:39 -04:00