From 691f187b7d2f2ec20c4ec216ff5cb6c52e67bd46 Mon Sep 17 00:00:00 2001 From: Serge <5920850+seerge@users.noreply.github.com> Date: Fri, 9 Jun 2023 21:28:59 +0200 Subject: [PATCH] Improved backlight sync with optimization service --- app/AnimeMatrix/AnimeMatrixDevice.cs | 2 + app/AsusACPI.cs | 12 +++- app/InputDispatcher.cs | 104 ++++++++++++++------------- app/Settings.cs | 4 ++ 4 files changed, 71 insertions(+), 51 deletions(-) diff --git a/app/AnimeMatrix/AnimeMatrixDevice.cs b/app/AnimeMatrix/AnimeMatrixDevice.cs index 307b36e7..007dd664 100644 --- a/app/AnimeMatrix/AnimeMatrixDevice.cs +++ b/app/AnimeMatrix/AnimeMatrixDevice.cs @@ -352,9 +352,11 @@ namespace Starlight.AnimeMatrix else time = DateTime.Now.ToString("h" + ((second % 2 == 0) ? ":" : " ") + "mmtt"); + /* if (_model == AnimeType.GA401) PresentText(time); else + */ PresentTextDiagonal(time); } diff --git a/app/AsusACPI.cs b/app/AsusACPI.cs index 69286e79..f0ae8040 100644 --- a/app/AsusACPI.cs +++ b/app/AsusACPI.cs @@ -34,8 +34,16 @@ public class AsusACPI const uint INIT = 0x54494E49; public const uint UniversalControl = 0x00100021; + public const int KB_Light_Up = 0xc4; public const int KB_Light_Down = 0xc5; + public const int Brightness_Down = 0x10; + public const int Brightness_Up = 0x20; + public const int KB_Sleep = 0x6c; + public const int KB_DUO_PgUpDn = 0x4B; + public const int KB_DUO_SecondDisplay = 0x6A; + + public const int Touchpad_Toggle = 0x6B; public const int ChargerMode = 0x0012006C; @@ -65,10 +73,10 @@ public class AsusACPI public const int Temp_CPU = 0x00120094; public const int Temp_GPU = 0x00120097; - public const int PPT_TotalA0 = 0x001200A0; // SPL (Total limit for all-AMD models) + public const int PPT_TotalA0 = 0x001200A0; // SPL (Total limit for all-AMD models) / PL1 public const int PPT_EDCA1 = 0x001200A1; // CPU EDC public const int PPT_TDCA2 = 0x001200A2; // CPU TDC - public const int PPT_APUA3 = 0x001200A3; // sPPT (long boost limit) + public const int PPT_APUA3 = 0x001200A3; // sPPT (long boost limit) / PL2 public const int PPT_CPUB0 = 0x001200B0; // CPU PPT on 2022 (PPT_LIMIT_APU) public const int PPT_CPUB1 = 0x001200B1; // Total PPT on 2022 (PPT_LIMIT_SLOW) diff --git a/app/InputDispatcher.cs b/app/InputDispatcher.cs index f31f081e..ba31d6eb 100644 --- a/app/InputDispatcher.cs +++ b/app/InputDispatcher.cs @@ -115,6 +115,8 @@ namespace GHelper if (!OptimizationService.IsRunning()) listener = new KeyboardListener(HandleEvent); + else + Logger.WriteLine("Optimization service is running"); InitBacklightTimer(); } @@ -195,7 +197,7 @@ namespace GHelper KeyProcess("m3"); return; case Keys.F11: - OptimizationEvent(199); + HandleEvent(199); return; } } @@ -223,10 +225,10 @@ namespace GHelper KeyboardHook.KeyPress(Keys.VolumeMute); break; case Keys.F2: - OptimizationEvent(197); + HandleEvent(197); break; case Keys.F3: - OptimizationEvent(196); + HandleEvent(196); break; case Keys.F4: KeyProcess("fnf4"); @@ -240,21 +242,21 @@ namespace GHelper case Keys.F7: if (AppConfig.ContainsModel("TUF")) Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, ScreenBrightness.Adjust(-10) + "%", ToastIcon.BrightnessDown); - OptimizationEvent(16); + HandleEvent(16); break; case Keys.F8: if (AppConfig.ContainsModel("TUF")) Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, ScreenBrightness.Adjust(+10) + "%", ToastIcon.BrightnessUp); - OptimizationEvent(32); + HandleEvent(32); break; case Keys.F9: KeyboardHook.KeyWinPress(Keys.P); break; case Keys.F10: - OptimizationEvent(107); + HandleEvent(107); break; case Keys.F11: - OptimizationEvent(108); + HandleEvent(108); break; case Keys.F12: KeyboardHook.KeyWinPress(Keys.A); @@ -340,10 +342,10 @@ namespace GHelper } break; case "brightness_up": - OptimizationEvent(32); + HandleEvent(32); break; case "brightness_down": - OptimizationEvent(16); + HandleEvent(16); break; case "custom": CustomKey(name); @@ -412,9 +414,45 @@ namespace GHelper case 189: // Tablet mode TabletMode(); return; + case 197: // FN+F2 + SetBacklight(-1); + break; + case 196: // FN+F3 + SetBacklight(1); + break; + case 199: // ON Z13 - FN+F11 - cycles backlight + SetBacklight(4); + break; + } + + if (OptimizationService.IsRunning()) return; + + // Asus Optimization service Events + + switch (EventID) + { + case 16: // FN+F7 + Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Down, "Brightness"); + break; + case 32: // FN+F8 + Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness"); + break; + case 107: // FN+F10 + bool touchpadState = GetTouchpadState(); + AsusUSB.TouchpadToggle(); + Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, touchpadState ? "Off" : "On", ToastIcon.Touchpad); + break; + case 108: // FN+F11 + Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.KB_Sleep, "Sleep"); + break; + case 106: // Zephyrus DUO special key for turning on/off second display. + //Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.KB_DUO_SecondDisplay, "SecondDisplay"); + break; + case 75: // Zephyrus DUO special key for changing between arrows and pgup/pgdn + //Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.KB_DUO_PgUpDn, "PgUpDown"); + break; } - if (!OptimizationService.IsRunning()) OptimizationEvent(EventID); } @@ -436,7 +474,8 @@ namespace GHelper { if (init) AsusUSB.Init(); - if (!OptimizationService.IsRunning()) AsusUSB.ApplyBrightness(GetBacklight(), "Auto"); + //if (!OptimizationService.IsRunning()) + AsusUSB.ApplyBrightness(GetBacklight(), "Auto"); } public static void SetBacklight(int delta) @@ -457,47 +496,14 @@ namespace GHelper else AppConfig.setConfig("keyboard_brightness", backlight); - AsusUSB.ApplyBrightness(backlight, "HotKey"); - - string[] backlightNames = new string[] { "Off", "Low", "Mid", "Max" }; - Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, backlightNames[backlight], delta > 0 ? ToastIcon.BacklightUp : ToastIcon.BacklightDown); - - } - - static void OptimizationEvent(int EventID) - { - - // Asus Optimization service Events - - switch (EventID) + if (!OptimizationService.IsRunning()) { - case 197: // FN+F2 - SetBacklight(-1); - break; - case 196: // FN+F3 - SetBacklight(1); - break; - case 199: // ON Z13 - FN+F11 - cycles backlight - SetBacklight(4); - break; - case 16: // FN+F7 - Program.acpi.DeviceSet(AsusACPI.UniversalControl, 0x10, "Brightness"); - break; - case 32: // FN+F8 - Program.acpi.DeviceSet(AsusACPI.UniversalControl, 0x20, "Brightness"); - break; - case 107: // FN+F10 - bool touchpadState = GetTouchpadState(); - AsusUSB.TouchpadToggle(); - Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, touchpadState ? "Off" : "On", ToastIcon.Touchpad); - break; - case 108: // FN+F11 - Program.acpi.DeviceSet(AsusACPI.UniversalControl, 0x6c, "Sleep"); - //NativeMethods.SetSuspendState(false, true, true); - break; + AsusUSB.ApplyBrightness(backlight, "HotKey"); + string[] backlightNames = new string[] { "Off", "Low", "Mid", "Max" }; + Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, backlightNames[backlight], delta > 0 ? ToastIcon.BacklightUp : ToastIcon.BacklightDown); } - } + } static void LaunchProcess(string command = "") { diff --git a/app/Settings.cs b/app/Settings.cs index 3e4b45c3..3666a00e 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -1358,6 +1358,10 @@ namespace GHelper public void AutoKeyboard() { InputDispatcher.SetBacklightAuto(true); + + if (Program.acpi.IsXGConnected()) + AsusUSB.ApplyXGMLight(AppConfig.isConfig("xmg_light")); + if (AppConfig.ContainsModel("X16") || AppConfig.ContainsModel("X13")) InputDispatcher.TabletMode(); }