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
This commit is contained in:
Paul Sauro 2024-08-28 22:55:52 +02:00 committed by William Wilgus
parent f6e8c20188
commit c16dbbfd1f
13 changed files with 264 additions and 89 deletions

View file

@ -137,6 +137,21 @@ There is no option to turn off database completely. If you do not want
to use it just do not do the initial build of the database and do not load it
to RAM.}%
If your total amount of music tracks exceeds the value of the
\setting{Max Playlist Size} setting (\setting{Settings $\rightarrow$ General
Settings $\rightarrow$ System $\rightarrow$ Limits}), using the database
will be your only way to shuffle between all songs from your music library.
Any view on the database browser that exceeds the maximum value of this option
will be automatically adjusted and randomized to fit into the available space
when you will create a dynamic playlist from the view.
Using the database browser is recommended if you shuffle regularly between a lot of
songs rather than increasing your limit, so you will get the best possible performance
on this action.
\note{For your convenience, a shortcut button "Shuffle Songs" is available directly
from the \setting{Database} menu to create and start a mix with all of your
existing music tracks.}
\begin{table}
\begin{rbtabular}{.75\textwidth}{XXX}%
{\textbf{Tag} & \textbf{Type} & \textbf{Origin}}{}{}