Commit graph

17401 commits

Author SHA1 Message Date
Solomon Peachy
b4bcabe532 Update english-us "Translation"
Change-Id: Idcebbb841bfa9df2e21abdd7626a7550d8b8f266
2024-06-24 11:17:23 -04:00
Solomon Peachy
a9254da767 build: Fix yellow introduced in 5d39d987c0
Change-Id: If17a04922006e1fa1f65543563da69f8bb6c503a
2024-06-24 10:59:27 -04:00
Roman Artiukhin
95d8168385 plugins: playing time: Increase buffer for size strings
10 is too short for some localizations (for instance russian 103.23МиБ requires 13 chars due to utf8 encoding). Use 20 instead

Change-Id: I4c7d1233358c8322545fce45dc798691410dd21e
2024-06-24 16:59:14 +03:00
Roman Artiukhin
5d39d987c0 plugins: playing time: Show info in 2 lines (header + details)
Improves readability on small screens.
See WPS -> Context Menu -> Current Playlist -> Playing time

Also, Russian translation is adjusted accordingly.

Change-Id: I23662ccb324f07a742179ff274453416bb8eff08
2024-06-24 16:59:14 +03:00
Solomon Peachy
4c9d346cb2 translations: Add VOICE_LANG_NAME for Czech.
Change-Id: I415fa9b49443954b2d8c839b3c70475048542b85
2024-06-23 14:18:47 -04:00
Vencislav Atanasov
4ea3732bd7 Add ATA serial number to Disk info debug menu
Change-Id: I73cc3d85ac28c7bd090859b6c19a5b67a41cfa04
2024-06-23 07:29:15 -04:00
Solomon Peachy
a1c526f35f lua: Fix Windows Simulator build.
(Basically, use the OS-provided gmtime() instead.  It's pulled in via
 another header we need..)

Change-Id: Ia09609a3a38dc58133a4a209cc803f0d9d0802f4
2024-06-22 10:06:47 -04:00
Solomon Peachy
231797dfa8 mikmod: use -DMIKMOD_STATIC to make building under windows happier
Change-Id: Ib42c336d592358c7b53bbd94d43c69ed9977679f
2024-06-22 10:03:01 -04:00
Solomon Peachy
fa6b6b6c2d talk: Don't kill the talk engine after voicing the "invalid voice" clip
Unfortunately, this brings us back to the "Default" behavior of simply
not voicing talk clips at all if there's no voice file.

Change-Id: I457ec4e3fcefaaffcbf6222fe01617bf0903518c
2024-06-22 07:03:59 -04:00
Solomon Peachy
e100daf343 voice: Voiced strings for INVALID_VOICE and LANGUAGE_NAME
* Voice generation script will create standalone .talk clips
 * These talk clips will be included in the rockbox .zip file
 * All .voice files will be included in the rockbox .zip file
 * Added LANGUAGE_NAME for all languages in the nightly builds

This way, any voice pack installed will give you a the langauge
voiced in the browser, and if the voice file fails to load you
will get a natively translated error message.

Change-Id: I6b627a51746cd088d6e200666dd326ea2745f55f
2024-06-20 17:31:31 -04:00
William Wilgus
8cb8a30f9d [Feature] talk.c allow Invalid voice files for selected language
(if it exists)

Change-Id: I3aacfc31e3e8a9cac7c9dae0e99c234e43da953a
2024-06-20 16:00:27 -04:00
Solomon Peachy
53a43522a3 mikmod: Fix null pointer dereference in mikmod plugin
While playing, the user can switch between
status/samples/instruments/comments screens.  The instrument names are
blindly passed to printf, which will lead to a null pointer dereference if
the instrument name is NULL.

...Which happens with some .IT modules that I have.

This should arguably be fixed in the printf implementation, but we still
shouldn't be passing in NULLs as string arguments!

Change-Id: I2899e2f7e10565c251e495752b3ef1bbccea82c7
2024-06-20 15:16:22 -04:00
William Wilgus
4d0d41a0f4 [Cleanup] abrepeat.c
ab_repeat_init() doesn't do anything and some of the checks are redundant

Change-Id: Icc861c57b119f541c0cbdb9e0074b78f1f4f10bb
2024-06-20 11:14:27 -04:00
William Wilgus
204551444e [Cleanup] viewport.c
hopefully the order of the events enable / disable don't matter
as far as I can tell it doesn't

Change-Id: Ia6bbe83ede788712e67aae6599585d6f79bfbcdc
2024-06-19 14:28:28 -04:00
Vencislav Atanasov
b3e6b12266 Prevent rebooting in early USB mode in case of a RAM disk
If disk_mount_all() fails at startup, the device should enter USB mode,
so the storage can be repartitioned/reformatted. After
unmounting/ejecting, the device is rebooted. Unfortunately if the
storage is a RAM disk, the data won't persist after a reboot, so this
patch tries to mount the storage again, instead of just rebooting.

Change-Id: I421a9fd8ae536bee07d292f27d1da0615456df62
2024-06-18 20:45:40 -04:00
Solomon Peachy
eb2146d683 plugins: add lang_is_rtl() to the plugin API.
So plugins can put stuff in the correct order, if they care.

Change-Id: Iac322bcb8cf78b37d3caef4c8d7b2a14923669f4
2024-06-18 12:50:52 -04:00
William Wilgus
70c5d6239e [Feature] splash.h split too long strings to multiple lines
If no split tokens are found the string just goes off into space

instead shoten the string till it fits and continue on with the
remaining string

Change-Id: I7fa3619fe8c75ec6c849996d4c3518409938152b
2024-06-18 09:52:41 -04:00
Solomon Peachy
73f40d8a23 build: Experimental LTO support, phase one
* Only codecs and plugins are enabled
 * Only native builds (so far)
 * Only tested on xDuoo X3 (MIPS, monochrome)
 * opus & speex generate some warnings
 * Significant compile time impact

Change-Id: I519b0d179631a54b2103cd67225bd5ec6ad3bd2f
2024-06-18 08:15:47 -04:00
William Wilgus
de4a08f319 [Bugfix] filetree.c ft_assemble_path() absolute currdir
path_append throws away the basepath if currdir starts with a slash
I thought I had this fixed but it was just getting covered up

instead step past all the slashes and use that for our append dir

Change-Id: I170a2af99455cea09e6e695dfb89fdd42733bd4b
2024-06-14 01:40:19 -04:00
William Wilgus
935fb736e8 [FixRed] tagcache.c
I think this should be APPLICATION for hosted

Change-Id: Id0d2107bff004abf6762a8c0643b0bd872c6a24e
2024-06-13 07:52:46 -04:00
William Wilgus
633b06dcfe [Bugfix] tagcache.c reverse conditional for native targets
Change-Id: Icad11d2182586a1401bc46053273207a1283c73e
2024-06-13 07:17:01 -04:00
Solomon Peachy
4d9c7e2063 Improve the "No partition found" behavior.
(This is a different implementation of the fix in g#5726, by Vencislav Atanasov)

The core problem is that the user is prompted to insert a USB cable
to fix the partitioning etc but the code that monitors for USB insertion
hasn't been started yet.  Correct this.

If no USB support is present, reboot after 5 seconds if it's not a debug
build.

If USB support is present, want for insertion first, then do the
reboot-if-not-debug behavior.

Change-Id: I87827e7fe2fe9a02298918c6ebc4d8a9fb33d624
2024-06-11 15:21:02 -04:00
Solomon Peachy
ec23260fd1 mikmod: Settings names should _NOT_ be i18n'd.
Regression was introduced back in 2019 in 2ebb8da275

Change-Id: I035e295b4e17e1f834059d1c6466562000749e54
2024-06-11 10:13:40 -04:00
Solomon Peachy
c97954f014 FS#13434: Partially internationalize the textviewer plugin
* Converted over all previously-translated strings
 * Lots of comments added to mark the next phase
 * Voice filename of the file being loaded if possible

Change-Id: Ia3219bbfa4505ad29a25bcf1d6eacc94c59a2a83
2024-06-11 09:53:40 -04:00
Solomon Peachy
8c6b579b32 FS#13435: Update Polish Translation (Adam Rak)
...Also list Adam as the Polish language maintainer

Change-Id: I51501af0f341372eb999e94dc4bcb136c7e6a884
2024-06-09 09:03:50 -04:00
Solomon Peachy
b222e909d4 lang: Update english-us "translation"
Change-Id: Id63b12a2afb27e611b174bbb7cc4f954834d0383
2024-06-08 19:03:35 -04:00
Solomon Peachy
46ec07e4be mikmod: partial revert of previous commit.
The strings in the struct configdata[] are only used in the settings
file, and not displayed.  Therefore there is no need to translate them.

Change-Id: Id9e03c4b0454412b319ad678e6f57a46e1da0f6e
2024-06-07 18:10:48 -04:00
Solomon Peachy
20f50bbca3 plugins: mikmod and chessbox weren't fully translated
This unfortunately required adding four more strings.

Change-Id: I656c3c4902de5f841ea742549b3d122463e399a8
2024-06-07 17:47:17 -04:00
William Wilgus
3b9d804bdf [coverity] playlist.c format_track_path() guard NULL pointers
Change-Id: If029477ef9f38ee57b3afb7901d7429319675cc5
2024-06-07 00:38:20 -04:00
William Wilgus
4829c2c894 [coverity] settings.c int_to_string() string_to_int() guard NULL deref
Change-Id: I442b574ca27cf154697202a9fce7628cbcb6752d
2024-06-07 00:25:48 -04:00
William Wilgus
dbdcd8425a [coverity] tagtree.c tagtree_exit() ensure dirlevel is within bounds
max I could get was 5 with the default tagnav cfg
but we allow user code too so might be possible to exceed the depth

Change-Id: Icf37916400b464be4f75a723d64a71cd6c4be1fb
2024-06-06 10:53:11 -04:00
William Wilgus
f9b15d951c [coverity] folder_select.c find_from_filename() guard against NULL
its pretty doubtful you wouldn't find a slash in a folder path

Change-Id: Ibf2069f37c235716d4d90aec6d68410a93c2bdc6
2024-06-05 23:38:25 -04:00
William Wilgus
fb39d852b0 [coverity] tagtree.c tagtree_enter selected_item_history guard against overrun
Change-Id: I795b635d44b1002a557236dc8f78db79ab2c3348
2024-06-04 17:40:28 -04:00
William Wilgus
1b7d35126b [coverity] playlist.c pl_save_update_control fix rest of potential fd leaks
Change-Id: I65a8ac6a2ce68c5fd3cde570c3ff1b2e737d911d
2024-06-04 17:18:30 -04:00
William Wilgus
afba86f0f7 [coverity] playlist.c pl_save_update_control() close fd on error
Change-Id: Ib44e86a36540e65a15eed3e9b99106734379250d
2024-06-02 22:14:27 -04:00
William Wilgus
283f31dd39 [coverity] language.c lang_load() check bytes read for headers
Change-Id: I546f316692c6d0c201d36d3346aab7aab6cc4919
2024-06-02 22:07:02 -04:00
William Wilgus
ce6fbe4382 [coverity] cuesheet.c search_for_cursheet() if no dot strcpy to NULL
the logic here is a bit fuzzy to me maybe one of the copies to the cuepath
buffer adds a dot but I don't see anything explicit

Change-Id: Idcc469b5d04e4d9125b36df53d6aaa32a10f3bfd
2024-06-02 21:48:00 -04:00
William Wilgus
f4a044e561 [coverity] playlist.c get_track_filename() uninitialized buffer
format_track_path() uses path_append_ex() which might use strlen on the
existing buffer likely a false positive but cheap enough to guard against

Change-Id: I7061a434460f235fc58016f9dcf2dfe4633b9f59
2024-06-02 21:40:20 -04:00
William Wilgus
31ae252dcc [BugFix] Resume on headphone plug causes screen glitches
Change-Id: I396a662124a20420f6099522570c14cef4993205
2024-06-02 17:09:24 -04:00
William Wilgus
bbdba53413 [coverity] bookmark.c fix add_bookmark & false positive in remove_bookmark
Change-Id: Ifad76ac8cb297a8008127d4cd73056c5309167c1
2024-06-02 12:42:45 -04:00
William Wilgus
2e60316500 [coverity] skin_parser.c load_skin_bitmaps check buffer length for bm_data
Change-Id: Ia4496916bf32de332e054b62f1708b3e2ec8e7d8
2024-06-02 11:13:03 -04:00
William Wilgus
5c7fbe8f1b [coverity] tree.c set_current_file_ex explicitly check strrchr output
the math
        size_t endpos = filename - path;
        if (filename && endpos < MAX_PATH - 1)
should handle it just fine coverity doesn't think so

Change-Id: Ifa0494e56b40c8ab0081ebc771024a45cb24eb76
2024-06-02 10:41:50 -04:00
Solomon Peachy
5d34887d4a voice: regression: Don't mangle the filename when spelling it out.
26c612f breaks file selections if you have filename extensions disabled
and filenames spelled out, because it modified the filename in place
breaking the caller.

Instead of using a lot of space to make a private copy, the simplest
approach is, if we strip the extension off, simply restore it
afterwards.

Change-Id: Iaf560e813053b8030c620bbed6d061a2423338d5
2024-06-01 18:27:09 -04:00
Solomon Peachy
e16230de8c FS#13433: Updated German Translation (Wilfried Winkler)
Change-Id: I87bc658186d2b65caded0e7cde7b9c8110da000c
2024-06-01 15:07:03 -04:00
Christian Soffke
bcd34cfaa7 playlist catalogue (etc.): prune context menu
"Create Directory" option not applicable
in browse filter modes, since directories
do not get displayed

Change-Id: I68944264b03115f7f94254d9df766e5584d30e5a
2024-06-01 12:40:45 -04:00
Christian Soffke
507fa214a8 Fix red in 3d7d1d4d
Change-Id: I335495b8672c7b4d187400fa8b0abe511b110688
2024-06-01 18:25:41 +02:00
Christian Soffke
3d7d1d4d5b plugins: properties: show track info for whole playlist
Track Info can now be displayed for the set of
all tracks contained in a  playlist. This lets
you calculate a playlist's length, for example,
even if it is not currently playing.

This functionality can be accessed from the
existing "Properties" screen for a selected
playlist file. A line has been added at the
very bottom to show Track Info.

Change-Id: I311532b7cfa9e29d46c0cd5623ba4c06c1dd5b5f
2024-06-01 11:55:36 -04:00
Christian Soffke
ef1e7d8896 bookmarks: show 'Create Bookmark' for unsaved playlists
Instead of hiding this option when the current playlist
is unsaved, we can offer to save the playlist, if
necessary, before attempting to create a bookmark.

This simplifies the workflow by getting rid of steps 1
and 2 that a user currently needs to perform:

1) Open context menu, check if "Create Bookmark" option
   is available
2) If not: Re-open context menu. Select Current Playlist
   -> Save Current Playlist
3) Re-open context menu. Select Bookmarks
   -> Create Bookmark

Change-Id: Ia9fb5f9db95e2fcbde03470a3c3745824424a339
2024-06-01 11:42:47 -04:00
William Wilgus
d1aeb7db9d [Coverity] playback.c audio_auto_change_frequency check for valid id3
Change-Id: Ia213134c690f4c1de16afba38eea740825558280
2024-05-31 23:02:28 -04:00
Solomon Peachy
eaeaac598d FS#13431: Provide a way to view the rockbox license in the menus
This adds a "Legal Notices" entry under the System menu that will
launch the text viewer plugin to display:

1) COPYING.txt   (containing the GPLv2 overall license for Rockbox)
2) LICENSES.txt  (containing all other relevant licenses and notices)

Change-Id: Id41ae491b6f9a6ec5663090246d0f6b661cddea5
2024-05-30 21:22:01 -04:00