1
0
Fork 0
forked from len0rd/rockbox
foxbox/apps
Aidan MacDonald 90e35716e3 playlist: Rewrite playlist_save(), optimization & fixes
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
2023-10-28 14:54:02 -04:00
..
bitmaps Rename symbols of FiiO M3K Linux-based port 2021-02-27 23:53:28 +00:00
gui Skip Length across tracks 2023-10-22 08:21:22 -04:00
hosted/android [FixRed] android yesno dialog 2023-10-01 12:21:54 -04:00
iap ipod: Support IAP remote MENU/SELECT/UP/DOWN keys in MODE2 2023-10-06 11:31:59 -04:00
keymaps ipod: Support IAP remote MENU/SELECT/UP/DOWN keys in MODE2 2023-10-06 11:31:59 -04:00
lang lang: Update english-us "translation" 2023-10-16 17:33:31 -04:00
menus playlist: Rewrite playlist_save(), optimization & fixes 2023-10-28 14:54:02 -04:00
plugins Properties/Tagcache Track Info Retrieval: Skip files with errors (2) 2023-10-17 19:29:45 +02:00
radio Remove buflib allocation names, part two 2023-01-13 10:32:54 +00:00
recorder Remove obsolete alias for audio_record function 2023-08-17 13:40:09 +02:00
abrepeat.c [3/4] Completely remove HWCODEC support 2020-07-24 21:20:13 +00:00
abrepeat.h abrepeat add dummy functions and remove some of the ifdefs 2022-12-14 23:37:14 -05:00
action.c Remove buflib allocation names, part two 2023-01-13 10:32:54 +00:00
action.h [Feature/Bugfix] keyremap add Context flags 2022-12-31 16:12:18 -05:00
alarm_menu.c alarm_menu share setter with settime 2022-03-30 09:05:28 -04:00
alarm_menu.h
appevents.h
applimits.h
apps.make makefiles: Suppress stray backslash warnings with grep 3.8 2023-03-21 04:48:31 -04:00
audio_path.c nwza860: fix simulator build 2020-10-19 03:39:33 +00:00
audio_thread.c
audio_thread.h
beep.c
bookmark.c Hide Bookmark menu for new dynamically generated playlists 2023-10-10 12:03:52 -04:00
bookmark.h Fix return to root after selecting items from playlist viewer 2022-11-19 10:01:23 +01:00
buffering.c [BugFix] Buffering.c NULL src for memcpy is UB -- ASAN 2023-01-04 20:20:08 -05:00
buffering.h buffering: remove bufgettail/bufcuttail 2022-04-20 16:51:49 -04:00
codec_thread.c codec_thread.c don't overrun audio_formats[] array 2021-08-11 10:56:14 -04:00
codec_thread.h
codecs.c plugins: Simplify plugin/codec API versioning 2023-03-21 16:23:54 -04:00
core_asmdefs.c
core_keymap.c Add core_get_data_pinned(), use it where possible 2023-01-15 08:57:45 -05:00
core_keymap.h key remap: simplify and use movable allocations 2022-09-25 11:05:59 +01:00
cuesheet.c cuesheet.c guard against invalid digits causing underflow on field ASAN 2022-11-21 23:24:30 -05:00
cuesheet.h [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
debug_menu.c Remove structec API from debug_menu.c 2023-10-01 12:10:41 +01:00
debug_menu.h
enc_config.c Settings: Rename INT/BOOL setting type enum to RB_INT/RB_BOOL 2023-09-22 10:00:46 -04:00
enc_config.h
features.txt Add perceptual volume adjustment 2023-01-22 21:19:57 +00:00
filetree.c playlist: Rework playlist modified detection and dirplay 2023-10-01 11:05:29 -04:00
filetree.h Don't autoload bookmarks after saving dynamic playlist 2022-10-18 07:23:25 -04:00
filetypes.c [Feature, Plugin] lastfm_scrobbler_viewer 2023-04-16 23:50:24 -04:00
filetypes.h [Feature, Plugin] lastfm_scrobbler_viewer 2023-04-16 23:50:24 -04:00
fracmul.h
keyboard.h [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
language.c lang: Support languages that speak the units before a numerical value 2023-05-22 10:30:13 -04:00
language.h lang: Support languages that speak the units before a numerical value 2023-05-22 10:30:13 -04:00
logfdisp.c misc.c open_pathfmt caller supplied buffer 2022-11-23 22:09:46 -05:00
logfdisp.h
main.c remove rockboxlogo after boot INIT_ATTR 2022-12-19 18:59:59 -05:00
menu.c settings: Remove setting ID return from find_setting() 2022-12-17 13:36:38 +00:00
menu.h menus remove reserved 'param' parameter 2022-12-17 04:24:37 -05:00
misc.c misc.c check_bootfile exit search loop after bootfile found 2023-09-01 23:43:24 -04:00
misc.h Warn before overwriting another playlist on disk 2023-06-21 13:09:05 -04:00
onplay.c WPS context menu: Set modified after reshuffle 2023-10-17 12:29:41 -04:00
onplay.h PictureFlow: Make Shuffle options available 2023-05-27 19:17:52 -04:00
open_plugin.c [BugFix] open_plugin didn't recognize opx shortcuts 2023-03-30 01:04:51 -04:00
open_plugin.h open_plugin.c access open_plugin_entry through a function 2022-12-16 09:05:06 -05:00
pcmbuf.c Additional Single Mode options 2021-12-11 11:43:39 -05:00
pcmbuf.h
playback.c Fix playing_id3_sync not properly syncing resume data 2023-10-22 09:26:20 -04:00
playback.h setting_list.c playback frequency cleanup 2023-09-01 19:32:27 -04:00
playlist.c playlist: Rewrite playlist_save(), optimization & fixes 2023-10-28 14:54:02 -04:00
playlist.h playlist: Rewrite playlist_save(), optimization & fixes 2023-10-28 14:54:02 -04:00
playlist_catalog.c Delete existing bookmark file when saving a new playlist 2023-10-17 12:05:57 -04:00
playlist_catalog.h Warn before overwriting another playlist on disk 2023-06-21 13:09:05 -04:00
playlist_menu.h
playlist_viewer.c Track Info [Playlist] field: Add playlist name 2023-10-19 13:32:03 +02:00
playlist_viewer.h Playlist Catalogue: Restore selection in playlist 2022-11-26 17:20:06 +01:00
plugin.c [FixRed] db_commit 2023-10-05 22:59:05 -04:00
plugin.h [FixRed] db_commit 2023-10-05 22:59:05 -04:00
rbcodec_helpers.c Remove buflib allocation names, part two 2023-01-13 10:32:54 +00:00
rbcodecconfig.h
rbcodecplatform.h
README
root_menu.c Remove browse_context_init() 2022-12-17 13:36:38 +00:00
root_menu.h Add open_plugin to core 2020-08-17 10:15:14 -04:00
screen_access.c make splash split on control characters 2022-11-12 06:22:16 -05:00
screen_access.h make splash split on control characters 2022-11-12 06:22:16 -05:00
screens.c Track Info [Playlist] field: Add playlist name 2023-10-19 13:32:03 +02:00
screens.h Fix warble error 4cfd7cc 2023-10-19 21:16:12 +02:00
settings.c Settings: Rename INT/BOOL setting type enum to RB_INT/RB_BOOL 2023-09-22 10:00:46 -04:00
settings.h Settings: Rename INT/BOOL setting type enum to RB_INT/RB_BOOL 2023-09-22 10:00:46 -04:00
settings_list.c Fix backlight undefined preprocessor typo 2023-10-16 20:36:48 -04:00
settings_list.h [BugFix] F_CB_ONLY_IF_CHANGED Overlapped NVRAM 2023-09-13 23:25:05 -04:00
shortcuts.c PictureFlow: Make Shuffle options available 2023-05-27 19:17:52 -04:00
shortcuts.h
sound_menu.h
SOURCES LastFm remove scrobbler from core make a TSR plugin WIP 2022-03-26 02:50:11 -04:00
status.c [2/4] get rid of HAVE_LCD_CHARCELLS 2020-07-24 21:20:13 +00:00
status.h Add a comment about the ordering of 'enum playmode' 2022-11-23 10:08:49 -05:00
tagcache.c db_commit swap threads, add ability to cancel, backup/restore 2023-10-10 05:48:37 -04:00
tagcache.h [Feature] db_commit plugin allows a more verbose commit 2023-10-05 21:24:37 -04:00
tagnavi.config tagnavi make track submenu 2023-02-07 08:44:57 -05:00
tagtree.c Properties/Tagcache Track Info Retrieval: Skip files with errors 2023-10-17 12:18:33 -04:00
tagtree.h database: make parent tables work with plugin 2023-01-19 15:56:35 -05:00
talk.c Remove structec API from talk.c 2023-10-01 12:10:41 +01:00
talk.h talk.c clean up 2022-11-19 02:12:09 -05:00
tree.c playlist: Rework playlist modified detection and dirplay 2023-10-01 11:05:29 -04:00
tree.h [Bugfix] open_plugin_browse() not showing plugins 2023-03-18 04:23:43 -04:00
usb_keymaps.c Document intentional fallthroughs + fix harmless unintended ones 2021-08-04 18:59:46 +00:00
usb_keymaps.h
voice_thread.c Remove buflib allocation names, part two 2023-01-13 10:32:54 +00:00
voice_thread.h voice: Allow voice prompt volume to be configurable 2021-03-07 12:51:36 +00:00

For general information see: docs/README
For API information see: docs/API