mirror of
https://github.com/danbee/persephone
synced 2025-03-04 08:39:11 +00:00
46 lines
982 B
Swift
46 lines
982 B
Swift
//
|
|
// 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
|
|
}
|
|
}
|
|
|
|
@IBOutlet var volumeSlider: NSSlider!
|
|
}
|
|
|
|
extension VolumeControlView: StoreSubscriber {
|
|
typealias StoreSubscriberStateType = PlayerState
|
|
|
|
func newState(state: StoreSubscriberStateType) {
|
|
volumeSlider.integerValue = state.volume
|
|
currentVolume = state.volume
|
|
}
|
|
}
|