diff --git a/LibreHardwareMonitorLib/Hardware/Controller/Nzxt/KrakenX3.cs b/LibreHardwareMonitorLib/Hardware/Controller/Nzxt/KrakenX3.cs index bc5de6f..1b346dc 100644 --- a/LibreHardwareMonitorLib/Hardware/Controller/Nzxt/KrakenX3.cs +++ b/LibreHardwareMonitorLib/Hardware/Controller/Nzxt/KrakenX3.cs @@ -129,6 +129,7 @@ namespace LibreHardwareMonitor.Hardware.Controller.Nzxt catch (ObjectDisposedException) { // Could be unplugged, or the app is stopping... + return; } } } diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs index bcbdf44..5aed7b1 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs @@ -87,7 +87,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard } case ControlMode.Software: { - superIO.SetControl(index, (byte)(cc.SoftwareValue * 2.55)); + superIO.SetControl(index, GetSoftwareValueAsByte(cc)); break; } default: @@ -100,7 +100,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard control.SoftwareControlValueChanged += cc => { if (cc.ControlMode == ControlMode.Software) - superIO.SetControl(index, (byte)(cc.SoftwareValue * 2.55)); + superIO.SetControl(index, GetSoftwareValueAsByte(cc)); }; switch (control.ControlMode) @@ -117,7 +117,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard } case ControlMode.Software: { - superIO.SetControl(index, (byte)(control.SoftwareValue * 2.55)); + superIO.SetControl(index, GetSoftwareValueAsByte(control)); break; } @@ -130,6 +130,13 @@ namespace LibreHardwareMonitor.Hardware.Motherboard } } + private static byte GetSoftwareValueAsByte(Control control) + { + const float percentToByteRatio = 2.55f; + float value = control.SoftwareValue * percentToByteRatio; + return (byte)value; + } + private void CreateFanSensors(ISuperIO superIO, ISettings settings, IList f) { foreach (Fan fan in f)