mirror of
https://github.com/Toxblh/MTMR.git
synced 2026-01-11 17:38:38 +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 */; };
|
36C2ECDD207C723B003CDA33 /* ParseConfigTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36C2ECDC207C723B003CDA33 /* ParseConfigTests.swift */; };
|
||||||
36C2ECDE207C82DE003CDA33 /* ItemsParsing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36C2ECDA207C3FE7003CDA33 /* ItemsParsing.swift */; };
|
36C2ECDE207C82DE003CDA33 /* ItemsParsing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36C2ECDA207C3FE7003CDA33 /* ItemsParsing.swift */; };
|
||||||
36C2ECE0207CB1B0003CDA33 /* defaultPreset.json in Resources */ = {isa = PBXBuildFile; fileRef = 36C2ECDF207CB1B0003CDA33 /* defaultPreset.json */; };
|
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 */; };
|
60173D3E20C0031B002C305F /* LaunchAtLoginController.m in Sources */ = {isa = PBXBuildFile; fileRef = 60173D3D20C0031B002C305F /* LaunchAtLoginController.m */; };
|
||||||
6027D1B92080E52A004FFDC7 /* BrightnessViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6027D1B72080E52A004FFDC7 /* BrightnessViewController.swift */; };
|
6027D1B92080E52A004FFDC7 /* BrightnessViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6027D1B72080E52A004FFDC7 /* BrightnessViewController.swift */; };
|
||||||
6027D1BA2080E52A004FFDC7 /* VolumeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6027D1B82080E52A004FFDC7 /* VolumeViewController.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>"; };
|
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>"; };
|
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>"; };
|
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>"; };
|
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>"; };
|
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>"; };
|
6027D1B72080E52A004FFDC7 /* BrightnessViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BrightnessViewController.swift; sourceTree = "<group>"; };
|
||||||
@ -220,6 +222,7 @@
|
|||||||
B05600D22083E9BB00EB218D /* CustomSlider.swift */,
|
B05600D22083E9BB00EB218D /* CustomSlider.swift */,
|
||||||
36A778BD20A6C27100B38714 /* GeneralExtensions.swift */,
|
36A778BD20A6C27100B38714 /* GeneralExtensions.swift */,
|
||||||
B0F3112420C9E35F0076BB88 /* SupportNSTouchBar.swift */,
|
B0F3112420C9E35F0076BB88 /* SupportNSTouchBar.swift */,
|
||||||
|
36DD28E22172EA34001FD6AD /* SupportBrightness.swift */,
|
||||||
);
|
);
|
||||||
path = MTMR;
|
path = MTMR;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -444,6 +447,7 @@
|
|||||||
B0F3112520C9E35F0076BB88 /* SupportNSTouchBar.swift in Sources */,
|
B0F3112520C9E35F0076BB88 /* SupportNSTouchBar.swift in Sources */,
|
||||||
6042B6AA2083E27000C525C8 /* DeprecatedCarbonAPI.c in Sources */,
|
6042B6AA2083E27000C525C8 /* DeprecatedCarbonAPI.c in Sources */,
|
||||||
B09EB1E4207C082000D5C1E0 /* HapticFeedback.swift in Sources */,
|
B09EB1E4207C082000D5C1E0 /* HapticFeedback.swift in Sources */,
|
||||||
|
36DD28E32172EA34001FD6AD /* SupportBrightness.swift in Sources */,
|
||||||
B08173272135F02B005D4908 /* NightShiftBarItem.swift in Sources */,
|
B08173272135F02B005D4908 /* NightShiftBarItem.swift in Sources */,
|
||||||
60F7D454208CC31400ABF5D2 /* InputSourceBarItem.swift in Sources */,
|
60F7D454208CC31400ABF5D2 /* InputSourceBarItem.swift in Sources */,
|
||||||
36A778BE20A6C27100B38714 /* GeneralExtensions.swift in Sources */,
|
36A778BE20A6C27100B38714 /* GeneralExtensions.swift in Sources */,
|
||||||
|
|||||||
@ -50,12 +50,16 @@ class SupportedTypesHolder {
|
|||||||
|
|
||||||
"brightnessUp": { _ in
|
"brightnessUp": { _ in
|
||||||
let imageParameter = GeneralParameter.image(source: #imageLiteral(resourceName: "brightnessUp"))
|
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
|
"brightnessDown": { _ in
|
||||||
let imageParameter = GeneralParameter.image(source: #imageLiteral(resourceName: "brightnessDown"))
|
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
|
"illuminationUp": { _ in
|
||||||
|
|||||||
@ -60,9 +60,9 @@ class ScrollViewItem: NSCustomTouchBarItem, NSGestureRecognizerDelegate {
|
|||||||
case .changed:
|
case .changed:
|
||||||
if (((position-threefingersPrev) > 15) || ((threefingersPrev-position) > 15)) {
|
if (((position-threefingersPrev) > 15) || ((threefingersPrev-position) > 15)) {
|
||||||
if position > threefingersPrev {
|
if position > threefingersPrev {
|
||||||
GenericKeyPress(keyCode: CGKeyCode(144)).send()
|
sharedBrightnessController.increase()
|
||||||
} else if position < threefingersPrev {
|
} else if position < threefingersPrev {
|
||||||
GenericKeyPress(keyCode: CGKeyCode(145)).send()
|
sharedBrightnessController.decrease()
|
||||||
}
|
}
|
||||||
threefingersPrev = position
|
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.action = #selector(BrightnessViewController.sliderValueChanged(_:))
|
||||||
sliderItem.minValue = 0.0
|
sliderItem.minValue = 0.0
|
||||||
sliderItem.maxValue = 100.0
|
sliderItem.maxValue = 100.0
|
||||||
sliderItem.floatValue = getBrightness() * 100
|
sliderItem.floatValue = sharedBrightnessController.brightness * 100
|
||||||
|
|
||||||
self.view = sliderItem
|
self.view = sliderItem
|
||||||
|
|
||||||
@ -36,37 +36,14 @@ class BrightnessViewController: NSCustomTouchBarItem {
|
|||||||
|
|
||||||
@objc func updateBrightnessSlider() {
|
@objc func updateBrightnessSlider() {
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
self.sliderItem.floatValue = self.getBrightness() * 100
|
self.sliderItem.floatValue = sharedBrightnessController.brightness * 100
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func sliderValueChanged(_ sender: Any) {
|
@objc func sliderValueChanged(_ sender: Any) {
|
||||||
if let sliderItem = sender as? NSSlider {
|
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