Christopher Snowhill
74cd0f7da9
SQLite playlist store: Greatly improved performance of playlist sync operations
2022-01-14 22:42:57 -08:00
Christopher Snowhill
d24a01a637
Implemented basic embedded CueSheet support
2022-01-14 16:46:35 -08:00
Christopher Snowhill
8a91bc1d09
Playlist loader: Allocate larger properties dictionary
2022-01-11 19:35:59 -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
b40b506cc3
Remove unneeded header import
2022-01-07 02:16:55 -08:00
Christopher Snowhill
00052130a0
Revert ea589b2635
, and fix reloading info for entries on Intel, by invoking the reloader in the background instead of directly calling it from the UI thread
2022-01-07 02:12:49 -08:00
Christopher Snowhill
ea589b2635
Playlist loader: No longer do background metadata reading on Intel machines, where VGMStream mysteriously clobbers the stack at random when run in the background
2022-01-07 01:35:59 -08:00
Christopher Snowhill
098650099e
Fix SQL playlist loader so it doesn't crash on an empty playlist
2021-12-25 16:42:28 -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
9e6199b108
UI: Fix table column duplication and other mess, due to saved application state
2021-10-02 00:40:10 -07:00
Christopher Snowhill
fdae7eec21
File info: Implemented support for Album Artist and Codec fields
2021-10-01 19:18:42 -07:00
Christopher Snowhill
217b3d4cf9
Attempt to clean up 10.13+ stuff with fallbacks to the old ways
2021-09-23 00:49:51 -07:00
Christopher Snowhill
922e657f0b
Context menu: Add option to reload metadata from existing playlist entries
2021-07-03 15:32:13 -07:00
Dzmitry Neviadomski
b69cb98240
Revert display regressions.
...
1. Revert "Merge pull request #148 from JanX2/two-gigaseconds-mini"
This reverts commit 7365174b11
, reversing
changes made to c5ac86725d
.
2. Revert "Two gigaseconds (#147 )"
This reverts commit c5ac86725d
.
2021-05-09 01:16:20 +03:00
Christopher Snowhill
5df4035568
Brought back background metadata and file info loading, still needs a progress indicator somewhere
2021-05-07 17:19:10 -07:00
Jan
c5ac86725d
Two gigaseconds ( #147 )
...
* Fix look of position time field to match the rest of the UI.
* Fix typo.
* Improve position time display.
* Add days, hours support to position time display.
* Fix "Current Time" toolbar item geometry/layout.
* Don’t enforce leading double-digits in position time display.
* MainMenu.xib touched by Xcode.
* Implement and use MonospacedDigitTextFieldCell.
This way the digits of numbers in playlist columns consisting of mostly digits will be aligned vertically.
* Disable font scaling code without effect.
* Set "Current Time" toolbar item to use MonospacedDigitTextFieldCell.
* Improve SecondsFormatter.
* Merge in SecondsFormatter improvements from Play.
* Move formatter setup into XIB.
* Add CogTests.
These can later be used for integration tests.
* Add SecondsFormatterTests.
Tests are stubbed out.
* Pouring foundation for SecondsFormatterTests.
* Implement -testPositive.
* Replace unsigned with int in SecondsFormatter.
* Implement negative support, tests.
* Rewrite SecondsFormatter in preparation for better readability..
* Rewrite SecondsFormatter for better readability.
* Add negative zero support.
* Improve SecondsFormatter readability.
* Refactor into -stringForTimeInterval: in SecondsFormatter.
* Cleanup.
* Mark TimeField as space-indented.
* Replace custom time formatting code in TimeField with SecondsFormatter.
* Cleanup.
* Improve SecondsFormatter format strings.
* Add internal type for time calculations.
Co-authored-by: Jan Weiß <jan@geheimwerk.de>
2021-05-06 19:50:26 -07:00
Christopher Snowhill
13bd399b31
Clean up most warnings and update some dependencies
2021-04-29 18:16:24 -07:00
Christopher Snowhill
ce8a1c230d
Fix Playlist Loader so it only attempts to process track info for tracks that need it, and not the entire playlist every time
2021-04-06 16:50:17 -07:00
Christopher Snowhill
59477130bb
Get rid of background tag loading, as it never worked properly anyway
2021-02-25 02:42:44 -08:00
Dzmitry Neviadomski
85e27e7496
Rework playback shortcuts again.
2021-02-19 08:23:13 +03:00
Dzmitry Neviadomski
9840d87127
Convert CogStatus enum to NS_ENUM
2021-02-07 00:22:19 +03:00
Christopher Snowhill
583b8f3cb4
Hopefully fix Drag and Drop for everyone
2021-02-06 00:02:55 -08:00
Dzmitry Neviadomski
c1da9a66e1
Modernize several classes.
...
Use modern ObjC syntax.
Use new Pasteboard APIs.
Explicitly declare protocols.
2021-01-31 02:14:08 +03:00
Dzmitry Neviadomski
730276a7e7
Modernize DNDArrayController.
2021-01-28 01:09:09 +03:00
Dzmitry Neviadomski
a0afe85130
Fix deprecations with replacemnt and reindent touched files.
2021-01-27 05:30:19 +03:00
Christopher Snowhill
0a99093af0
Fix status bar bodge so stopping manually doesn't prevent playback for 3 seconds
2021-01-06 02:18:09 -08:00
Christopher Snowhill
0f543a1b52
Guard background file info retrieval to prevent it in case only a single entry was added
2020-02-17 19:50:32 -08:00
Christopher Snowhill
7308aa5f7b
Fall back on non-container file parsing, since VGMStream is too greedy with its extension list
2020-02-17 19:50:32 -08:00
Christopher Snowhill
072c4346cf
Fix album shuffle again
2019-12-15 18:12:11 -08: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
4c955ef806
Simplify metadata loader
2019-11-08 15:03:26 -08:00
Christopher Snowhill
2ad9584fb2
Rejigger shuffle list generator for albums mode, to insert the current album at the start of the list, starting from the current track
2019-10-24 17:18:51 -07:00
Christopher Snowhill
c8f91c5092
Implemented album shuffle mode, which somehow wasn't implemented at all
2019-10-12 18:27:02 -07:00
Christopher Snowhill
39bc8df77c
Implement spacebar for play/pause and enter for restart current track for the mini window, and implement left/right arrows for seeking forward and backward for both the mini window and the main window playlist view.
2018-09-26 20:32:23 -07:00
Christopher Snowhill
6eeb8a60da
Add a safety check for attempting to add unsupported URLs.
2018-09-23 16:44:44 -07:00
Christopher Snowhill
505b8c3140
Fix playlist entry to return 0 length instead of NaN when metadata hasn't loaded yet.
2018-09-22 03:11:13 -07:00
Christopher Snowhill
d9529d04a8
Fix refreshing table values when adding tracks to the playlist.
2018-09-22 03:10:44 -07:00
Christopher Snowhill
0513639842
Tidy up playlist info loader a bit.
2018-07-22 02:00:30 -07:00
Christopher Snowhill
67495009ff
Updates for new build system.
2018-06-28 04:03:37 -07:00
Christopher Snowhill
d14d69e3c4
Correctly invalidate playlist view's data when background metadata loader completes.
2018-05-23 00:34:22 -07:00
Christopher Snowhill
3b8e498e7f
Fix total time display on startup, when all metadata is correctly loaded.
2018-05-23 00:32:47 -07:00
Christopher Snowhill
200701a2a3
Fix playlist info loading threading magic.
2018-02-18 20:19:18 -08:00
Christopher Snowhill
54bd1db745
Ignore RepeatOne only when manually skipping tracks, not when playing normally.
2017-12-23 23:55:33 -08:00
Christopher Snowhill
524e161789
Track skip no longer gets stuck on the current track when in Repeat One mode.
2017-12-23 23:33:11 -08:00
Chris Moeller
1b1721736e
Fix PlaylistLoader to sort the contents of directories by the file path.
2017-12-16 19:05:17 -08:00
Christopher Snowhill
bf501d9e12
Add error receiver for debugging.
2017-09-17 20:03:30 -07:00
Christopher Snowhill
ac44ca33b0
Hopefully fixed total play time synchronizing with adding new tracks to the playlist.
2016-09-01 17:20:53 -07:00
Chris Moeller
86a6b2c22d
Fix playlist metadata loading.
2016-07-02 02:58:38 -07:00
Chris Moeller
0d12f9e4e3
Fix file info load batching to operations of 16 files at a time.
2016-06-29 22:13:32 -07:00
Chris Moeller
17272ce43c
Clean up lots of warnings and minor issues.
2016-06-29 22:10:29 -07:00
Chris Moeller
7876a4492f
Handle background track metadata loading in a saner manner.
2016-06-28 19:33:48 -07:00
Chris Moeller
ffa31e696d
Remove unused function declaration.
2016-06-28 19:33:21 -07:00
Chris Moeller
03b825ced3
Hopefully fix the last of the Automatic Reference Counting issues that remained.
2016-06-19 12:57:18 -07:00
Chris Moeller
ba9fe0534f
Convert playlist metadata loader to use code blocks, which fixes references and stops crashes on adding new tracks.
2016-05-07 10:20:46 -07:00
Chris Moeller
0e3644177e
Updated everything else to ARC, and plugged a release cycle.
2016-05-05 13:05:39 -07:00
Chris Moeller
25236a254a
On second thought, let's not allow other repeat modes to wrap around the playlist boundary, either
2015-02-07 23:38:16 -08:00
Chris Moeller
321a5ea23f
Fix repeat none and repeat all being swapped
2015-02-07 23:36:23 -08:00
o1
b3072709e4
Fixed possible track idx overflow causing crash
2015-01-07 15:10:33 +03:00
Chris Moeller
12dc73430b
Last minute bug fixes
2014-12-03 22:34:13 -08:00
Chris Moeller
da26e6757b
Implemented a distributed notification for track information and playback status
2014-12-03 22:13:27 -08:00
Chris Moeller
0ccc0f4dae
Fixed XML playlist saving on Yosemite
2014-09-16 18:27:14 -07:00
Chris Moeller
9cd138384d
Setting Repeat One will now direct all synthesizing decoders to run forever, rather than merely restarting repeatedly. Playptmod now cuts off length detection after half an hour, in case some files' loops are not detected.
2014-02-13 21:16:18 -08:00
Chris Moeller
1b4ef20d19
Added 'days' to playlist total time, but only if the total hours is 24 or greater
2013-10-20 21:16:07 -07:00
Chris Moeller
b461e774fd
Fixed undo/redo handling when the playlist is sorted, including undo/redo interleaved with different sorting orders
2013-10-18 01:47:48 -07:00
Chris Moeller
3b8b948a1e
Playlists are now saved as they have been rearranged in the UI
2013-10-18 00:43:55 -07:00
Chris Moeller
aa2676f605
Made duplicate and dead item removal correctly remove the items by their arranged indexes
2013-10-18 00:25:37 -07:00
Chris Moeller
2f5769d668
Made arranged item remover actually remove the correct arranged items and use the correct indexes
2013-10-18 00:17:03 -07:00
Chris Moeller
7a9e4a720c
Added Remove Dead Items command
2013-10-18 00:14:53 -07:00
Chris Moeller
2d5f340011
Added Remove Duplicate Items command
2013-10-18 00:13:27 -07:00
Chris Moeller
2c8f085a3d
Clear the selection when adding items to the playlist, so that the info dialog will hopefully have some valid data next time a track is selected
2013-10-15 10:38:37 -07:00
Chris Moeller
088594dc8c
Implemented clipboard support for the playlist view
2013-10-12 22:08:34 -07:00
Chris Moeller
759aeab4fb
Implemented pause on startup
2013-10-12 19:16:47 -07:00
Chris Moeller
e6a2773e8a
XML playlists will no longer store metadataLoaded for files where an error occurred
2013-10-12 17:20:57 -07:00
Chris Moeller
697ed357a9
mamburu: Being unable to remove an entry from playlist is fixed
2013-10-11 12:39:05 -07:00
Chris Moeller
521eb67183
mamburu: Randomizing playlist is now undoable, adding playlist entry no longer causes un-randomization
2013-10-11 12:33:58 -07:00
Chris Moeller
d1f6ec850e
tuurngait: Major UI Improvements
2013-10-11 07:16:47 -07:00
Chris Moeller
e5a648578b
mamburu: Logging improved, no more excessive logging in release builds
2013-10-11 05:03:55 -07:00
Chris Moeller
8d19b2538a
XML playlist now stores and loads the playback queue
2013-10-10 01:43:04 -07:00
Chris Moeller
7d6cfe50df
Prevent XML playlists from being saved by the GUI
2013-10-10 00:39:35 -07:00
Chris Moeller
754a22166a
XML playlists now store album art in an MD5 hash indexed dictionary, but continue to read the older format for backwards compatibility
2013-10-09 16:14:23 -07:00
Chris Moeller
555ccc9e87
Now storing all album art internally as its original format and synthesizing NSImage objects on demand
2013-10-09 13:53:13 -07:00
Chris Moeller
d1e51ee9a1
We shouldn't be releasing objects that belong to something else
2013-10-09 11:51:41 -07:00
Chris Moeller
1743016e71
Fixed serialization of FilePlaylistEntry; Added serialization and unserialization of album art
2013-10-09 10:34:32 -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
Chris Moeller
2837b12d32
Fix unsigned reporting, and can't match unsigned type declaration exactly
2013-10-07 11:26:23 -07:00
Chris Moeller
74b6188772
Implemented floating point sample format support into CogAudio and all relevant plug-ins
2013-10-05 14:15:09 -07:00
Chris Moeller
b16ccd59f7
Fixed bitrate handler
2013-10-05 02:47:25 -07:00
Chris Moeller
7c5eaed629
Added now playing spam hotkey, currently format hard coded
2013-10-04 04:16:09 -07:00
Chris Moeller
ec0e45381e
Cleaned up most of the warnings, eliminated use of deprecated APIs, and fixed the hotkeys crashing.
2013-10-03 01:00:58 -07:00
Chris Moeller
4c0cf34250
More ReplayGain support, now with metadata handling, but only if the metadata is already loaded
2013-10-02 02:30:04 -07:00
Chris Moeller
6ea103b1c3
Implemented ReplayGain support, so far only in the HighlyComplete component.
2013-10-01 23:00:16 -07:00
Chris Moeller
b9d451c96f
Corrected base classes to silence warnings
2013-09-29 18:59:04 -07:00
Chris Moeller
25bf55459e
Silenced some warnings
2013-09-29 17:27:55 -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
7e3f257090
Fix shuffle.
2009-03-24 20:12:52 -07:00
vspader
7819210b96
Added interface for shuffle albums mode.
2009-03-09 21:04:46 -07:00
vspader
7491fd3bf0
Support for album art metadata.
2009-03-08 13:04:09 -07:00
vspader
4c7ee96f76
Added Info Inspector.
...
Moved Formatters into their own folder.
2009-03-07 14:31:57 -08:00
vspader
d2235536c5
Fixed nil sent to NSAttributedString.
2009-03-07 11:52:42 -08:00
vspader
7cbebef352
Fixed up metadata loading so metadata isn't always read when you play.
2009-03-05 20:46:42 -08: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
bbd2c6c7f6
Always accept non-file URLs into the playlist.
2009-03-04 22:56:52 -08:00
vspader
6525d593f2
Fixed indentation.
2009-02-28 22:03:27 -08:00
vspader
af6c5f343a
Cleaned up logic a little.
2009-02-28 14:40:30 -08:00
vspader
03937f480b
Cleaned up modified add behavior.
2009-02-28 14:22:33 -08:00
vspader
606cdef1d0
Fixed last commit.
2009-02-28 12:53:24 -08:00
vspader
3cd7402d3d
Re-request the next stream when the shuffle/repeat mode changes.
2009-02-28 12:26:43 -08:00
vspader
fda5d50712
If you change the playlist near the end of a song, it should now play the correct song.
2009-02-28 10:57:21 -08:00
vspader
489063ad33
Register defaults for shuffle/repeat.
2009-02-28 10:18:56 -08:00
vspader
df2fa22a93
Shuffle/Repeat are now remembered.
2009-02-28 10:06:21 -08:00
vspader
3b9d20fdc5
Fixed sorting for non-0 padded files.
2009-02-28 09:41:37 -08:00
vspader
c902c96a19
Fixed shuffle images.
2009-02-27 22:40:50 -08:00
vspader
c6dbeb64ca
Rearrange order of evaluation so URL is not dereferenced for file URLs unless there is no metadata.
2009-01-18 08:00:39 +00:00
lmsilva
dda74d0608
fixed seek slider from becoming active & disabling it when STOP occurs
2008-11-21 15:14:23 +00:00
vurlix
38e6e9af62
fix some bugs reported by the clang static analyzer
2008-08-26 17:45:16 +00:00
vspader
f53bfc861d
Side pane say what?
2008-06-21 04:05:30 +00:00
vspader
32a5c7257f
Slightly improved file-tracking playlist entry. Now will default to the last URL it looked up/received of the file if the path is no longer found, which helps in the case where a network share was disconnected.
2008-05-21 11:27:01 +00:00
vasfed
584710ffb1
Changed playlist behavior preferences to be pop-up buttons with choices
2008-05-18 09:38:53 +00:00
vasfed
f9f0891f6c
Fixed a bug in APL plugin with image files containing # in name
2008-05-18 08:04:46 +00: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
23124f7792
Fixed bug when play on add is enabled and the playlist is empty.
2008-05-04 22:29:02 +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
vspader
7314c6cba1
Fixed bug with loading non-multitrack files.
2008-03-24 12:31:55 +00:00
vspader
0a1630db7e
Fix for multi-track files and the file move watching.
2008-03-15 04:45:37 +00:00
vspader
fe3fd5cb21
Added file tracking to file playlist entries using filerefs.
2008-03-13 01:43:33 +00:00
vspader
0da67249fc
Fixed up playlist context menu.
...
Removed album/artist name from menu thanks to Fiona Apple and some clever person who thought it would be funny to shove the entire album name into the tag.
2008-03-11 23:31:19 +00:00
vspader
dbfa0363de
Some cleanup and fixes for the toggle menu.
2008-03-09 02:53:13 +00:00
vspader
208065494c
Fix for spotlight playlistentry dealloc and added missing fields to playlistentry dealloc.
2008-03-09 02:05:00 +00:00
matthewleon
c94d31f6d9
Dealloc for PlaylistEntry seems to shrink memory leak.
2008-03-09 00:22:48 +00:00
vspader
637c0d598e
Added transformers for menu item title. There must be a better way...
2008-03-08 23:58:52 +00:00
vspader
3375e15a83
Queue is now a toggle.
2008-03-08 23:57:54 +00:00
vspader
569a3e79cc
Fixed scrolling behaviour.
2008-03-04 01:14:51 +00:00
vspader
5346f0dbde
Fixed font-size changing.
2008-03-04 01:00:09 +00:00
vspader
79cd625152
Changed year to an NSNumber. Fixed up taglib plugin. Tracks/Years with 0 now show up as nothing.
2008-03-04 00:43:47 +00:00
vspader
16ccf5622d
Fixed issues with big big playlists.
2008-03-04 00:35:20 +00:00
vspader
9af41d7542
A few taglib fixes. Reads id3v2 before ape for mp3 files. Added AutoReleasePool to backgrounded method.
2008-03-03 03:26:19 +00:00
vspader
cf46d16a56
Remove concurrency! Mwahaha! Also, moved updateTotalTime so it's done after all operations. Now it's actually usable while loading time.
2008-03-03 02:25:52 +00:00
vspader
276176a80c
Updated playlistLoader to be CONCURRENT! Mwahahaha!
...
total time is now automatically updated by observing PlaylistController.arrangedObjects.length
2008-03-03 02:09:56 +00:00
vspader
671d7021ae
Added Current Entry Object controller to fix issue with currently playing not being updated when loading.
2008-03-02 20:03:22 +00:00
matthewleon
92be178bf2
Playlist entries are now processed on main thread.
2008-03-02 10:51:37 +00:00
matthewleon
d84a12d596
Hack to fix display of newly added songs (no idea why this is should be necessary, maybe something wrong with KVO).
2008-03-01 19:56:10 +00:00
matthewleon
8dee65b8b6
Small threading memory leak fix.
2008-03-01 18:38:47 +00:00
matthewleon
4168bb43eb
Redid threading for reading file info and metadata. Still a bit buggy.
2008-03-01 18:29:14 +00:00
matthewleon
666d803897
Code cleanup.
2008-03-01 15:04:46 +00:00
vspader
d7826ee144
Clear stopAfter status when changing the song. Fixed bug where status wasn't dependant on stopAfter.
2008-03-01 03:35:27 +00:00
vspader
3cdca94207
Split status up into bunches of properties and made it a readonly property.
2008-03-01 03:29:21 +00:00
vspader
6c5ecf3701
Updated PlaylistView so status column header is blank.
2008-03-01 02:48:12 +00:00
matthewleon
23396a9747
More PlaylistEntry cleanup.
2008-02-29 21:56:01 +00:00
matthewleon
9e8173bc74
PlaylistEntry cleanup.
2008-02-29 21:54:09 +00:00