mirror of
https://github.com/Toxblh/MTMR.git
synced 2026-01-11 09:28:38 +00:00
50 lines
1.6 KiB
Swift
50 lines
1.6 KiB
Swift
import Cocoa
|
|
import AppKit
|
|
import AVFoundation
|
|
import CoreAudio
|
|
|
|
class BrightnessViewController: NSCustomTouchBarItem {
|
|
private(set) var sliderItem: CustomSlider!
|
|
|
|
init(identifier: NSTouchBarItem.Identifier, refreshInterval: Double, image: NSImage? = nil) {
|
|
super.init(identifier: identifier)
|
|
|
|
if (image == nil) {
|
|
sliderItem = CustomSlider()
|
|
} else {
|
|
sliderItem = CustomSlider(knob: image!)
|
|
}
|
|
sliderItem.target = self
|
|
sliderItem.action = #selector(BrightnessViewController.sliderValueChanged(_:))
|
|
sliderItem.minValue = 0.0
|
|
sliderItem.maxValue = 100.0
|
|
sliderItem.floatValue = sharedBrightnessController.brightness * 100
|
|
|
|
self.view = sliderItem
|
|
|
|
let timer = Timer.scheduledTimer(timeInterval: refreshInterval, target: self, selector: #selector(BrightnessViewController.updateBrightnessSlider), userInfo: nil, repeats: true)
|
|
RunLoop.current.add(timer, forMode: RunLoop.Mode.common)
|
|
}
|
|
|
|
required init?(coder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
deinit {
|
|
sliderItem.unbind(NSBindingName.value)
|
|
}
|
|
|
|
@objc func updateBrightnessSlider() {
|
|
DispatchQueue.main.async {
|
|
self.sliderItem.floatValue = sharedBrightnessController.brightness * 100
|
|
}
|
|
}
|
|
|
|
@objc func sliderValueChanged(_ sender: Any) {
|
|
if let sliderItem = sender as? NSSlider {
|
|
sharedBrightnessController.brightness = sliderItem.floatValue / 100.0
|
|
}
|
|
}
|
|
|
|
}
|