1
0
Fork 0
forked from len0rd/rockbox
Commit graph

17791 commits

Author SHA1 Message Date
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
Christian Soffke
ad4113a7e9 plugins: image viewer: respect album art setting
Displaying large embedded album art in the
image viewer requires playback to be stopped,
which is pretty disruptive, so respecting the
system setting here may make sense

Change-Id: I479466bf26d85c3305d6c81e2c1818b2c2b2cbdb
2025-01-15 14:09:26 -05:00
Christian Soffke
b83504635c playlist: eliminate error message disconnecting USB
With no control file present, the message
"Error accessing playlist control file"
was displayed, due to playlist_resume being
called from gui_usb_screen_run.

You were likely to only run into this after a clean
install, if you hadn't listened to any music yet.

It probably makes sense to move the check for the
existence of the control file into playlist_resume,
and not even have it show a separate access error
message when the file doesn't exist.

Change-Id: Ib3a643c43d3d4d499fa5a13c01955779d69cd357
2025-01-15 14:00:10 -05:00
Christian Soffke
2c4c1b9199 FS#12702: Fix illegal characters in suggested playlist filename
Issue had only been partially fixed in
3f3b738 by showing an error message

Change-Id: I91665ac826e0025fb80eadac31abffa03667cf62
2025-01-15 13:32:46 -05:00
Christian Soffke
24c9ccfac0 playlist: Set playlist index after resuming
fixes current track selection
in Playlist Viewer when stopped

Change-Id: I3d1fa28a4bf2d631918e159a3fd8025c17979833
2025-01-15 13:28:35 -05:00
Christian Soffke
fb26398622 playlist: Fix warning when erasing playlist after reboot
Unless you had manually resumed the playlist, you
didn't get any warning after Rockbox rebooted, when
replacing a modified current playlist.

Change-Id: Ibc83e3db4e6ee51e94204ac7732760894d2fb602
2025-01-15 13:10:07 -05:00
William Wilgus
9310b51841 [Bugfix] OpenPlugin on multivolume targets
to check for against /.rockbox/viewers (VIEWERS_DIR) on multivolume you
need to strip all the prefix junk of volume and potentially strip the
redirect directory

Change-Id: I8e24c43d84c3b90ffb4bbf62d4287620a5890ade
2025-01-15 12:27:39 -05:00
William Wilgus
a5663ab3c0 [Feature] Add parameters when viewer is selected for open plugin
ask th user if they want to add a parameter when a viewer is set to an
open plugin entry (wps hotkey, start screen, etc)

Change-Id: I403ac79af15162aeecabb3607923113e27496e4f
2025-01-15 11:43:47 -05:00
William Wilgus
1a17b5cb8e tree.c small cleanup
Change-Id: Ifd254f195f92833398b3f752a55d258cf7718183
2025-01-15 00:00:41 -05:00
Solomon Peachy
68f511984e FS#13545: Update Korean translation (Hoseok Seo)
(Accidently left this off the translation roundup commit)

Change-Id: I7050de57fc71afb5d5ef9d0f1a7ac7643098f595
2025-01-14 08:44:33 -05:00
Solomon Peachy
14e35fd164 Translation updates:
* FS#13543 - Polish (Adam Rak)
 * FS#13545 - Korean (Hoseok Seo)
 * FS#13544 - Turkish (Mustafa YILDIZ)

Plus resync the US English localization (myself)

Change-Id: Id98cbe4d6d2858183044b5cbbf48080c90ae9b05
2025-01-14 08:33:52 -05:00
William Wilgus
d8d6415505 [BugFix] do_menu skinlist_draw dangling reference
skinlist_draw stores a pointer to the list supplied
if this pointer goes out of scope we may try to access it

toggle_theme has a path to handle this but if you move to a a item with the
theme enabled it doesn't release the pointer
later the pointer will be referenced long after it has gone out of scope

limiting this to do_menu() if other areas are problematic the previous
version of this patch applies it system-wide

Change-Id: I57c73d789856cb1a660fb704f02ca55c8978a4d0
2025-01-13 22:41:24 -05:00
William Wilgus
7a281eca83 [BugFix] Tree doesn't stop scrolling on exit
https://forums.rockbox.org/index.php/topic,53862.msg248780.html#msg248780

add an intermediary function to stop tree_list scroll when changing screens

Change-Id: I7376ea28fb1e1bbc09fce83209e0147711af92b4
2025-01-13 19:39:04 -05:00
William Wilgus
0493ee19c3 lastfm_scrobbler speed up track culling, better duplicate logic
rather than going through the whole file each time we can just walk
through the remainder speeds up duplicate removal by quite a bit

check timestamp of tracks to not remove multiple plays of the same song
at different times, unless back to back (then its probably a resume after
shutdown)

devices without RTC use current_tick but thats in centiseconds
convert to milliseconds so we can use the timestamp in the above calculations

my fix to the scrobbler_viewer makes the include menus disappear as
soon as you hide columns so explicitly mark if we are
dealing with a scrobbler log at load

Change-Id: I11bbebe9af45945a7e1326a5e419290086b05aaa
2025-01-13 18:08:40 -05:00
William Wilgus
ab9b687607 [BugFix] lastfm_scrobbler_viewer block search for non scrobbler logs
the scrobbler viewer will view any .log file but search and include
column only works with defined headers

it ends up showing a blank result so block this menu for non scrobbler logs

Change-Id: Ifc04dcab52d4416271388bee7d0cb10a144636a4
2025-01-13 02:36:20 -05:00
William Wilgus
c8ba67fa7d [Bugfix] plugins printcell_helper crash on NULL pointer
printcell_set_columns() can take a NULL pointer for the *pcs
it then uses default settings but those were contained within
the scope of the if(NULL) check.

Change-Id: I3147d1f4e3954fdcdb3adb74713f4c8a9a2c08ec
2025-01-13 00:45:09 -05:00
William Wilgus
c3fd32bdf2 [Feature] playback logging from core
people don't like having to remember to run the TSR plugin so
lets meet them halfway

all tracks are added with timestamp, elapsed, length, trackname

added buffering for ATA devices

still needed:
-Done -- a plugin that parses for duplicates and reads the track info
to create the actual scrobbler log
(log can be truncated once dumped)
this should allow you to run the plugin at leisure

later I'd like to expand this logging to allow
track culling based on skipped songs..

remove the TSR plugin as hard disk no longer need to use it

Change-Id: Ib0b74b4c868fecb3e4941a8f4b9de7bd8728fe3e
2025-01-13 00:45:09 -05:00
Christian Soffke
e5c9846cb4 Playlist Catalogue: fix: "Save Current Playlist" may fail silently
- After rebooting, unless the current playlist
had been manually resumed already, the "Save
Current Playlist" option in the root menu's/
playlist catalogue's context menu failed to work.

- Eliminate error message attempting to view current
playlist when no control file present.

Change-Id: I58f1d3dc6f256fcee106ff5a17f69fa46d67b2e4
2025-01-09 06:10:46 +01:00
Christian Soffke
897a96996b Playlist Viewer: fix: deleting track starts playback
When playback was stopped (not paused), deleting
the first track of the current playlist started
playback.

Change-Id: I0bd09e1254399d003109215e4e8363a0cd045ac0
2025-01-08 23:23:33 -05:00