I noticed that setting first_index to the
current track when shuffling a playlist
could fail in the Simulator.
Change-Id: Ic9467bd46a93aa2d2b765271110b0baee7058208
pcmbuf might wait for next track for proper crossfade/gapeless playback (see pcmbuf_start_track_change). It's not going to happen with stopped buffering.
Fixup for 831faa3b (#5394)
Change-Id: I969878d13a9f976566eef5b975beb1687b519a37
Add resume adjustments flag in mp3entry struct which is required for proper AUDIO_START_RESTART resume handling
Fixup for 4fb37ecb (#5196)
Change-Id: Ie9ecfe2b637bba38e442066333d71eeff01030ad
Regression introduced in 3d5dd97c (#5426)
Without it current playlist keeps last bookmark info so next time track is played again from bookmark.
Change-Id: Ifeff43a4a2d380056ef8a389c3c72e7254db4080
fixes some of the places where SYS EVENTS cause issues with action switches
that don't have handling for system events
more exist..
Change-Id: Ie6f4b05ed7ef1119d43e65ee49be8f754af83f52
The resume index into the playlist file
that was used for bookmarks created immediately
after saving a shuffled playlist, or for reloading
the saved playlist (in case "Reload After Saving"
was enabled), tended to be incorrect.
The playlist file effectively isn't shuffled
anymore after saving it to a file, but the
resume index may still have to be rotated unless
playback has been stopped and resumed before
bookmarking, due to indices that are shifted
by first_index.
Change-Id: Id335a7a71adc216989d7b415bfa48237d92fd7b0
This was added in 5e757b4 as a band-aid to
prevent control data from being discarded,
but has since become superfluous after
the removal of the control file cache in
2e99e21.
Change-Id: Ia7bd84f9442ec1103aee8d3c4454216719aa2d66
Entries from a previously playing playlist may not
have been replaced after selecting a track from
a different playlist in the Playlist Viewer when
playback was stopped (not paused), since the index
buffer of a playlist opened in the Playlist Viewer
is shared with the current playlist when nothing is
playing.
Change-Id: I939e302c73cabd0e9d969550143635e54db32bf0
+ update misleading comment for catalog_add_to_a_playlist's
m3u8name parameter (the keyboard picker will be shown even
if it's not NULL)
Change-Id: I7576a83fd40cdcdb7a912c90d8c1d9a8f25e277c
Moved logic outside playback events to be executed early. Stops buffering when frequency change is detected (additional STATE_STOPPED state is introduced)
Removed no longer used AUDIO_START_REFRESH flag
Change-Id: Icfae61725a4d8ffb47380f561a011bda4841457b
playlist_save() was a poorly thought out mess. This fixes the
glaring issues and hopefully ensures that saving the playlist
never loses state (such as queued tracks or modified status)
after save+resume.
Indices are now updated on the fly, which is faster and needs
no extra memory. But if an error occurs, the playlist will be
corrupted. There is currently no attempt to handle this since
errors should be unlikely, but some error handling needs to be
added in the future.
Change-Id: If8a5dbd6a596460be08ee0b7bab9f24337886ea4
Allows to use Prev button to skip length from the end of previous track.
Can be enabled with:
Settings -> Playback Settings -> Skip Length set to some time interval
and
Settings -> Playback Settings -> Rewind Across Tracks set to Yes
Change-Id: I99f234035a8a5acc9cbfe05ea83971ec5ddc59ea
For any selected track that is part of a playlist,
additional info about the list is now provided in
the [Playlist] field of the Track Info screen.
1) Asterisk indicates if playlist has been modified.
2) Playlist filename is visible, unless the current
playlist is *not* associated with a file on disk, in
which case the following will be shown instead:
- (Folder) for unmodified folder playlists.
- (Dynamic) for playlists that are neither associated
with a playlist file, nor with a folder.
Change-Id: I9dcf7cbba4ac2e37b23413180a2b2bf4bbe5ee2a
A playlist's explicit 'modified' flag is now used
for keeping track of whether it's been modified
in the Playlist Viewer, not just in case of the
currently playing list, but for other playlists
as well.
When you start playback of a track from the
Playlist Viewer, a playlist's 'modified'
status is now carried over to the current
playlist, so as to produce a warning when
there is an attempt to replace the list at
a later point. This also prevents (auto)
bookmarking of the playlist if it had been
modified in the Playlist Viewer prior to
becoming the current playlist. (Bugfix)
Change-Id: Ibc391fd69285f8a67d6ffb6d8c274df3d223974c
Addendum to e3b2293
Don't abort even when the database has returned a filename,
since metadata retrieval may still fail.
Change-Id: I9e397c44a4c80f24e937f085efbd540f274822a0
Prevents incorrect bookmarking of permanently
(not just temporarily) shuffled playlists, which
need to be resaved, before they can be correctly
bookmarked.
Change-Id: I157d3be9d05117f7566ca72f3e736f96b42a165d
File names exceeding the max length will not be retrievable
from the database. Skip such files, instead of cancelling
the operation at that point.
Change-Id: Ia6bc8a53be9ec181eb836956cc3d8b059b2d024f
Deleting a playlist leaves its bookmark file behind.
When a new playlist was saved under the same name as an
existing bookmark file, unrelated bookmarks were shown
for the new playlist
Change-Id: I7332460a5f488c354f41195c8fff4cf4d66f4bbb
The bookmark menu with the option to create a bookmark
was inadvertently displayed for new dynamic playlists,
that had no associated folder or playlist file on disk.
(e.g. after selecting some track from the database for
playback), until the playlist was modified by the user.
Change-Id: I9d6809e4d03603c651459415327f28e38162ad53
extends the db_commit plugin with the ability to delete the database
backup, restore, dis/enable auto-commit
Change-Id: Id61546e463d151399d2ac8459480e6adc5d6fac6
Only the primary contexts (standard, wps, quckscreen, tree, radio)
handle the new keys so far.
Todo contexts: Settings, keyboard, pitchscreen, bookmark, & recording.
Available docs for MODE4 don't list anything other than playback
controls, so it's not clear if there is a path forward here.
Change-Id: I91908092f75d96813e2e155e447129ba15f58051
prints logf messages to the screen buffer and dumps the
output to .rockbox/db_commit_log.txt
logs warnings about tags that can't
be displayed by the current font
adds an option to the tagcache using the file
.rockbox/database_commit.ignore to prevent auto commit
Change-Id: Ib381b3b6d9dd19d76c95d0e87e605f7378e29674
move some functions around for later ifdef for tagcache commit plugin
used fixed width variables in struct temp_file_entry
Change-Id: I7f66b15cd1bdf5abcefa700086d390d22d3b5e21
move some functions around for later ifdef for tagcache commit plugin
used fixed width variables in struct temp_file_entry
Change-Id: Idf9c37d67fc048550366e3d3504601a19c31f31e
adds a new function:
gui_syncyesno_run_w_tmo(ticks, tmo_default_res, main_msg,yes_msg, no_msg)
when a database needs committed on start-up
a yes no prompt will appear if not answered within 5 seconds
it defaults to Yes
if instead you choose No next start-up you will be asked again
you could rebuild the db still and waste time but it wouldn't hurt
anything so I don't think that path needs blocked
Change-Id: I58411f6e6bfebb6f142d99f33a1e8885ae7785c1
The modified state is now an explicit flag that has to be
set whenever a user-triggered modification occurs. This is
recorded in the control file to ensure it doesn't get lost
after resume. There may be some places I missed where the
modified flag should be set/cleared, but it seems to work
well enough right now.
Change-Id: I3bdba358fc495b4ca84e389ac6e7bcbef820c219
Replace structec usage with explicit endian swapping routines
for the various data types. Simplify endianness detection when
loading the database. Make foreign endianness support optional,
but leave it enabled for now.
Change-Id: Ia1efb72c8830f63bbe0e51f7271c4552b5279878
in some calls to generate_bookmark_file_name()
len gets specified in order to not NULL terminate the buffer string
unfortunately, I missed the root_dir case in g#4839
Change-Id: I24d1360bbe72e6a1b2ed3332ff5854d039d58ca5