diff --git a/app/AppConfig.cs b/app/AppConfig.cs index 234fa08e..e0f80f1e 100644 --- a/app/AppConfig.cs +++ b/app/AppConfig.cs @@ -713,5 +713,10 @@ public static class AppConfig return Is("save_dimming"); } + public static bool IsAutoStatusLed() + { + return Is("auto_status_led"); + } + } diff --git a/app/Extra.cs b/app/Extra.cs index 3324849e..995b6f43 100644 --- a/app/Extra.cs +++ b/app/Extra.cs @@ -460,7 +460,7 @@ namespace GHelper private void CheckLEDStatus_CheckedChanged(object? sender, EventArgs e) { - Program.acpi.DeviceSet(AsusACPI.StatusLed, (checkStatusLed.Checked ? 7 : 0), "StatusLED"); + InputDispatcher.SetStatusLED(checkStatusLed.Checked); } private void CheckBWIcon_CheckedChanged(object? sender, EventArgs e) diff --git a/app/Input/InputDispatcher.cs b/app/Input/InputDispatcher.cs index fffa3e22..8eb97d37 100644 --- a/app/Input/InputDispatcher.cs +++ b/app/Input/InputDispatcher.cs @@ -1066,6 +1066,21 @@ namespace GHelper.Input if (brightness >= 0) ApplyScreenpadAction(brightness); } + public static void SetStatusLED(bool status) + { + Program.acpi.DeviceSet(AsusACPI.StatusLed, status ? 7 : 0, "StatusLED"); + } + + public static void InitStatusLed() + { + if (AppConfig.IsAutoStatusLed()) SetStatusLED(true); + } + + public static void ShutdownStatusLed() + { + if (AppConfig.IsAutoStatusLed()) SetStatusLED(false); + } + static void LaunchProcess(string command = "") { if (string.IsNullOrEmpty(command)) return; diff --git a/app/Program.cs b/app/Program.cs index 1f938859..4114e5d1 100644 --- a/app/Program.cs +++ b/app/Program.cs @@ -173,6 +173,7 @@ namespace GHelper { gpuControl.StandardModeFix(); BatteryControl.AutoBattery(); + InputDispatcher.ShutdownStatusLed(); } private static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e) @@ -237,6 +238,7 @@ namespace GHelper { screenControl.InitMiniled(); InputDispatcher.InitScreenpad(); + InputDispatcher.InitStatusLed(); } inputDispatcher.Init(); @@ -275,6 +277,7 @@ namespace GHelper { Logger.WriteLine("Power Mode Changed:" + e.Mode.ToString()); gpuControl.StandardModeFix(); + InputDispatcher.ShutdownStatusLed(); } int delay = AppConfig.Get("charger_delay");