mirror of
https://github.com/Toxblh/MTMR.git
synced 2026-01-10 17:08:39 +00:00
+ configurable refresh interval for brightness
This commit is contained in:
parent
f09b9155c4
commit
ca2ae30873
@ -6,7 +6,7 @@ import CoreAudio
|
||||
class BrightnessViewController: NSCustomTouchBarItem {
|
||||
private(set) var sliderItem: NSSlider!
|
||||
|
||||
init(identifier: NSTouchBarItem.Identifier, image: NSImage? = nil) {
|
||||
init(identifier: NSTouchBarItem.Identifier, refreshInterval: Double, image: NSImage? = nil) {
|
||||
super.init(identifier: identifier)
|
||||
let brightness:Double = Double(getBrightness())
|
||||
sliderItem = NSSlider(value: brightness*100.0, minValue: 0.0, maxValue: 100.0, target: self, action:#selector(BrightnessViewController.sliderValueChanged(_:)))
|
||||
@ -17,7 +17,7 @@ class BrightnessViewController: NSCustomTouchBarItem {
|
||||
|
||||
self.view = sliderItem
|
||||
|
||||
let timer = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(BrightnessViewController.updateBrightnessSlider), userInfo: nil, repeats: true)
|
||||
let timer = Timer.scheduledTimer(timeInterval: refreshInterval, target: self, selector: #selector(BrightnessViewController.updateBrightnessSlider), userInfo: nil, repeats: true)
|
||||
RunLoop.current.add(timer, forMode: RunLoopMode.commonModes)
|
||||
}
|
||||
|
||||
|
||||
@ -58,6 +58,12 @@ class SupportedTypesHolder {
|
||||
let item = ItemType.appleScriptTitledButton(source: Source(filePath: scriptPath), refreshInterval: interval ?? 1800.0)
|
||||
return (item: item, action: .none)
|
||||
},
|
||||
"brightness": { decoder in
|
||||
enum CodingKeys: String, CodingKey { case refreshInterval }
|
||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||
let interval = try container.decodeIfPresent(Double.self, forKey: .refreshInterval)
|
||||
return (item: .brightness(refreshInterval: interval ?? 0.5), action: .none)
|
||||
},
|
||||
"battery": { decoder in
|
||||
enum CodingKeys: String, CodingKey { case refreshInterval }
|
||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||
@ -96,7 +102,7 @@ enum ItemType: Decodable {
|
||||
case timeButton(formatTemplate: String)
|
||||
case flexSpace()
|
||||
case volume()
|
||||
case brightness()
|
||||
case brightness(refreshInterval: Double)
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case type
|
||||
@ -145,7 +151,8 @@ enum ItemType: Decodable {
|
||||
case .volume:
|
||||
self = .volume()
|
||||
case .brightness:
|
||||
self = .brightness()
|
||||
let interval = try container.decodeIfPresent(Double.self, forKey: .refreshInterval) ?? 0.5
|
||||
self = .brightness(refreshInterval: interval)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ extension ItemType {
|
||||
return "NSTouchBarItem.Identifier.flexibleSpace"
|
||||
case .volume():
|
||||
return "com.toxblh.mtmr.volume"
|
||||
case .brightness():
|
||||
case .brightness(refreshInterval: _):
|
||||
return "com.toxblh.mtmr.brightness"
|
||||
}
|
||||
}
|
||||
@ -120,8 +120,8 @@ class TouchBarController: NSObject, NSTouchBarDelegate {
|
||||
barItem = nil
|
||||
case .volume:
|
||||
barItem = VolumeViewController(identifier: identifier)
|
||||
case .brightness:
|
||||
barItem = BrightnessViewController(identifier: identifier)
|
||||
case .brightness(refreshInterval: let interval):
|
||||
barItem = BrightnessViewController(identifier: identifier, refreshInterval: interval)
|
||||
}
|
||||
for parameter in item.additionalParameters {
|
||||
if case .width(let value) = parameter, let widthBarItem = barItem as? CanSetWidth {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user