diff --git a/Persephone/Controllers/WindowController.swift b/Persephone/Controllers/WindowController.swift index 86ba0ed..5d48830 100644 --- a/Persephone/Controllers/WindowController.swift +++ b/Persephone/Controllers/WindowController.swift @@ -49,17 +49,6 @@ class WindowController: NSWindowController { setTransportControlState() } - @objc func timeChanged(_ notification: Notification) { - guard let totalTime = notification.userInfo?[Notification.totalTimeKey] as? UInt, - let elapsedTimeMs = notification.userInfo?[Notification.elapsedTimeMsKey] as? UInt - else { return } - - self.totalTime = totalTime - self.elapsedTimeMs = elapsedTimeMs - - setTrackProgressControls() - } - func setTransportControlState() { guard let state = state else { return } @@ -75,6 +64,17 @@ class WindowController: NSWindowController { } } + @objc func timeChanged(_ notification: Notification) { + guard let totalTime = notification.userInfo?[Notification.totalTimeKey] as? UInt, + let elapsedTimeMs = notification.userInfo?[Notification.elapsedTimeMsKey] as? UInt + else { return } + + self.totalTime = totalTime + self.elapsedTimeMs = elapsedTimeMs + + setTrackProgressControls() + } + func setTrackProgressControls() { guard let totalTime = totalTime, let elapsedTimeMs = elapsedTimeMs @@ -83,11 +83,7 @@ class WindowController: NSWindowController { trackProgressBar.maxValue = Double(totalTime * 1000) trackProgressBar.integerValue = Int(elapsedTimeMs) - if [.playing, .paused].contains(state) { - trackProgressBar.isEnabled = true - } else { - trackProgressBar.isEnabled = false - } + trackProgressBar.isEnabled = [.playing, .paused].contains(state) if state == .playing { trackTimer?.invalidate() diff --git a/Persephone/MPDClient/MPDClient.swift b/Persephone/MPDClient/MPDClient.swift index fb8ea4f..c10d3f1 100644 --- a/Persephone/MPDClient/MPDClient.swift +++ b/Persephone/MPDClient/MPDClient.swift @@ -61,6 +61,7 @@ class MPDClient { fetchAllAlbums() self.delegate?.didUpdateState(mpdClient: self, state: self.status!.state) + self.delegate?.didUpdateTime(mpdClient: self, total: self.status!.totalTime, elapsedMs: self.status!.elapsedTimeMs) self.delegate?.didUpdateQueue(mpdClient: self, queue: self.queue) self.delegate?.didUpdateQueuePos(mpdClient: self, song: self.status!.song) idle()