mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
ModeToggle delay https://github.com/seerge/g-helper/issues/2391
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user