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

Fix a few things that got forgotten during the refactor

This commit is contained in:
Daniel Barber 2019-03-17 10:52:50 -04:00
parent 9517abf319
commit 487e0cc2c2
Signed by: danbarber
GPG Key ID: 931D8112E0103DD8
5 changed files with 25 additions and 17 deletions

View File

@ -36,7 +36,7 @@ class QueueViewController: NSViewController,
let newQueuePos = queueView.selectedRow - 1 let newQueuePos = queueView.selectedRow - 1
if newQueuePos >= 0 { if newQueuePos >= 0 {
AppDelegate.mpdClient.playTrack(queuePos: newQueuePos) AppDelegate.mpdClient.playTrack(at: newQueuePos)
} }
} }

View File

@ -24,12 +24,22 @@ extension MPDClient {
sendStop() sendStop()
case .playPause: case .playPause:
sendPlay() sendPlay()
case .seekCurrentSong:
guard let timeInSeconds = userData["timeInSeconds"] as? Float
else { return }
sendSeekCurrentSong(timeInSeconds: timeInSeconds)
// Status commands // Status commands
case .fetchStatus: case .fetchStatus:
sendRunStatus() sendRunStatus()
// Queue commands
case .fetchQueue: case .fetchQueue:
sendFetchQueue() sendFetchQueue()
case .playTrack:
guard let queuePos = userData["queuePos"] as? Int
else { return }
sendPlayTrack(at: queuePos)
// Album commands // Album commands
case .fetchAllAlbums: case .fetchAllAlbums:

View File

@ -14,16 +14,12 @@ extension MPDClient {
sendCommand(command: .fetchQueue) sendCommand(command: .fetchQueue)
} }
func playTrack(queuePos: Int) { func playTrack(at queuePos: Int) {
guard isConnected else { return } queueCommand(command: .playTrack, userData: ["queuePos": queuePos])
}
noIdle() func sendPlayTrack(at queuePos: Int) {
let commandOperation = BlockOperation { [unowned self] in mpd_run_play_pos(self.connection, UInt32(queuePos))
mpd_run_play_pos(self.connection, UInt32(queuePos))
}
commandOperation.queuePriority = .veryHigh
commandQueue.addOperation(commandOperation)
idle()
} }
func sendFetchQueue() { func sendFetchQueue() {

View File

@ -27,11 +27,10 @@ extension MPDClient {
} }
func seekCurrentSong(timeInSeconds: Float) { func seekCurrentSong(timeInSeconds: Float) {
noIdle() queueCommand(
commandQueue.addOperation { [unowned self] in command: .seekCurrentSong,
mpd_run_seek_current(self.connection, timeInSeconds, false) userData: ["timeInSeconds": timeInSeconds]
} )
idle()
} }
func sendNextTrack() { func sendNextTrack() {
@ -62,4 +61,7 @@ extension MPDClient {
} }
} }
func sendSeekCurrentSong(timeInSeconds: Float) {
mpd_run_seek_current(self.connection, timeInSeconds, false)
}
} }

View File

@ -22,8 +22,8 @@ class MPDClient {
var commandsQueued: UInt = 0 var commandsQueued: UInt = 0
enum Command { enum Command {
case prevTrack, nextTrack, playPause, stop, case prevTrack, nextTrack, playPause, stop, seekCurrentSong,
fetchStatus, fetchQueue, fetchAllAlbums, fetchStatus, fetchQueue, playTrack, fetchAllAlbums,
playAlbum, getAlbumURI playAlbum, getAlbumURI
} }