Commit graph

18109 commits

Author SHA1 Message Date
Solomon Peachy
210b5e602f FS#13561: Update Polish translation (Adam Rak)
Change-Id: I06ce6112825b7fa7c72951431a6ba2562c65e211
2025-02-09 17:05:41 -05:00
William Wilgus
a29af6e7c6 tagtree reduce size of get_tag lookup table
this is not a hot path only runs at start-up and tagnav reload
so speed is not so much of a concern

we can split the data into two separate tables to
remove the padding and allow symbols to be stored in uint8
(highest symbol <128) and do strlen at TOU

use uint16_t for get_clause()

Change-Id: I0f8663d0de9cac102f1d58b43bf200272754c466
2025-02-09 16:39:55 -05:00
Solomon Peachy
bb84e9def5 Update english-us "translation"
Change-Id: Ic9933064de5fc874cbdb395e822336fe623f2845
2025-02-09 08:41:57 -05:00
Solomon Peachy
fa0c81e0e4 french: Fix missing <phrase> syntax for LANG_RESET_EQUALIZER
Change-Id: I3415405e75a63f20a87f46addc6cba99922b3044
2025-02-09 08:33:54 -05:00
Paul Sauro
2e98889be3 tagtree: Special character/Numerical entry: reduce required CPU cycles to improve performance
Change-Id: I3939e417b78e674834af7154c4a1d0565f606aa7
2025-02-08 20:01:45 +01:00
Paul Sauro
d5fc0e4cb3 tagtree: "By First Letter" : fix numerical entry + add a "Special character" entry
- The "Special character" entry will show all special characters (non numerical + non letters)
- The numerical entry was bug, and could show some special characters from the ASCII table. It is now fixed.

Change-Id: I001fb322fab81918996e15e4d0ca6b7c9e5160af
2025-02-08 12:14:32 -05:00
Paul Sauro
2cf6a443b1 tagnavi.config: Add "Album Artists by First Letter"
Add a new entry, it is useful to go this way for large libraries rather than scrolling manually through the whole list

Change-Id: Ia54b613b4a5fa40863ebb176a549287d3a765a56
2025-02-08 12:14:32 -05:00
Paul Sauro
fa5d2f3edf Database view is fully translatable and entries can be voiced.
* All tagnavi.config entries pulled into language files
 * Database viewer looks up LANG_IDs from the entries
 * If we find a match, we can translate and voice these entries
 * Add (disabled) mechanism to allow voicing database metadata

Original patch by Paul Sauro
Modifications by William Wingus
Further modifications by Solomon Peachy

Todo/Problems:

 * Current Tagnavi headers are rather awkward in English
 * Can't voice the "By first letter" alphabetic entries
 * No mechanism for generating talk clips for DB metadata

Change-Id: Ic276ccda1bd8aae550d38be852bae4c6f697cd47
2025-02-08 12:14:32 -05:00
Roman Artiukhin
0847bcc110 metadata: opus, vorbis, speex: support embedded jpeg album art
It includes .opus, .ogg, .oga, .spx files

Change-Id: I3d0ee9806b05911fc8c3ce5cb761de87d4166141
2025-02-08 10:02:21 +02:00
William Wilgus
e09b466554 screen_access add set_drawinfo
Change-Id: I32e4932eb3a6f06d45aff2cd767484d254a1c9ff
2025-02-08 00:49:28 -05:00
Solomon Peachy
f60892e26c FS#13558 - Updated Simplified Chinese Translation (王吉)
Change-Id: Ifaa27865851694cd64593e1adc501fb8c9241f5a
2025-02-03 23:29:52 -05:00
Solomon Peachy
371797cf1f FS#13557 - Updated German translation (Wilfried Winkler)
Change-Id: Ib78162c9ae13397b27b76a69c316b8b7964584c1
2025-02-03 23:28:41 -05:00
William Wilgus
f55fe21f66 add itoa(), replace snprintf("%d") calls
we can save some space and still end up with a 20% faster function

Change-Id: Ia58900122944b8527ef01a673afe18ea794acb41
2025-02-03 01:23:49 -05:00
Solomon Peachy
9e61d53c7c FS#13556: Updated French translation (CHAPUIS Adhemar)
Closing in on that 100% mark!

Change-Id: If27f9820b6d96aabfaa642e3e387cb2704cb5795
2025-02-02 18:30:36 -05:00
Solomon Peachy
078699ef49 FS#13555: Updated French Translation (CHAPUIS Adhemar)
Change-Id: I6e9229710392cd85010230457c284f3ac3b21e81
2025-02-02 08:05:26 -05:00
Solomon Peachy
f82f925f23 FS#13553 - Updated Turkish translation (Mustafa YILDIZ)
Change-Id: I350c25b111bf7bc364b5de3a5670799594244cbd
2025-02-01 17:31:29 -05:00
Solomon Peachy
14ba18b1dd builds: Add Japanese to the nightly voice set (using gtts)
Change-Id: I77fb5601d45c008f72b613f8e67148ccca738b71
2025-02-01 13:34:01 -05:00
Solomon Peachy
e4179e4ff9 FS#13554: Updated Japanese translation (Emi Foster)
Not quite 100%, but _very_ close!

Change-Id: I56848fbd5ae3791828aacdae833a8742aeaab4a3
2025-02-01 13:05:53 -05:00
Solomon Peachy
c5103bab95 Translation updates:
* English-US (myself)
 * Italian (Alessio Lenzi)
 * Korean (Hoseok Seo)
 * Polish (Adam Rak)

Change-Id: I17e2e0a991c0bc221d60dbde6e2ec2e129c1780f
2025-01-27 11:22:44 -05:00
William Wilgus
4930fac05c [bugfix] run_debug_screen case-insensitive matching
Change-Id: If7ed57b34a7a13d7332742c117fdf67fc7e189d3
2025-01-27 10:27:25 -05:00
Solomon Peachy
8aa54286c4 Fix red in 43068ef270
Change-Id: Iea771deb777222908d85dc818a5f01ad6022881c
2025-01-25 15:47:10 -05:00
William Wilgus
43068ef270 [Feature] Set values of settings from shortcuts
Adds 'Add Current to Shortcuts' for settings alowing you to save
the current value and restore it with a shortcut

Change-Id: I0d5c5da9553248a70fd46d5553486ebf7865a20a
2025-01-25 15:13:13 -05:00
William Wilgus
bdf89bf4b0 settings set_file() cleanup unused maxlen and check for file exist
maxlen is set to MAX_FILENAME by all callers so lets just make that part of the deal
check the file exists before we set it

Change-Id: I3074f3164fcd4b8873b69612d5c1a51a39de4baf
2025-01-24 00:20:45 -05:00
William Wilgus
14898bc19e [bugfix] FS#13456 - Loaded FM preset list doesn't restore after restart
the fmr file wasn't being detected on multivolume targets

the global preset list couldn't be cleared once set

empty global preset file wasn't detected properly either

Change-Id: I9c4b40ed0b6f3dbb0d38eb668fc74a512ea34062
2025-01-23 23:58:10 -05:00
William Wilgus
277c66d9d2 : [bugfix,bugfix] ensure PREVIOUS tree_context dirfilter is restored on plugin exit
Change-Id: I521e8d660ca76744f5452643578c2f7e5651b870
2025-01-23 19:50:48 -05:00
William Wilgus
9bcf6a8bb7 [bugfix] ensure tree_context dirfilter is restored on plugin exit
rockpaint is the only plugin doing anything dit setting the dirfilter pointer
it appears to restore it but this is cheap insurance on weird crashes
that result..

Change-Id: I70c826d6ec4c9cb6e1539ab23f1de82ca3e67ad1
2025-01-22 00:33:54 -05:00
William Wilgus
f3a858e16c [bugfix] tree.c rockbox_browse dirfilter use after free, set_current_file_ex
rockbox_browse() set its own *dirfilter and then may neglect to restore it

set_current_file_ex()
can take a unified path and file or separate path and file

only issue is when you send a folder and don't have the final slash
its then interpreted as a file and current file is set to it
meanwhile path is split and you end up in the parent dir

instead if filename is null check if path points to a directory
if dir_exists(path) then we will use it as is and set filename to ""

Change-Id: I6beaa91141c1a4025cdfac5d6ba426137146c212
2025-01-21 22:10:46 -05:00
William Wilgus
3c9233e972 [Feature] shortcuts_view plugin remember last item and return to it on menu cancel
Also adds the ability to supply a directory without the final slash
you then are take to the directory but have the ability to travel
up one level above before exiting
when you hit cancel

Change-Id: I1091fbe496e2c7c34ecb2113ab1cd31b0c678d9d
2025-01-21 22:10:46 -05:00
William Wilgus
db477bdeda settings.c make lasttime static
statusbar can use reset_runtime() and we can ensure topruntime gets updated
before clear

Change-Id: I3712649fc394c42f911ec88404c831422872c25b
2025-01-21 18:48:05 -05:00
Christian Soffke
2debcf2c1f Fix %Vp in SBS error message after USB disconnect
Stops “Error accessing playlist control file” message
after returning from USB mode, due to control file
fd being closed

Change-Id: Ic4ecb276ef32f8dc24fe7e540742161b50934c73
2025-01-21 22:24:20 +01:00
William Wilgus
7100090f99 Remove NVRAM infavor of a separate cfg file
remove nvram and use the existing settings framework for it

add a crc check to the user_settings data to see if we need to save
the user setting file or if we can just save the status file (resume.cfg)

move volume to the system_status struct so we don't write the whole settings file
over volume changes

allow user to still export volume with save sound settings

allow the user to also export pitch and speed

name the file .resume.cfg

Rename all the SYSTEM_STATUS save file variables to TLAs to save space and
discourage tinkering

Cleanup DEBUG_AVAIL_SETTINGS output

when saving user_settings it calls status_save as well this cause the resume
file to be written twice. instead remove the callback for status_save
when setting_save is called

remove header text when saving .resume.cfg

convert status_save() to status_save(bool force)
add SYSTEM_STATUS_UPDATE_TICKS

for ATA device set this to 5 minutes
since we arlready wait for the disk to be up before saving
we don't want to miss our window

for all other every 15 minutes

that way if the battery is too low by the time shutdown comes around you
don't lose much progress

Change-Id: I27214ffd6e5d5494ee5ca83b14f04a41ba426ad7
2025-01-21 00:04:32 -05:00
William Wilgus
af859acf04 Tie NVRAM CRC to NVRAM_BLOCK_SIZE
by tying initial to NVRAM_BLOCK_SIZE we get automatic invalidation when the
system_status struct changes

Change-Id: Icd8fad14bdd31dddd609833830c939d5560feeb1
2025-01-19 00:29:47 -05:00
William Wilgus
4e271642df [Feature] Persist pitch settings through reboots part deux
Revisit this after discussion with chris_s on IRC and forum

Pitch menu now changes icon when pitch has been changed

uses NVRAM to save the pitch settings unconditionally

Manual updated

Change-Id: Idcb4c2b7fe42f7a203dc4bfc46285657f370d0fd
2025-01-19 00:29:47 -05:00
Christian Soffke
3e57ca15a5 skin_parser: fix parse_filetext fd not closed
Change-Id: I5efb0474a349c2cdf58e8e6dfd3de6fb40444a79
2025-01-18 14:32:01 -05:00
William Wilgus
c4ceea40bf [BugFix] pitch screen load config fd wasn't closed
check file_exist(PITCH_CFG_FILE)
close fd when finished

If you already have a setting saved and you reenter the pitch plugin
with differing pitch settings you will be asked to restore your
default settings

update manual entry to be a clearer

Change-Id: Iaaaf08983a355f9848412d1c6b0bba25d6ea8f39
2025-01-18 11:47:12 -05:00
William Wilgus
a8f6ddc5ed [Feature] bookmark.ignore to selectively ignore or include directories
allows blacklist / whitelisting of bookmarks by directory

Change-Id: I4eb684bb5775d1bba1c97b416e7d25e4763be553
2025-01-18 00:21:42 -05:00
William Wilgus
c7dfb9f916 [Fix Yellow] pitch_screen and configfile
place int32 in the conf file array it only supports upto 32 bit anyway..

Change-Id: I16bb6f3a924bab91739f09a4151df4e6be5bec69
2025-01-17 23:09:18 -05:00
William Wilgus
13c3214d9c [Feature] Persist pitch settings through reboots
saves the pitch setting across reboots

adds option 'Reset Setting'

Change-Id: I75d88f9653883a256c6cca0f7adcdccb2dd51406
2025-01-17 22:42:15 -05:00
William Wilgus
54333536fe [BugFix] YesNo screen wait for button release on exit
if you run yesno screens back to back or another screen with
wait_for_release you may never see the release

instead clear anything in the queue but release events

Change-Id: I1b1e42cbb44f2fdfed441ab1f217b6ea4fe07492
2025-01-17 00:42:25 -05:00
William Wilgus
e5690803c6 Small cleanup statusbar
move some things around and split out a few things to their own functions

Change-Id: I76ce216776ca939f030cb0b2caefc09b56fe66df
2025-01-17 00:08:28 -05:00
Christian Soffke
4f5c9d9759 fix regression: playlist name suggestion for db and pictureflow items
In 2c4c1b9, I missed the fact that we still need these,
so that slashes in names aren't interpreted as a path
separator.

Change-Id: I2df0745669c4673497a506a99e754c63dcba045e
2025-01-16 18:17:41 +01:00
Solomon Peachy
5f3dcaba49 Fix red in 7f4a8891a6
wrap a few things with HAVE_ALBUMART

Change-Id: I268e3668604d3810dcf7978a5c11e5d773becd4f
2025-01-16 11:02:13 -05:00
Roman Artiukhin
7f4a8891a6 metadata: mp3: Support unsync embedded jpeg album art
Support parsing alubm art from id3 metadata with "unsynchronisation scheme":
https://id3.org/id3v2.3.0#The_unsynchronisation_scheme

Change-Id: I1e2ca4ae0aa967f7e80142a04c9a7d99e38e68b2
2025-01-16 10:08:41 -05:00
Solomon Peachy
6649731563 FS#13549 - Updated Turkish translation (Mustafa YILDIZ)
Change-Id: I5f39ba323998a0302d3e601edeac66a4d7698a7d
2025-01-16 09:50:26 -05:00
Solomon Peachy
13d8c499d3 FS#13548 - Updated Spanish translation (Juan Germán Arrieta Martínez)
Change-Id: I7766ac7e317561e1fff98d0d97bc36d612fce28a
2025-01-16 09:48:57 -05:00
Solomon Peachy
7686a9cbbd FS#13547 - Updated Korean translation (Hoseok Seo)
Change-Id: Ia0747ea13750e330cd880ab40c381a8b8aca90b3
2025-01-16 09:47:53 -05:00
Solomon Peachy
ed66fee942 FS#13546: Updated Polish translation (Adam Rak)
Change-Id: Ied0a36c971a484a677e776b62a77082ece6a6f01
2025-01-15 15:57:05 -05:00
Solomon Peachy
f436a04af5 Update US English localization
Change-Id: I7427d6e2c9dadebc0614da2624e50f36c772d3ed
2025-01-15 15:57:05 -05:00
Christian Soffke
133eb84177 playlist: Allow replaying finished playlist
Instead of responding with a "Nothing to resume"
message when user tries to resume a playlist that's
finished playing, offer to start from the beginning
again.

Change-Id: Icc4894d4e2d2e29beb1c7646462f9af69e5733aa
2025-01-15 14:51:17 -05:00
Christian Soffke
ca459a9d09 misc: Eliminate redundant yes/no dialog functions
Change-Id: I28bc4531cdfe6e28a1677b1a0ebb461e48188fd8
2025-01-15 14:10:17 -05:00