Reset LibreHardware on system resume to fix battery bug

This commit is contained in:
Kamil Trzciński 2022-11-23 10:13:16 +01:00
parent 652a7277a1
commit 139200c1e5
4 changed files with 22 additions and 16 deletions

View file

@ -38,7 +38,7 @@ namespace CommonHelpers
return globalLockMutex;
return null;
}
catch(AbandonedMutexException)
catch (AbandonedMutexException)
{
return globalLockMutex;
}
@ -69,13 +69,13 @@ namespace CommonHelpers
var mutex = WaitGlobalMutex(GLOBAL_DEFAULT_TIMEOUT);
if (mutex is null)
{
Fatal(title, "Failed to acquire global mutex.");
}
try
{
if (mutex is null)
{
Fatal(title, "Failed to acquire global mutex.");
}
if (!Vlv0100.IsSupported())
{
String message = "";

View file

@ -61,7 +61,7 @@ namespace FanControl
var fanMode = Enum.Parse(typeof(FanMode), Properties.Settings.Default.FanMode);
setFanMode((FanMode)fanMode);
}
catch(System.ArgumentException)
catch (System.ArgumentException)
{
setFanMode(FanMode.Default);
}
@ -73,18 +73,13 @@ namespace FanControl
Microsoft.Win32.SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
}
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
Microsoft.Win32.SystemEvents.PowerModeChanged -= SystemEvents_PowerModeChanged;
}
private void SystemEvents_PowerModeChanged(object sender, Microsoft.Win32.PowerModeChangedEventArgs e)
{
// Restore fan mode on resume
if (e.Mode == Microsoft.Win32.PowerModes.Resume)
{
Instance.HardwareComputer.Reset();
fanControl.SetMode(fanControl.Mode);
}
}

View file

@ -36,7 +36,7 @@ namespace PerformanceOverlay
public Controller()
{
contextMenu = new System.Windows.Forms.ContextMenuStrip(components);
SharedData_Update();
Instance.Open(TitleWithVersion, "Global\\PerformanceOverlay");
@ -119,6 +119,16 @@ namespace PerformanceOverlay
updateContextItems(contextMenu);
});
}
Microsoft.Win32.SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
}
private void SystemEvents_PowerModeChanged(object sender, Microsoft.Win32.PowerModeChangedEventArgs e)
{
if (e.Mode == Microsoft.Win32.PowerModes.Resume)
{
Instance.HardwareComputer.Reset();
}
}
private void updateContextItems(ContextMenuStrip contextMenu)
@ -126,7 +136,7 @@ namespace PerformanceOverlay
foreach (ToolStripItem item in contextMenu.Items)
{
if (item.Tag is OverlayMode)
((ToolStripMenuItem)item).Checked = ((OverlayMode)item.Tag == Settings.Default.OSDModeParsed);
((ToolStripMenuItem)item).Checked = ((OverlayMode)item.Tag == Settings.Default.OSDModeParsed);
}
showItem.Checked = Settings.Default.ShowOSD;
@ -224,7 +234,7 @@ namespace PerformanceOverlay
osd.Update(osdOverlay);
}
catch(SystemException)
catch (SystemException)
{
}
}

View file

@ -10,5 +10,6 @@
- Show CPU/GPU frequency in Full overlay
- Allow to control GPU Scaling and Display Color Correction
- Do not use WinRing0 for GPU detection to control CPU/GPU frequency
- Reset `LibreHardware` on system resume to fix battery bug
If you found it useful buy me [Ko-fi](https://ko-fi.com/ayufan).