1
1
mirror of https://github.com/danbee/persephone synced 2025-03-04 08:39:11 +00:00
Commit Graph

258 Commits

Author SHA1 Message Date
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
78e732cb7b
Stop relying on libmpdclient enums outside of MPDClient 2019-02-08 13:49:56 -05:00
58dcab754f
Bunch of changes based on PR feedback 2019-02-08 13:49:56 -05:00
2c06d24276
Change the queue icon depending on state 2019-02-08 13:49:56 -05:00
be8b286de8
Refactor setting of highlighted queue song 2019-02-08 13:49:56 -05:00
ce91a4282c
Rename QueueController to better reflect its job 2019-02-08 13:49:56 -05:00
b62b42707b
Big re-org 2019-02-08 13:49:55 -05:00
db4c223b4b
Display icon next to playing track 2019-02-08 13:47:48 -05:00
24cc5181b8
Render the current playing track in bold 2019-02-08 13:47:48 -05:00
dc86de752d
Create status class and reorganise MPDClient 2019-02-08 13:47:48 -05:00
21c77cd243
Add Queue heading 2019-02-08 13:47:47 -05:00
e6b3aff3bb
Split title and artist into their own columns 2019-02-08 13:47:47 -05:00
e0a9290684
Show the queue and update it when it changes 2019-02-08 13:47:47 -05:00
22926d343f
Update state of transport controls on state change 2019-02-08 13:47:47 -05:00
6bd29cdf00
Remove debugging 2019-02-08 13:47:47 -05:00
774312dee0
Initialize status
This also fixes an occasional crash seen on quitting the app.
2019-02-08 13:47:47 -05:00
f77141faa0
Add handler delegate for MPD client notifications 2019-02-08 13:47:46 -05:00
5d1230f2cc
Move MPD connection to AppDelegate 2019-02-08 13:47:46 -05:00
909f8f68fb
Should be able to skip tracks while paused 2019-02-07 21:28:51 -05:00
9ec70e76b0
Check playing state before sending next/previous 2019-02-07 21:28:51 -05:00
693ce17c4d
Refactor mpdclient to fetch status 2019-02-07 21:28:51 -05:00
49f2acd9ed
MPDClient correctly sequences commands
In order to avoid getting disconnected from the server, it is necessary
to send an "idle" command once you are connected. This tells the server
that the client is going to wait for a status change message from the
server. In the meantime if the client needs to send another command, it
must first send "noidle", then send the command, then send "idle" once
more. If the command results in a status change, the "idle" will return
immediately, which must be dealt with and then the "idle" command must
be sent once more.

Phew!
2019-02-07 21:28:50 -05:00
0bed74b7d3
You can press a button and a thing happens! 2019-02-07 21:28:50 -05:00
641a450279
Add modulemap for libmpdclient 2019-01-25 12:02:54 -05:00
5a7e8dcebb
Add libmpdclient bridge header 2019-01-25 11:26:11 -05:00
328e4cf602
Setup window and add toolbar buttons 2019-01-11 17:24:53 -05:00
6c38b7435e
Initial Commit 2018-07-31 13:05:54 -04:00