public void Update()
{
Icon icon = notifyIcon.Icon;
switch (sensor.SensorType) {
case SensorType.Load:
case SensorType.Control:
case SensorType.Level:
notifyIcon.Icon = CreatePercentageIcon();
break;
default:
notifyIcon.Icon = CreateTransparentIcon();
break;
}
if (icon != null)
icon.Dispose();
string format = "";
switch (sensor.SensorType) {
case SensorType.Voltage: format = "\n{0}: {1:F2} V"; break;
case SensorType.Clock: format = "\n{0}: {1:F0} MHz"; break;
case SensorType.Load: format = "\n{0}: {1:F1} %"; break;
case SensorType.Temperature: format = "\n{0}: {1:F1} °C"; break;
case SensorType.Fan: format = "\n{0}: {1:F0} RPM"; break;
case SensorType.Flow: format = "\n{0}: {1:F0} L/h"; break;
case SensorType.Control: format = "\n{0}: {1:F1} %"; break;
case SensorType.Level: format = "\n{0}: {1:F1} %"; break;
case SensorType.Power: format = "\n{0}: {1:F0} W"; break;
case SensorType.Data: format = "\n{0}: {1:F0} GB"; break;
case SensorType.Factor: format = "\n{0}: {1:F3} GB"; break;
}
string formattedValue = string.Format(format, sensor.Name, sensor.Value);
string hardwareName = sensor.Hardware.Name;
hardwareName = hardwareName.Substring(0,
Math.Min(63 - formattedValue.Length, hardwareName.Length));
string text = hardwareName + formattedValue;
if (text.Length > 63)
text = null;
notifyIcon.Text = text;
notifyIcon.Visible = true;
}