// // VolumeControlView.swift // Persephone // // Created by Daniel Barber on 2/16/20. // Copyright © 2020 Dan Barber. All rights reserved. // import AppKit import ReSwift class VolumeControlView: NSViewController { static let shared = VolumeControlView() static let popover = NSPopover() var currentVolume: Int = 0 override func viewDidLoad() { super.viewDidLoad() App.store.subscribe(self) { $0.select { $0.playerState } } } @IBAction func volumeSliderAction(_ sender: NSSlider) { let newVolume = sender.integerValue if newVolume != currentVolume { App.mpdClient.setVolume(to: newVolume) currentVolume = newVolume volumeLabel.stringValue = String(currentVolume) } } @IBOutlet var volumeSlider: NSSlider! @IBOutlet var volumeLabel: NSTextField! } extension VolumeControlView: StoreSubscriber { typealias StoreSubscriberStateType = PlayerState func newState(state: StoreSubscriberStateType) { volumeSlider.integerValue = state.volume currentVolume = state.volume volumeLabel.stringValue = String(state.volume) } }