This commit is contained in:
Serge
2024-04-05 14:50:21 +02:00
parent f072dbe020
commit d7fe4a3bee

View File

@@ -18,14 +18,16 @@ namespace GHelper.Mode
private bool _ryzenPower = false; private bool _ryzenPower = false;
static System.Timers.Timer reapplyTimer = default!; static System.Timers.Timer reapplyTimer = default!;
static System.Timers.Timer modeToggleTimer = default!;
public ModeControl() public ModeControl()
{ {
reapplyTimer = new System.Timers.Timer(AppConfig.GetMode("reapply_time", 30) * 1000); reapplyTimer = new System.Timers.Timer(AppConfig.GetMode("reapply_time", 30) * 1000);
reapplyTimer.Elapsed += ReapplyTimer_Elapsed;
reapplyTimer.Enabled = false; reapplyTimer.Enabled = false;
reapplyTimer.Elapsed += ReapplyTimer_Elapsed;
} }
private void ReapplyTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e) private void ReapplyTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
{ {
SetCPUTemp(AppConfig.GetMode("cpu_temp")); SetCPUTemp(AppConfig.GetMode("cpu_temp"));
@@ -56,6 +58,11 @@ namespace GHelper.Mode
PowerNative.SetPowerMode(Modes.GetCurrentBase()); PowerNative.SetPowerMode(Modes.GetCurrentBase());
} }
public void Toast()
{
Program.toast.RunToast(Modes.GetCurrentName(), SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online ? ToastIcon.Charger : ToastIcon.Battery);
}
public void SetPerformanceMode(int mode = -1, bool notify = false) public void SetPerformanceMode(int mode = -1, bool notify = false)
{ {
@@ -101,10 +108,7 @@ namespace GHelper.Mode
if (AppConfig.Is("xgm_fan") && Program.acpi.IsXGConnected()) XGM.Reset(); if (AppConfig.Is("xgm_fan") && Program.acpi.IsXGConnected()) XGM.Reset();
if (notify) if (notify) Toast();
Program.toast.RunToast(Modes.GetCurrentName(), SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online ? ToastIcon.Charger : ToastIcon.Battery);
// Power plan from config or defaulting to balanced // Power plan from config or defaulting to balanced
if (AppConfig.GetModeString("scheme") is not null) if (AppConfig.GetModeString("scheme") is not null)
@@ -135,9 +139,34 @@ namespace GHelper.Mode
} }
private void ModeToggleTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
{
modeToggleTimer.Stop();
Logger.WriteLine($"Timed mode: {Modes.GetCurrent()}");
SetPerformanceMode();
}
public void CyclePerformanceMode(bool back = false) public void CyclePerformanceMode(bool back = false)
{ {
SetPerformanceMode(Modes.GetNext(back), true); int delay = AppConfig.Get("mode_delay");
if (delay > 0)
{
if (modeToggleTimer is null)
{
modeToggleTimer = new System.Timers.Timer(delay);
modeToggleTimer.Elapsed += ModeToggleTimer_Elapsed;
}
modeToggleTimer.Stop();
modeToggleTimer.Start();
Modes.SetCurrent(Modes.GetNext(back));
Toast();
} else
{
SetPerformanceMode(Modes.GetNext(back), true);
}
} }
public void AutoFans(bool force = false) public void AutoFans(bool force = false)