From e593fa3a763f8d426f1bd9f728c170cb7bff3cc7 Mon Sep 17 00:00:00 2001 From: Serge <5920850+seerge@users.noreply.github.com> Date: Sun, 16 Jul 2023 14:48:21 +0200 Subject: [PATCH] ScreenPad brightness control --- app/AsusACPI.cs | 3 +++ app/Extra.cs | 6 ++++++ app/Input/InputDispatcher.cs | 21 +++++++++++++++++++++ app/Properties/Strings.Designer.cs | 18 ++++++++++++++++++ app/Properties/Strings.resx | 6 ++++++ 5 files changed, 54 insertions(+) diff --git a/app/AsusACPI.cs b/app/AsusACPI.cs index 2d4b64e2..5ce295e4 100644 --- a/app/AsusACPI.cs +++ b/app/AsusACPI.cs @@ -92,6 +92,9 @@ public class AsusACPI public const int TabletState = 0x00060077; public const int FnLock = 0x00100023; + public const int ScreenPadToggle = 0x00050031; + public const int ScreenPadBrightness = 0x00050032; + public const int Tablet_Notebook = 0; public const int Tablet_Tablet = 1; public const int Tablet_Tent = 2; diff --git a/app/Extra.cs b/app/Extra.cs index d2369b30..f9529725 100644 --- a/app/Extra.cs +++ b/app/Extra.cs @@ -116,6 +116,12 @@ namespace GHelper Text = Properties.Strings.ExtraSettings; + if (AppConfig.ContainsModel("Duo")) + { + customActions.Add("screenpad_down", Properties.Strings.ScreenPadDown); + customActions.Add("screenpad_up", Properties.Strings.ScreenPadUp); + } + InitTheme(); SetKeyCombo(comboM1, textM1, "m1"); diff --git a/app/Input/InputDispatcher.cs b/app/Input/InputDispatcher.cs index 05bb655a..14aa2b55 100644 --- a/app/Input/InputDispatcher.cs +++ b/app/Input/InputDispatcher.cs @@ -315,6 +315,12 @@ namespace GHelper.Input case "brightness_down": HandleOptimizationEvent(16); break; + case "screenpad_up": + SetScreenpad(10); + break; + case "screenpad_down": + SetScreenpad(-10); + break; case "custom": CustomKey(name); break; @@ -479,6 +485,21 @@ namespace GHelper.Input } + public static void SetScreenpad(int delta) + { + int brightness = AppConfig.Get("screenpad", 100); + brightness = Math.Max(Math.Min(100, brightness + delta), 0); + + AppConfig.Set("screenpad", brightness); + + Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, (brightness*255/100), "Screenpad"); + if (brightness == 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, brightness, "ScreenpadToggle"); + + Program.toast.RunToast($"Screen Pad {brightness}", delta > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown); + + } + + static void LaunchProcess(string command = "") { diff --git a/app/Properties/Strings.Designer.cs b/app/Properties/Strings.Designer.cs index c9c8d157..fe49bb90 100644 --- a/app/Properties/Strings.Designer.cs +++ b/app/Properties/Strings.Designer.cs @@ -1043,6 +1043,24 @@ namespace GHelper.Properties { } } + /// + /// Looks up a localized string similar to Screenpad Brightness Down. + /// + internal static string ScreenPadDown { + get { + return ResourceManager.GetString("ScreenPadDown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Screenpad Brightness Up. + /// + internal static string ScreenPadUp { + get { + return ResourceManager.GetString("ScreenPadUp", resourceCulture); + } + } + /// /// Looks up a localized string similar to Shutdown. /// diff --git a/app/Properties/Strings.resx b/app/Properties/Strings.resx index 20c61c38..61b5e0af 100644 --- a/app/Properties/Strings.resx +++ b/app/Properties/Strings.resx @@ -446,6 +446,12 @@ Do you still want to continue? Run on Startup + + Screenpad Brightness Down + + + Screenpad Brightness Up + Shutdown