95323e8a6f
Drag and drop works properly now
2019-06-22 13:48:25 -04:00
aef5b8534b
Drag and drop moves tracks in queue
...
For some reason we're not seeing the insert indicator, and I can't
figure out why.
2019-06-22 13:48:25 -04:00
8c385d9c88
Only display queue context menu on songs
2019-06-22 13:48:25 -04:00
5416d793ad
Actually clear the queue
2019-06-22 13:48:25 -04:00
b2a80abe7b
Wire up main queue menu options
2019-06-22 13:48:25 -04:00
aecff619a2
Add queue play/remove menu
2019-06-22 13:48:24 -04:00
6fc7e09deb
Backspace to remove track from queue
2019-06-22 13:48:24 -04:00
5a9c2c0698
Context menu to remove tracks from queue
2019-06-22 13:48:24 -04:00
cd094c3a64
Implement top level song menu
2019-06-22 13:48:24 -04:00
e05698e766
Refactor getAlbumForSongs
2019-06-22 13:46:22 -04:00
44f2b1c238
Ooops, left this hanging around
2019-06-22 13:46:22 -04:00
7de6d59594
Add context menu for playing/adding songs
2019-06-22 13:45:45 -04:00
338dde08d3
Double click on a track to play it
2019-06-22 13:45:45 -04:00
998ddb60bc
Create shared AlbumDetailView and Popover
...
This prevents the app from creating a new one for every album, which was
not friendly on memory usage! (I saw the app hit 2.5GB of usage at one
point 😧 )
2019-06-22 13:45:45 -04:00
0ee299a9c8
We don't need strong references here
2019-06-22 13:45:44 -04:00
2bac18187c
Draw separator lines on the song list table
2019-06-22 13:45:44 -04:00
31b764905a
WIP: Display tracks with duration
...
We also seem to have fixed the crashing bug! 🎉
2019-06-22 13:45:44 -04:00
63c55e1bd4
WIP: Add album detail view
...
TODO: Fix crash!
Unexpected outstanding background CATransaction
2019-06-22 13:45:44 -04:00
b81fde390a
Prep for 0.12.0-alpha release
2019-05-18 15:35:39 -04:00
04961af040
Fix 2x shuffle and repeat button icon position
...
Also, we don't need repeat 1 just yet
2019-05-18 15:27:21 -04:00
a7f8d50826
Fix tiny bug with queue display
2019-05-18 15:23:12 -04:00
9351061a8d
Set button state on server state change
2019-05-18 15:23:12 -04:00
ad04250760
Shuffle/repeat buttons change server state
2019-05-18 15:23:12 -04:00
d211651e16
Move view code where it belongs
2019-05-18 15:19:45 -04:00
b59c70e4ed
Add queue position numbers to the queue
2019-05-18 15:19:45 -04:00
2a1327031e
Handle closing and opening windows
2019-05-18 15:19:45 -04:00
ac66a2f49d
Add dynamic dock menu with "Now Playing" section
...
Inspired pretty heavily by iTunes.
2019-05-18 15:19:44 -04:00
2204d5428d
Remove tabbing from prefs window
2019-05-18 15:15:11 -04:00
c01a662c84
Tidy up more of the window handling
2019-05-18 15:15:10 -04:00
49269ca21b
Handle closing and opening windows
2019-05-18 15:15:10 -04:00
e6bbe4f35d
Add dynamic dock menu with "Now Playing" section
...
Inspired pretty heavily by iTunes.
2019-05-18 15:15:10 -04:00
8e6396dbe9
WIP: Dock menu
2019-05-18 15:15:10 -04:00
5f19a7401d
Get album list from passed in state
2019-05-17 16:38:55 -04:00
edcfe49b19
Unsubscribe from the store if the view is deallocated
2019-05-10 15:31:07 -04:00
53b90a4a4a
Name the mpdSong
2019-05-10 15:30:59 -04:00
5591cda7fa
Remove NotificationsController and most == methods
2019-05-10 15:30:32 -04:00
ade8423a83
Fix bug that causes a crash when the playlist finishes
2019-05-10 11:09:11 -04:00
ef9f1e12c1
Touch the user notifications controller
...
Static lets are lazily initialised.
2019-05-01 19:48:09 -04:00
96bb9679ab
We don't need to pass these since the store knows
2019-04-30 20:55:32 -04:00
8bab7c2bf5
Refactor more of the things!
...
1. Move all the mpdClient actions into a reducer.
2. Move global stuff into their own global struct
2019-04-30 09:11:50 -04:00
4d2a8087ed
Import AppKit rather than Cocoa
...
Importing Cocoa pulls in CoreData, which we're not using.
https://github.com/brentsimmons/NetNewsWire/blob/master/Technotes/CodingGuidelines.md
2019-04-29 08:59:04 -04:00
b311005393
We need to invalidate the timer on the main thread
2019-04-29 08:31:58 -04:00
0de001ce16
Give the queue its own local state
2019-04-29 08:31:44 -04:00
22bb7efef2
Completely rejigger preferences system to use ReSwift
2019-04-28 18:02:09 -04:00
8882c4246c
Refactor all the things!
...
I discovered Xcode's refactor function 😁
2019-04-28 10:48:10 -04:00
d2d4705e87
Current artwork and notifications
2019-04-27 22:39:18 -04:00
63afa3ffce
Fix album reloading issue
...
All the albums were being forced to reload on update because they come
back with `unLoaded` cover art.
2019-04-27 21:14:59 -04:00
6e0c97492b
Some tweaks
2019-04-27 20:48:49 -04:00
86feface73
Move ReSwift stuff into extensions
2019-04-27 20:48:49 -04:00
81b0626017
Move database updating indicator to ReSwift
2019-04-27 20:48:49 -04:00
5f80a1b8e9
Reimplement reset album art
2019-04-27 20:48:49 -04:00
40ae6909cd
Album images load!
2019-04-27 20:48:49 -04:00
2e6c903d74
Mostly working, albumlist is not showing album art
2019-04-27 20:48:48 -04:00
bb5a7c2c5c
Transport and progress finished
2019-04-27 20:45:27 -04:00
d076ef311b
We need to run the timer on the main thread
...
This adds it to the main RunLoop.
2019-04-27 20:45:26 -04:00
5651276bd6
WIP: Big ReSwift refactor
2019-04-27 20:45:26 -04:00
89b26c4b8a
Fix crash on album end
2019-04-18 17:00:12 -04:00
3c9a18a9fe
Move notification into its own service
2019-04-14 20:09:32 -04:00
b98d7a4f93
Correct update order
...
This fixes the progress bar display
2019-04-14 19:43:22 -04:00
4094fc19ea
Show album art on notification
2019-04-14 19:40:35 -04:00
e441d7b0d6
Send desktop notifications on track or state change
2019-04-14 19:33:10 -04:00
d79fd4f8e6
Update version number and enable hardened runtime
2019-04-09 14:24:51 -04:00
d41faeb71e
Maintain aspect ratio when resizing images
2019-04-01 20:45:17 -04:00
caf7f990e0
Utility QoS is better for album art
2019-04-01 20:11:19 -04:00
5a8bc4a836
Some songs don't have an AlbumArtist listed
2019-04-01 19:46:56 -04:00
fc99c59d53
Stop album view jumping occasionally
2019-04-01 19:45:51 -04:00
87dafef15a
Update version number
2019-03-31 17:47:27 -04:00
f1c9f25296
Remove saving to filesystem for now
2019-03-31 17:47:16 -04:00
50e58f7cac
Use CrytoSwift instead of string extension
2019-03-31 17:33:41 -04:00
f014c4f929
Ensure artwork is fetched when the pref is changed
2019-03-31 17:33:10 -04:00
01371db6cb
Add config options for saving artwork to filesystem
2019-03-29 17:18:36 -04:00
025830b950
Only get artwork from the internet if the pref is set
2019-03-29 17:18:20 -04:00
29ab98b28c
Save fetched remote artwork to album directory
2019-03-29 16:51:42 -04:00
6bec0c170d
Big album art display works!
...
Still to be done: if an image does not exist on the filesystem it will
keep fetching it remotely. We probably shouldn't do this.
2019-03-29 15:28:46 -04:00
da5bafd7fd
Compiler couldn't infer type here
2019-03-27 09:06:35 -04:00
2fb0ceeaee
Finish AlbumArtService refactor
2019-03-25 22:39:40 -04:00
27c0e32e48
WIP: Refactor album art service
...
We need to make it more flexible and less coupled
2019-03-25 22:23:07 -04:00
c0c2bf2fc8
Bump version number
2019-03-25 21:20:44 -04:00
3ac2be469a
Fixed a silly bug
...
We forgot the actual albumURI in the path!
2019-03-25 21:20:00 -04:00
4b43d661c6
Bump version number
2019-03-23 14:42:42 -04:00
0db3cbe137
Add icon for album art preferences
2019-03-23 14:42:41 -04:00
560a3bf14f
Update minor version number
2019-03-23 14:42:41 -04:00
9eacd2b25a
Rename delegate methods to better reflect purpose
2019-03-23 14:42:41 -04:00
92ca7ea93f
Update version number
2019-03-23 14:42:41 -04:00
b43afb405f
Disable the menu item during updates
2019-03-23 14:42:41 -04:00
79ad585530
The database doesn't always update (if there's no update)
2019-03-23 14:42:41 -04:00
8983106cda
Wire up "update database"
...
* Menu option starts a database update.
* Spinner to show that update is taking place.
2019-03-23 14:42:40 -04:00
0147ffbfda
Couple of tweaks
2019-03-23 14:29:41 -04:00
ce5b0be2e1
Refactor album art with promises
...
Co-authored-by: Adam Sharp <adam@sharplet.me>
2019-03-22 17:14:32 -04:00
5672ded50a
Fetch artwork from MusicBrainz if not on FS
2019-03-20 20:06:24 -04:00
11be238788
Address PR feedback
...
* Use the OperationQueue's `operationCount` function instead of keeping
count ourselves. This is reliable now each command is entirely self
contained.
* Rename `queueCommand` to `enqueueCommand`
* Move the command Enum into its own model file
* Move the `enqueueCommand` function into MPDClient+Command
2019-03-20 20:06:24 -04:00
9714aabb10
Update version number
2019-03-20 20:06:24 -04:00
9123a25bc7
Refactor art service
2019-03-20 20:06:24 -04:00
e8b58b7686
Scale down cover images
...
This brings memory usage (for my music library) down from 2+GB to less
than 300MB. 👍🏼
2019-03-20 20:06:23 -04:00
280ec0cdc4
Reload album data when the library path is changed
2019-03-20 20:06:23 -04:00
487e0cc2c2
Fix a few things that got forgotten during the refactor
2019-03-20 20:06:23 -04:00
9517abf319
Now gets artwork from filesystem!
2019-03-20 20:06:23 -04:00
fe748e2c61
WIP: Refactor MPDClient
...
This should make handling the queuing side work more reliably.
2019-03-20 20:06:23 -04:00
537a66d6aa
Add album art preferences pane
2019-03-20 20:06:23 -04:00
88aa765e83
Re-queue any cover art request that errors
2019-03-20 20:06:22 -04:00
592cd73ec7
WIP: Code to try out different services
2019-03-20 20:06:22 -04:00
5e97bfc42b
Bump version number to 0.9.0
2019-03-20 20:06:22 -04:00
02a68ba539
We have a shared resource for these now
2019-03-20 20:06:22 -04:00
38431702d2
Refactor the album art code to use promises
2019-03-20 20:06:21 -04:00
4ff0ff6e9b
This is how the collection view should be updated
...
The way I was doing it before was resulting in reused views getting
updated by the code, which caused albums to appear in the wrong place.
2019-03-20 20:06:21 -04:00
b91cb50f4e
New blank album icon
2019-03-20 20:06:21 -04:00
51bc2c9adf
Getting album art should be the datasource's responsibility
2019-03-20 20:06:21 -04:00
3b7bdc7983
WIP: Create operation queue for album art download
2019-03-20 20:06:21 -04:00
480c2786ad
WIP: Fetch album art from MusicBrainz
2019-03-20 20:06:20 -04:00
bc84d925d6
Less confusing
2019-03-08 16:02:36 -05:00
04a5eb1735
Maintain relative scroll position on resize
2019-03-08 15:52:01 -05:00
92366ac795
Ensure the album play button never sticks around
2019-03-06 17:21:02 -05:00
30ca11fce4
Reset the queuePos to -1 on queue change
...
This avoids the index ever being out of range which is what was causing
the crash. The queuePos gets updated straight after the queue anyway.
2019-03-03 19:18:53 -05:00
d4fe7c396d
Messed this up when I refactored out the datasource
2019-03-03 19:10:01 -05:00
e21680a890
Better temp icon
2019-02-23 12:47:21 -05:00
38fc309606
Update version to something sensible
2019-02-22 22:16:06 -05:00
1fda804258
Add MediaKeyTap to capture media keys
2019-02-22 21:13:56 -05:00
52b0a3b067
Add track progress bar
...
Adds a slider control that shows the track playback progress. The slider
can be used to seek through the track.
2019-02-22 20:59:01 -05:00
2d6aa478a7
Add a button to albums that plays the album
...
This works by clearing the queue, adding all the tracks from the album
to the queue and playing the first track.
Fix bug where resize might leave a play button visible
Had to refactor the QueueView somewhat as there was a bug that only
surfaced on clearing and refilling the playlist. The bug was due to the
way NSOutlineView reuses subviews.
Add screenshot with album play button
Move queue datasource and refactor view controller
Move album datasource out of the view controller
2019-02-22 13:09:09 -05:00
5d0e1c4719
Spacebar triggers play/pause
...
Use the responder chain to handle the keypress.
2019-02-22 11:58:56 -05:00
84d209a967
Add preference window with host and port
2019-02-21 08:16:41 -05:00
201c7effad
Clean up after rebase
2019-02-20 08:31:01 -05:00
93d223b13d
Improve display of blank albums
...
* Add dark and light blank album image variants
* Use CALayer to draw rounded corners and a tinted border on each album
cover
2019-02-20 08:31:01 -05:00
99f54a48ff
Auto set width of albums and restrict queue view width
2019-02-20 08:31:01 -05:00
4b82d2070b
Move album layout to it's own Layout file
2019-02-20 08:26:25 -05:00
9bedbec407
Calling init() is implied
2019-02-16 18:56:13 -05:00
cc7d8d3c88
Clean up after rebase
2019-02-16 18:56:13 -05:00
3e735893a2
Double clicking the header no longer plays a track
2019-02-16 18:56:12 -05:00
e6e020d23c
Better window size limits
2019-02-16 18:56:12 -05:00
d4164dfa72
Double clicking on a track in the queue plays it
2019-02-16 18:56:12 -05:00
a30c6ffc09
Upgrade to Swift 4.2
2019-02-16 18:56:12 -05:00
ffedba5c84
We should only be able to select songs
2019-02-16 18:56:12 -05:00
ba51e99e41
Improve display of blank albums
...
* Add dark and light blank album image variants
* Use CALayer to draw rounded corners and a tinted border on each album
cover
2019-02-16 18:56:12 -05:00
33baaf3a64
Auto set width of albums and restrict queue view width
2019-02-16 18:56:11 -05:00
9216cfc25d
Add album view
2019-02-16 18:56:11 -05:00
a441310966
Better AppIcon naming
2019-02-16 18:55:54 -05:00
f0e815962a
These got lost somewhere
2019-02-16 18:45:36 -05:00
eb32f8cdf6
Address PR feedback
2019-02-16 18:42:18 -05:00
2f36891053
Remove debugging
2019-02-13 22:20:43 -05:00
1181198999
Remove some unused code
2019-02-13 22:20:42 -05:00
b8ed0b1ca6
Change colour of borders depending on dark/light mode
2019-02-13 22:20:42 -05:00
eeb776199b
Improve display of blank albums
...
* Add dark and light blank album image variants
* Use CALayer to draw rounded corners and a tinted border on each album
cover
2019-02-13 22:20:42 -05:00
891d08cfff
Auto set width of albums and restrict queue view width
2019-02-13 22:20:26 -05:00
7714b2609b
Refactor a bunch of things
2019-02-13 22:20:25 -05:00
71805dde15
Truncate long names with an ellipsis
2019-02-13 22:20:25 -05:00
447432120a
Add album view
2019-02-13 22:20:25 -05:00
3cbb24f50d
Add temporary app icon
2019-02-13 22:18:35 -05:00
e6e76473da
Tweak transport icons to be pixel perfect
2019-02-08 14:34:41 -05:00
b9a8b54c42
Move RawRepresentable extension into it's own file
2019-02-08 13:49:57 -05:00
669e24c3f6
Few more tweaks
2019-02-08 13:49:56 -05:00