Commit Graph

29 Commits (0f003fcefd8d2a4d32f660bb5b9d56500f347a97)

Author SHA1 Message Date
Christopher Snowhill b4e3c05c87 [Playlist Loader] Load files in the background
Load new playlist entries in the background, asynchronously.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-06 14:28:14 -07:00
Christopher Snowhill 2c698304ca [Playlist Loader] Revert background loader
This reverts most of 802a86a3d8, since it
didn't work anyway.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-04 18:09:01 -07:00
Christopher Snowhill de7afad3d4 [Playlist Loading] Process messages while loading
Process main queue messages by handling the loading in a background
queue, and sync it to the main thread periodically, while pausing to
wait for the results. This allows the file open dialog to return
immediately, and display loading progress on the status bar.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-28 20:26:55 -07:00
Christopher Snowhill d20df5164f [Metadata Loading] Make metadata loading smarter
Metadata loading now filters the request list down to unique file paths
that don't have metadata loaded, makes sure that another instance of the
loader isn't already loading the same files, and waits for previous
instances to complete before beginning another metadata load task. It
also will update the playlist entries for all affected tracks, even if
they were not explicitly selected for loading or reloading.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-20 23:22:07 -07:00
Christopher Snowhill 4c95c943ef [Playlist Storage] Rewrite to use Core Data
Completely rewrite the playlist storage once again, this time with a
much faster Core Data implementation. It still uses a little magic for
Album Artwork consolidation, but string consolidation doesn't seem to be
needed to reduce the disk storage size. Works much faster than my silly
implementation, too.

Old implementations are still kept for backwards compatibility with
existing playlists.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-16 07:14:33 -07:00
Christopher Snowhill 92573ec088 [Job Queue] Overhauled long action handling
Long actions, such as file opening, playlist loading, metadata loading
and refreshing, etc, are now handled through NSProgress. Additionally,
a new status bar change displays the progress of the task instead of
the total duration of the playlist. Finally, app quit is blocked by a
running task, and if the app is quit while a task is running, it will
be delayed until the task completes, at which time the app will
terminate cleanly.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-15 01:01:45 -07:00
Christopher Snowhill 85c7073649 Reformat my own source code with clang-format
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-06 21:49:27 -08:00
Christopher Snowhill 7fe67b1630 Implement dock icon progress bar indicator for many processing operations, including adding tracks, removing tracks, and loading or reloading track metadata 2022-01-09 02:10:08 -08:00
Christopher Snowhill 2445cc94a9 - Retrieve profile paths properly instead of hard coding
- Display playlist total duration in units up to weeks and down to just seconds, and only pluralize units as necessary
- Major change: Implemented a SQLite disk backed playlist, track data, and queue storage system, which will be synchronized from the player in real time, and will hopefully survive system or app crashes. Existing plist playlist will be imported on first run, and removed on shutdown.
2021-12-24 01:01:21 -08:00
Christopher Snowhill 13bd399b31 Clean up most warnings and update some dependencies 2021-04-29 18:16:24 -07:00
Christopher Snowhill 61c6cf3285 Hopefully fixed metadata parsing for newly added tracks showing up in notifications 2019-12-05 19:04:46 -08:00
Christopher Snowhill d14d69e3c4 Correctly invalidate playlist view's data when background metadata loader completes. 2018-05-23 00:34:22 -07:00
Chris Moeller ffa31e696d Remove unused function declaration. 2016-06-28 19:33:21 -07:00
Chris Moeller b5fd1207b8 Now saves and loads the default playlist in an XML plist format, so loaded metadata is cached 2013-10-09 08:45:16 -07:00
mscott 11352ab6de Enhancements to File Tree (contextual menu, sort order, etc.).
Added File Tree contextual menu (Add to Playlist, Show in Finder, etc.).
File Tree and additions to play list now use Finder sort order.
File Tree Root can be set via its popup menu or drag and drop from File Tree.
Alias names are now shown in File Tree (aliases are still resolved).
Added option to skip reading of cue sheets when adding a folder to play list.
2009-08-16 11:49:34 -05:00
vspader d6a0b0670e Playback events for last.fm and growl are now done in the background via an operation queue. Removed hack to load metadata for autoplay. Now metadata is reloaded for each file you play. 2009-03-05 20:37:44 -08:00
vspader 03937f480b Cleaned up modified add behavior. 2009-02-28 14:22:33 -08:00
vasfed e063790e93 Updated APL plugin to use new protocol
Added support for behavior modifiers on addition/opening of files
Added Command+Control as modifier for open/enqueue
2008-05-09 21:24:49 +00:00
vspader 10669a2db3 Added preference for begin playback on add and clear on add. 2008-05-03 16:01:27 +00:00
vspader 345e57698f Cog now begins playback and clears the playlist when adding songs. 2008-05-03 15:15:45 +00:00
matthewleon 4168bb43eb Redid threading for reading file info and metadata. Still a bit buggy. 2008-03-01 18:29:14 +00:00
vspader 37820a586d Fixed up undo/redo support. Should be working great now. 2008-02-10 22:46:12 +00:00
areff 9b05ce02d2 Added undo functionality in playlist, undo works for removals, moves and adds. 2008-02-10 16:16:45 +00:00
vspader 6f6b01b15c Fixed bug where playlist saved as kss files.
Fixed bug where multi-track files were consolidated into a single entry on saving/loading a playlist.
2007-10-13 04:53:48 +00:00
vspader 88aecc7de2 Added AudioContainer plugin and made pls and m3u loaders that use it. 2007-10-09 01:20:46 +00:00
vspader 5b5ce493e3 PlaylistLoader now handles playlist files like directories, and simply expands them. Makes sure only unique URL's are added! 2007-05-27 16:14:29 +00:00
vspader c28e8d058d Fixed up menu items.
Added OpenURL panel.
2007-05-26 14:43:31 +00:00
vspader 15f1aa2ebd Cleaned up code. Added PlaylistLoader class properly, with support for m3u and pls formats. Changed default playlist to m3u. Added bugs GALORE! 2007-03-09 01:16:06 +00:00
vspader 043c150abd Added playlistloader class. 2007-03-07 01:26:50 +00:00