diff options
author | Paul Sauro <olsroparadise@proton.me> | 2024-08-28 22:55:52 +0200 |
---|---|---|
committer | William Wilgus <me.theuser@yahoo.com> | 2024-08-31 10:44:20 -0400 |
commit | c16dbbfd1fb7bf4bc268a4693bbed21497456b30 (patch) | |
tree | 3faea1f6d294f5835f72075b9a27e996525aef0a /apps/settings_list.c | |
parent | f6e8c20188276251d8b3ec512be81f2460ce39e7 (diff) | |
download | rockbox-c16dbbfd1fb7bf4bc268a4693bbed21497456b30.tar.gz rockbox-c16dbbfd1fb7bf4bc268a4693bbed21497456b30.zip |
Reworks to the shuffle system to improve performance and allow fast shuffling from a big library (but this work for all database views)
This improvement brings a huge performance improvement to start a random mix of your library. Previously, the only way to do this was to increase the size of a playlist with absurd sizes number. Now it will respect the limitation but will insert random songs from the current view.
Database: Add true random songs in playlist if it is gonna exceed its maximum capacity
More context is available here : https://www.reddit.com/r/rockbox/comments/1ez0mq4/i_developped_true_full_library_shuffle_for/
Also :
- Improved layout in the DB browser
- New default max playlists capacity is now 2000 on old PortalPlayer targets to give a better user experience and not having to wait dozens of seconds while creating a playlist
- "Show insert shuffled" option is now true by default
- Add a new shortcut to play all songs shuffled in the DB browser
- Now the feature is fully optional and enabled only on targets that have more than 2MB of RAM
- Add entries about this feature in the manual to explain it to the users
Change-Id: I1aebaf7ebcff2bf907080f1861027d530619097c
Change-Id: I3354923b148eeef1975171990e814a1a505d1df0
Diffstat (limited to 'apps/settings_list.c')
-rw-r--r-- | apps/settings_list.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/apps/settings_list.c b/apps/settings_list.c index 8ec434bd9b..3b29703fe9 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -1120,7 +1120,11 @@ const struct settings_list settings[] = { | |||
1120 | SYSTEM_SETTING(NVRAM(4), topruntime, 0), | 1120 | SYSTEM_SETTING(NVRAM(4), topruntime, 0), |
1121 | INT_SETTING(F_BANFROMQS, max_files_in_playlist, | 1121 | INT_SETTING(F_BANFROMQS, max_files_in_playlist, |
1122 | LANG_MAX_FILES_IN_PLAYLIST, | 1122 | LANG_MAX_FILES_IN_PLAYLIST, |
1123 | #if MEMORYSIZE > 1 | 1123 | #if CONFIG_CPU == PP5002 || CONFIG_CPU == PP5020 || CONFIG_CPU == PP5022 |
1124 | /** Slow CPU benefits greatly from building smaller playlists | ||
1125 | On the iPod Mini 2nd gen, creating a playlist of 2000 entries takes around 10 seconds */ | ||
1126 | 2000, | ||
1127 | #elif MEMORYSIZE > 1 | ||
1124 | 10000, | 1128 | 10000, |
1125 | #else | 1129 | #else |
1126 | 400, | 1130 | 400, |
@@ -1854,7 +1858,7 @@ const struct settings_list settings[] = { | |||
1854 | true, "warn when erasing dynamic playlist",NULL), | 1858 | true, "warn when erasing dynamic playlist",NULL), |
1855 | OFFON_SETTING(0, keep_current_track_on_replace_playlist, LANG_KEEP_CURRENT_TRACK_ON_REPLACE, | 1859 | OFFON_SETTING(0, keep_current_track_on_replace_playlist, LANG_KEEP_CURRENT_TRACK_ON_REPLACE, |
1856 | true, "keep current track when replacing playlist",NULL), | 1860 | true, "keep current track when replacing playlist",NULL), |
1857 | OFFON_SETTING(0, show_shuffled_adding_options, LANG_SHOW_SHUFFLED_ADDING_OPTIONS, false, | 1861 | OFFON_SETTING(0, show_shuffled_adding_options, LANG_SHOW_SHUFFLED_ADDING_OPTIONS, true, |
1858 | "show shuffled adding options", NULL), | 1862 | "show shuffled adding options", NULL), |
1859 | CHOICE_SETTING(0, show_queue_options, LANG_SHOW_QUEUE_OPTIONS, 0, | 1863 | CHOICE_SETTING(0, show_queue_options, LANG_SHOW_QUEUE_OPTIONS, 0, |
1860 | "show queue options", "off,on,in submenu", | 1864 | "show queue options", "off,on,in submenu", |