Commit Graph

329 Commits (1a7e7a4b70c0a4a43e580103a664aaede6de42a6)

Author SHA1 Message Date
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