mirror of
https://github.com/Toxblh/MTMR.git
synced 2026-01-10 17:08:39 +00:00
fix broken brightness buttons; consolidated brightness control
This commit is contained in:
parent
b368a21f62
commit
c989037e54
@ -18,6 +18,7 @@
|
||||
36C2ECDD207C723B003CDA33 /* ParseConfigTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36C2ECDC207C723B003CDA33 /* ParseConfigTests.swift */; };
|
||||
36C2ECDE207C82DE003CDA33 /* ItemsParsing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36C2ECDA207C3FE7003CDA33 /* ItemsParsing.swift */; };
|
||||
36C2ECE0207CB1B0003CDA33 /* defaultPreset.json in Resources */ = {isa = PBXBuildFile; fileRef = 36C2ECDF207CB1B0003CDA33 /* defaultPreset.json */; };
|
||||
36DD28E32172EA34001FD6AD /* SupportBrightness.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36DD28E22172EA34001FD6AD /* SupportBrightness.swift */; };
|
||||
60173D3E20C0031B002C305F /* LaunchAtLoginController.m in Sources */ = {isa = PBXBuildFile; fileRef = 60173D3D20C0031B002C305F /* LaunchAtLoginController.m */; };
|
||||
6027D1B92080E52A004FFDC7 /* BrightnessViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6027D1B72080E52A004FFDC7 /* BrightnessViewController.swift */; };
|
||||
6027D1BA2080E52A004FFDC7 /* VolumeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6027D1B82080E52A004FFDC7 /* VolumeViewController.swift */; };
|
||||
@ -87,6 +88,7 @@
|
||||
36C2ECDA207C3FE7003CDA33 /* ItemsParsing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemsParsing.swift; sourceTree = "<group>"; };
|
||||
36C2ECDC207C723B003CDA33 /* ParseConfigTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseConfigTests.swift; sourceTree = "<group>"; };
|
||||
36C2ECDF207CB1B0003CDA33 /* defaultPreset.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = defaultPreset.json; sourceTree = "<group>"; };
|
||||
36DD28E22172EA34001FD6AD /* SupportBrightness.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportBrightness.swift; sourceTree = "<group>"; };
|
||||
60173D3C20C0031B002C305F /* LaunchAtLoginController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LaunchAtLoginController.h; sourceTree = "<group>"; };
|
||||
60173D3D20C0031B002C305F /* LaunchAtLoginController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LaunchAtLoginController.m; sourceTree = "<group>"; };
|
||||
6027D1B72080E52A004FFDC7 /* BrightnessViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BrightnessViewController.swift; sourceTree = "<group>"; };
|
||||
@ -220,6 +222,7 @@
|
||||
B05600D22083E9BB00EB218D /* CustomSlider.swift */,
|
||||
36A778BD20A6C27100B38714 /* GeneralExtensions.swift */,
|
||||
B0F3112420C9E35F0076BB88 /* SupportNSTouchBar.swift */,
|
||||
36DD28E22172EA34001FD6AD /* SupportBrightness.swift */,
|
||||
);
|
||||
path = MTMR;
|
||||
sourceTree = "<group>";
|
||||
@ -444,6 +447,7 @@
|
||||
B0F3112520C9E35F0076BB88 /* SupportNSTouchBar.swift in Sources */,
|
||||
6042B6AA2083E27000C525C8 /* DeprecatedCarbonAPI.c in Sources */,
|
||||
B09EB1E4207C082000D5C1E0 /* HapticFeedback.swift in Sources */,
|
||||
36DD28E32172EA34001FD6AD /* SupportBrightness.swift in Sources */,
|
||||
B08173272135F02B005D4908 /* NightShiftBarItem.swift in Sources */,
|
||||
60F7D454208CC31400ABF5D2 /* InputSourceBarItem.swift in Sources */,
|
||||
36A778BE20A6C27100B38714 /* GeneralExtensions.swift in Sources */,
|
||||
|
||||
@ -50,12 +50,16 @@ class SupportedTypesHolder {
|
||||
|
||||
"brightnessUp": { _ in
|
||||
let imageParameter = GeneralParameter.image(source: #imageLiteral(resourceName: "brightnessUp"))
|
||||
return (item: .staticButton(title: ""), action: .keyPress(keycode: 144), longAction: .none, parameters: [.image: imageParameter])
|
||||
return (item: .staticButton(title: ""), action: .custom(closure: {
|
||||
sharedBrightnessController.increase()
|
||||
}), longAction: .none, parameters: [.image: imageParameter])
|
||||
},
|
||||
|
||||
"brightnessDown": { _ in
|
||||
let imageParameter = GeneralParameter.image(source: #imageLiteral(resourceName: "brightnessDown"))
|
||||
return (item: .staticButton(title: ""), action: .keyPress(keycode: 145), longAction: .none, parameters: [.image: imageParameter])
|
||||
return (item: .staticButton(title: ""), action: .custom(closure: {
|
||||
sharedBrightnessController.decrease()
|
||||
}), longAction: .none, parameters: [.image: imageParameter])
|
||||
},
|
||||
|
||||
"illuminationUp": { _ in
|
||||
|
||||
@ -60,9 +60,9 @@ class ScrollViewItem: NSCustomTouchBarItem, NSGestureRecognizerDelegate {
|
||||
case .changed:
|
||||
if (((position-threefingersPrev) > 15) || ((threefingersPrev-position) > 15)) {
|
||||
if position > threefingersPrev {
|
||||
GenericKeyPress(keyCode: CGKeyCode(144)).send()
|
||||
sharedBrightnessController.increase()
|
||||
} else if position < threefingersPrev {
|
||||
GenericKeyPress(keyCode: CGKeyCode(145)).send()
|
||||
sharedBrightnessController.decrease()
|
||||
}
|
||||
threefingersPrev = position
|
||||
}
|
||||
|
||||
52
MTMR/SupportBrightness.swift
Normal file
52
MTMR/SupportBrightness.swift
Normal file
@ -0,0 +1,52 @@
|
||||
import Foundation
|
||||
|
||||
public let sharedBrightnessController: BrightnessController = {
|
||||
if #available(OSX 10.13, *) {
|
||||
return CoreDisplayBrightnessController()
|
||||
} else {
|
||||
return IOServiceBrightnessController()
|
||||
}
|
||||
}()
|
||||
|
||||
public protocol BrightnessController: class {
|
||||
var brightness: Float { get set }
|
||||
}
|
||||
|
||||
public extension BrightnessController {
|
||||
func increase() {
|
||||
brightness += 0.1
|
||||
}
|
||||
func decrease() {
|
||||
brightness -= 0.1
|
||||
}
|
||||
}
|
||||
|
||||
@available(OSX 10.13, *)
|
||||
private class CoreDisplayBrightnessController : BrightnessController {
|
||||
var brightness: Float {
|
||||
get {
|
||||
return Float(CoreDisplay_Display_GetUserBrightness(0))
|
||||
}
|
||||
set {
|
||||
CoreDisplay_Display_SetUserBrightness(0, Double(newValue));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class IOServiceBrightnessController : BrightnessController {
|
||||
var brightness: Float {
|
||||
get {
|
||||
var level: Float32 = 0.5
|
||||
let service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IODisplayConnect"))
|
||||
|
||||
IODisplayGetFloatParameter(service, 0, kIODisplayBrightnessKey as CFString, &level)
|
||||
return Float(level)
|
||||
}
|
||||
set {
|
||||
let service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IODisplayConnect"))
|
||||
|
||||
IODisplaySetFloatParameter(service, 1, kIODisplayBrightnessKey as CFString, newValue)
|
||||
IOObjectRelease(service)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -18,7 +18,7 @@ class BrightnessViewController: NSCustomTouchBarItem {
|
||||
sliderItem.action = #selector(BrightnessViewController.sliderValueChanged(_:))
|
||||
sliderItem.minValue = 0.0
|
||||
sliderItem.maxValue = 100.0
|
||||
sliderItem.floatValue = getBrightness() * 100
|
||||
sliderItem.floatValue = sharedBrightnessController.brightness * 100
|
||||
|
||||
self.view = sliderItem
|
||||
|
||||
@ -36,37 +36,14 @@ class BrightnessViewController: NSCustomTouchBarItem {
|
||||
|
||||
@objc func updateBrightnessSlider() {
|
||||
DispatchQueue.main.async {
|
||||
self.sliderItem.floatValue = self.getBrightness() * 100
|
||||
self.sliderItem.floatValue = sharedBrightnessController.brightness * 100
|
||||
}
|
||||
}
|
||||
|
||||
@objc func sliderValueChanged(_ sender: Any) {
|
||||
if let sliderItem = sender as? NSSlider {
|
||||
setBrightness(level: Float32(sliderItem.intValue)/100.0)
|
||||
sharedBrightnessController.brightness = sliderItem.floatValue / 100.0
|
||||
}
|
||||
}
|
||||
|
||||
private func getBrightness() -> Float32 {
|
||||
if #available(OSX 10.13, *) {
|
||||
return Float32(CoreDisplay_Display_GetUserBrightness(0));
|
||||
} else {
|
||||
var level: Float32 = 0.5
|
||||
let service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IODisplayConnect"))
|
||||
|
||||
IODisplayGetFloatParameter(service, 0, kIODisplayBrightnessKey as CFString, &level)
|
||||
return level
|
||||
}
|
||||
}
|
||||
|
||||
private func setBrightness(level: Float) {
|
||||
if #available(OSX 10.13, *) {
|
||||
CoreDisplay_Display_SetUserBrightness(0, Double(level));
|
||||
} else {
|
||||
let service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IODisplayConnect"))
|
||||
|
||||
IODisplaySetFloatParameter(service, 1, kIODisplayBrightnessKey as CFString, level)
|
||||
IOObjectRelease(service)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user