# HG changeset patch # User moel.mich # Date 1285101156 0 # Node ID 0ee888c485d5019ea8e48d5394f4917b7a01be0f # Parent fbf22ccd9d6f9464d3d38141c8727c41e2737534 Refactored some of the hardware monitoring code and fixed a few code inspection warnings. diff -r fbf22ccd9d6f -r 0ee888c485d5 Collections/ListSet.cs --- a/Collections/ListSet.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Collections/ListSet.cs Tue Sep 21 20:32:36 2010 +0000 @@ -35,18 +35,14 @@ */ -using System; using System.Collections; using System.Collections.Generic; -using System.Text; namespace OpenHardwareMonitor.Collections { public class ListSet : IEnumerable { - private List list = new List(); - - public ListSet() { } + private readonly List list = new List(); public bool Add(T item) { if (list.Contains(item)) diff -r fbf22ccd9d6f -r 0ee888c485d5 Collections/ReadOnlyArray.cs --- a/Collections/ReadOnlyArray.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Collections/ReadOnlyArray.cs Tue Sep 21 20:32:36 2010 +0000 @@ -35,7 +35,6 @@ */ -using System; using System.Collections; using System.Collections.Generic; @@ -43,7 +42,7 @@ public class ReadOnlyArray : IReadOnlyArray { - private T[] array; + private readonly T[] array; public ReadOnlyArray(T[] array) { this.array = array; diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/ATI/ADL.cs --- a/Hardware/ATI/ADL.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/ATI/ADL.cs Tue Sep 21 20:32:36 2010 +0000 @@ -187,7 +187,7 @@ } private static void CreateDelegates(string name) { - int p = (int)System.Environment.OSVersion.Platform; + int p = (int)Environment.OSVersion.Platform; if ((p == 4) || (p == 128)) dllName = name + ".so"; else @@ -234,7 +234,7 @@ enumConnectedAdapters); } } catch { - return ADL.ADL_ERR; + return ADL_ERR; } } diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/ATI/ATIGPU.cs --- a/Hardware/ATI/ATIGPU.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/ATI/ATIGPU.cs Tue Sep 21 20:32:36 2010 +0000 @@ -41,17 +41,17 @@ namespace OpenHardwareMonitor.Hardware.ATI { internal sealed class ATIGPU : Hardware { - private string name; - private int adapterIndex; - private int busNumber; - private int deviceNumber; - private Sensor temperature; - private Sensor fan; - private Sensor coreClock; - private Sensor memoryClock; - private Sensor coreVoltage; - private Sensor coreLoad; - private Sensor fanControl; + private readonly string name; + private readonly int adapterIndex; + private readonly int busNumber; + private readonly int deviceNumber; + private readonly Sensor temperature; + private readonly Sensor fan; + private readonly Sensor coreClock; + private readonly Sensor memoryClock; + private readonly Sensor coreVoltage; + private readonly Sensor coreLoad; + private readonly Sensor fanControl; public ATIGPU(string name, int adapterIndex, int busNumber, int deviceNumber, ISettings settings) diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/ATI/ATIGroup.cs --- a/Hardware/ATI/ATIGroup.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/ATI/ATIGroup.cs Tue Sep 21 20:32:36 2010 +0000 @@ -43,8 +43,8 @@ namespace OpenHardwareMonitor.Hardware.ATI { internal class ATIGroup : IGroup { - private List hardware = new List(); - private StringBuilder report = new StringBuilder(); + private readonly List hardware = new List(); + private readonly StringBuilder report = new StringBuilder(); public ATIGroup(ISettings settings) { try { @@ -53,10 +53,8 @@ report.AppendLine("AMD Display Library"); report.AppendLine(); report.Append("Status: "); - if (status == ADL.ADL_OK) - report.AppendLine("OK"); - else - report.AppendLine(status.ToString(CultureInfo.InvariantCulture)); + report.AppendLine(status == ADL.ADL_OK ? "OK" : + status.ToString(CultureInfo.InvariantCulture)); report.AppendLine(); if (status == ADL.ADL_OK) { diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/CPU/AMD0FCPU.cs --- a/Hardware/CPU/AMD0FCPU.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/CPU/AMD0FCPU.cs Tue Sep 21 20:32:36 2010 +0000 @@ -41,10 +41,10 @@ namespace OpenHardwareMonitor.Hardware.CPU { internal sealed class AMD0FCPU : GenericCPU { - private uint pciAddress; - private Sensor[] coreTemperatures; - private Sensor[] coreClocks; - private Sensor busClock; + private readonly uint pciAddress; + private readonly Sensor[] coreTemperatures; + private readonly Sensor[] coreClocks; + private readonly Sensor busClock; private const ushort PCI_AMD_VENDOR_ID = 0x1022; private const ushort PCI_AMD_0FH_MISCELLANEOUS_DEVICE_ID = 0x1103; @@ -71,8 +71,7 @@ for (int i = 0; i < coreCount; i++) { coreTemperatures[i] = new Sensor("Core #" + (i + 1), i, SensorType.Temperature, - this, new ParameterDescription[] { - new ParameterDescription("Offset [°C]", + this, new [] { new ParameterDescription("Offset [°C]", "Temperature offset of the thermal sensor.\n" + "Temperature = Value + Offset.", offset) }, settings); @@ -97,9 +96,7 @@ } protected override uint[] GetMSRs() { - return new uint[] { - FIDVID_STATUS - }; + return new [] { FIDVID_STATUS }; } public override void Update() { diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/CPU/AMD10CPU.cs --- a/Hardware/CPU/AMD10CPU.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/CPU/AMD10CPU.cs Tue Sep 21 20:32:36 2010 +0000 @@ -39,9 +39,9 @@ internal sealed class AMD10CPU : GenericCPU { - private uint pciAddress; + private readonly uint pciAddress; - private Sensor coreTemperature; + private readonly Sensor coreTemperature; private const ushort PCI_AMD_VENDOR_ID = 0x1022; private const ushort PCI_AMD_10H_MISCELLANEOUS_DEVICE_ID = 0x1203; @@ -54,7 +54,7 @@ // AMD family 10h processors support only one temperature sensor coreTemperature = new Sensor( "Core" + (coreCount > 1 ? " #1 - #" + coreCount : ""), 0, - SensorType.Temperature, this, new ParameterDescription[] { + SensorType.Temperature, this, new [] { new ParameterDescription("Offset [°C]", "Temperature offset.", 0) }, settings); diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/CPU/CPUGroup.cs --- a/Hardware/CPU/CPUGroup.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/CPU/CPUGroup.cs Tue Sep 21 20:32:36 2010 +0000 @@ -43,9 +43,9 @@ namespace OpenHardwareMonitor.Hardware.CPU { internal class CPUGroup : IGroup { - private List hardware = new List(); + private readonly List hardware = new List(); - private CPUID[][][] threads; + private readonly CPUID[][][] threads; private static CPUID[][] GetProcessorThreads() { @@ -77,7 +77,7 @@ return processorThreads; } - private static CPUID[][] GroupThreadsByCore(CPUID[] threads) { + private static CPUID[][] GroupThreadsByCore(IEnumerable threads) { SortedDictionary> cores = new SortedDictionary>(); @@ -102,7 +102,7 @@ public CPUGroup(ISettings settings) { // No implementation for cpuid on Unix systems - int p = (int)System.Environment.OSVersion.Platform; + int p = (int)Environment.OSVersion.Platform; if ((p == 4) || (p == 128)) return; diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/CPU/CPUID.cs --- a/Hardware/CPU/CPUID.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/CPU/CPUID.cs Tue Sep 21 20:32:36 2010 +0000 @@ -48,31 +48,31 @@ internal class CPUID { - private int thread; + private readonly int thread; - private Vendor vendor = Vendor.Unknown; + private readonly Vendor vendor = Vendor.Unknown; - private string cpuBrandString = ""; - private string name = ""; + private readonly string cpuBrandString = ""; + private readonly string name = ""; - private uint[,] cpuidData = new uint[0, 0]; - private uint[,] cpuidExtData = new uint[0, 0]; + private readonly uint[,] cpuidData = new uint[0, 0]; + private readonly uint[,] cpuidExtData = new uint[0, 0]; - private uint family; - private uint model; - private uint stepping; + private readonly uint family; + private readonly uint model; + private readonly uint stepping; - private uint apicId; + private readonly uint apicId; - private uint threadMaskWith; - private uint coreMaskWith; + private readonly uint threadMaskWith; + private readonly uint coreMaskWith; - private uint processorId; - private uint coreId; - private uint threadId; + private readonly uint processorId; + private readonly uint coreId; + private readonly uint threadId; - public static uint CPUID_0 = 0; - public static uint CPUID_EXT = 0x80000000; + public const uint CPUID_0 = 0; + public const uint CPUID_EXT = 0x80000000; private static void AppendRegister(StringBuilder b, uint value) { b.Append((char)((value) & 0xff)); @@ -217,8 +217,8 @@ break; } - processorId = (uint)(apicId >> (int)(coreMaskWith + threadMaskWith)); - coreId = (uint)((apicId >> (int)(threadMaskWith)) + processorId = (apicId >> (int)(coreMaskWith + threadMaskWith)); + coreId = ((apicId >> (int)(threadMaskWith)) - (processorId << (int)(coreMaskWith))); threadId = apicId - (processorId << (int)(coreMaskWith + threadMaskWith)) diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/CPU/CPULoad.cs --- a/Hardware/CPU/CPULoad.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/CPU/CPULoad.cs Tue Sep 21 20:32:36 2010 +0000 @@ -42,7 +42,7 @@ internal class CPULoad { [StructLayout(LayoutKind.Sequential)] - private struct SystemProcessorPerformanceInformation { + protected struct SystemProcessorPerformanceInformation { public long IdleTime; public long KernelTime; public long UserTime; @@ -51,7 +51,7 @@ public ulong Reserved2; } - private enum SystemInformationClass : int { + protected enum SystemInformationClass { SystemBasicInformation = 0, SystemCpuInformation = 1, SystemPerformanceInformation = 2, @@ -60,15 +60,15 @@ SystemProcessorPerformanceInformation = 8 } - private CPUID[][] cpuid; + private readonly CPUID[][] cpuid; private long systemTime; private long[] idleTimes; private float totalLoad; - private float[] coreLoads; + private readonly float[] coreLoads; - private bool available = false; + private readonly bool available; private static long[] GetIdleTimes() { SystemProcessorPerformanceInformation[] informations = new @@ -159,7 +159,7 @@ this.idleTimes = newIdleTimes; } - private static class NativeMethods { + protected static class NativeMethods { [DllImport("ntdll.dll")] public static extern int NtQuerySystemInformation( diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/CPU/GenericCPU.cs --- a/Hardware/CPU/GenericCPU.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/CPU/GenericCPU.cs Tue Sep 21 20:32:36 2010 +0000 @@ -43,7 +43,7 @@ using System.Threading; namespace OpenHardwareMonitor.Hardware.CPU { - internal class GenericCPU : Hardware, IHardware { + internal class GenericCPU : Hardware { protected readonly CPUID[][] cpuid; @@ -57,13 +57,13 @@ protected readonly bool hasTSC; protected readonly bool invariantTSC; + private readonly double estimatedMaxClock; private ulong lastTimeStampCount; private long lastTime; - private double maxClock; - private double estimatedMaxClock; + private double maxClock; - private Vendor vendor; + private readonly Vendor vendor; private readonly CPULoad cpuLoad; private readonly Sensor totalLoad; @@ -129,7 +129,7 @@ lastTime = 0; } - private double EstimateMaxClock() { + private static double EstimateMaxClock() { // preload the function EstimateMaxClock(0); EstimateMaxClock(0); @@ -184,7 +184,7 @@ StringBuilder r = new StringBuilder(); switch (vendor) { - case Vendor.AMD: r.AppendLine("Intel CPU"); break; + case Vendor.AMD: r.AppendLine("AMD CPU"); break; case Vendor.Intel: r.AppendLine("Intel CPU"); break; default: r.AppendLine("Generic CPU"); break; } diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/CPU/IntelCPU.cs --- a/Hardware/CPU/IntelCPU.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/CPU/IntelCPU.cs Tue Sep 21 20:32:36 2010 +0000 @@ -41,11 +41,11 @@ namespace OpenHardwareMonitor.Hardware.CPU { internal sealed class IntelCPU : GenericCPU { - private Sensor[] coreTemperatures; - private Sensor[] coreClocks; - private Sensor busClock; + private readonly Sensor[] coreTemperatures; + private readonly Sensor[] coreClocks; + private readonly Sensor busClock; - private uint maxNehalemMultiplier = 0; + private readonly uint maxNehalemMultiplier; private const uint IA32_THERM_STATUS_MSR = 0x019C; private const uint IA32_TEMPERATURE_TARGET = 0x01A2; @@ -127,7 +127,7 @@ coreTemperatures = new Sensor[coreCount]; for (int i = 0; i < coreTemperatures.Length; i++) { coreTemperatures[i] = new Sensor(CoreString(i), i, - SensorType.Temperature, this, new ParameterDescription[] { + SensorType.Temperature, this, new [] { new ParameterDescription( "TjMax [°C]", "TjMax temperature of the core.\n" + "Temperature = TjMax - TSlope * Value.", tjMax[i]), @@ -153,7 +153,7 @@ } protected override uint[] GetMSRs() { - return new uint[] { + return new [] { MSR_PLATFORM_INFO, IA32_PERF_STATUS , IA32_THERM_STATUS_MSR, diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Computer.cs --- a/Hardware/Computer.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Computer.cs Tue Sep 21 20:32:36 2010 +0000 @@ -45,22 +45,18 @@ public class Computer : IComputer { - private List groups = new List(); + private readonly List groups = new List(); + private readonly ISettings settings; - private bool open = false; - private bool hddEnabled = false; - private ISettings settings; + private bool open; + private bool hddEnabled; public Computer() { this.settings = new Settings(); } public Computer(ISettings settings) { - if (settings != null) - this.settings = settings; - else { - this.settings = new Settings(); - } + this.settings = settings ?? new Settings(); } private void Add(IGroup group) { @@ -141,7 +137,7 @@ writer.WriteLine(); } - private int CompareSensor(ISensor a, ISensor b) { + private static int CompareSensor(ISensor a, ISensor b) { int c = a.SensorType.CompareTo(b.SensorType); if (c == 0) return a.Index.CompareTo(b.Index); @@ -149,13 +145,14 @@ return c; } - private void ReportHardwareSensorTree(IHardware hardware, TextWriter w, - string space) { + private static void ReportHardwareSensorTree( + IHardware hardware, TextWriter w, string space) + { w.WriteLine("{0}|", space); w.WriteLine("{0}+-+ {1} ({2})", space, hardware.Name, hardware.Identifier); ISensor[] sensors = hardware.Sensors; - Array.Sort(sensors, CompareSensor); + Array.Sort(sensors, CompareSensor); foreach (ISensor sensor in sensors) { w.WriteLine("{0}| +- {1}[{2}] : {3} : {4}", space, sensor.SensorType, sensor.Index, @@ -166,13 +163,14 @@ ReportHardwareSensorTree(subHardware, w, "| "); } - private void ReportHardwareParameterTree(IHardware hardware, TextWriter w, - string space) { + private static void ReportHardwareParameterTree( + IHardware hardware, TextWriter w, string space) + { w.WriteLine("{0}|", space); w.WriteLine("{0}+-+ {1} ({2})", space, hardware.Name, hardware.Identifier); ISensor[] sensors = hardware.Sensors; - Array.Sort(sensors, CompareSensor); + Array.Sort(sensors, CompareSensor); foreach (ISensor sensor in sensors) { if (sensor.Parameters.Length > 0) { w.WriteLine("{0}| +- {1}[{2}] : {3}", @@ -189,7 +187,7 @@ ReportHardwareParameterTree(subHardware, w, "| "); } - private void ReportHardware(IHardware hardware, TextWriter w) { + private static void ReportHardware(IHardware hardware, TextWriter w) { string hardwareReport = hardware.GetReport(); if (!string.IsNullOrEmpty(hardwareReport)) { NewSection(w); diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/HDD/HDD.cs --- a/Hardware/HDD/HDD.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/HDD/HDD.cs Tue Sep 21 20:32:36 2010 +0000 @@ -36,7 +36,6 @@ */ using System; -using System.Collections.Generic; using System.Globalization; namespace OpenHardwareMonitor.Hardware.HDD { @@ -44,11 +43,11 @@ private const int UPDATE_DIVIDER = 30; // update only every 30s - private string name; - private IntPtr handle; - private int drive; - private int attribute; - private Sensor temperature; + private readonly string name; + private readonly IntPtr handle; + private readonly int drive; + private readonly int attribute; + private readonly Sensor temperature; private int count; diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/HDD/HDDGroup.cs --- a/Hardware/HDD/HDDGroup.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/HDD/HDDGroup.cs Tue Sep 21 20:32:36 2010 +0000 @@ -43,11 +43,11 @@ private const int MAX_DRIVES = 32; - private List hardware = new List(); + private readonly List hardware = new List(); public HDDGroup(ISettings settings) { - int p = (int)System.Environment.OSVersion.Platform; + int p = (int)Environment.OSVersion.Platform; if ((p != 4) && (p != 128)) { for (int drive = 0; drive < MAX_DRIVES; drive++) { IntPtr handle = SMART.OpenPhysicalDrive(drive); diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/HDD/SMART.cs --- a/Hardware/HDD/SMART.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/HDD/SMART.cs Tue Sep 21 20:32:36 2010 +0000 @@ -36,7 +36,6 @@ */ using System; -using System.Collections.Generic; using System.Runtime.InteropServices; namespace OpenHardwareMonitor.Hardware.HDD { @@ -90,7 +89,7 @@ }; [Flags] - private enum AccessMode : uint { + protected enum AccessMode : uint { Read = 0x80000000, Write = 0x40000000, Execute = 0x20000000, @@ -98,14 +97,14 @@ } [Flags] - private enum ShareMode : uint { + protected enum ShareMode : uint { None = 0, Read = 1, Write = 2, Delete = 4 } - private enum CreationMode : uint { + protected enum CreationMode : uint { New = 1, CreateAlways = 2, OpenExisting = 3, @@ -114,7 +113,7 @@ } [Flags] - private enum FileAttribute : uint { + protected enum FileAttribute : uint { Readonly = 0x00000001, Hidden = 0x00000002, System = 0x00000004, @@ -131,14 +130,14 @@ Encrypted = 0x00004000, } - private enum DriveCommand : uint { + protected enum DriveCommand : uint { GetVersion = 0x00074080, SendDriveCommand = 0x0007c084, ReceiveDriveData = 0x0007c088 } [StructLayout(LayoutKind.Sequential, Pack = 1)] - private struct CommandBlockRegisters { + protected struct CommandBlockRegisters { public byte Features; public byte SectorCount; public byte LBALow; @@ -150,8 +149,8 @@ } [StructLayout(LayoutKind.Sequential, Pack = 1)] - private struct DriveCommandParameter { - private uint BufferSize; + protected struct DriveCommandParameter { + public uint BufferSize; public CommandBlockRegisters Registers; public byte DriveNumber; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)] @@ -159,7 +158,7 @@ } [StructLayout(LayoutKind.Sequential, Pack = 1)] - private struct DriverStatus { + protected struct DriverStatus { public byte DriverError; public byte IDEError; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] @@ -167,13 +166,13 @@ } [StructLayout(LayoutKind.Sequential, Pack = 1)] - private struct DriveCommandResult { + protected struct DriveCommandResult { public uint BufferSize; public DriverStatus DriverStatus; } [StructLayout(LayoutKind.Sequential, Pack = 1)] - private struct DriveSmartReadResult { + protected struct DriveSmartReadResult { public uint BufferSize; public DriverStatus DriverStatus; public byte Version; @@ -183,7 +182,7 @@ } [StructLayout(LayoutKind.Sequential, Pack = 1)] - private struct Identify { + protected struct Identify { public ushort GeneralConfiguration; public ushort NumberOfCylinders; public ushort Reserved; @@ -213,7 +212,7 @@ } [StructLayout(LayoutKind.Sequential, Pack = 1)] - private struct DriveIdentifyResult { + protected struct DriveIdentifyResult { public uint BufferSize; public DriverStatus DriverStatus; public Identify Identify; @@ -312,7 +311,7 @@ return NativeMethods.CloseHandle(handle); } - private static class NativeMethods { + protected static class NativeMethods { private const string KERNEL = "kernel32.dll"; [DllImport(KERNEL, CallingConvention = CallingConvention.Winapi, diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Hardware.cs --- a/Hardware/Hardware.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Hardware.cs Tue Sep 21 20:32:36 2010 +0000 @@ -41,7 +41,7 @@ namespace OpenHardwareMonitor.Hardware { internal abstract class Hardware : IHardware { - private ListSet active = new ListSet(); + private readonly ListSet active = new ListSet(); public IHardware[] SubHardware { get { return new IHardware[0]; } diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Heatmaster/Heatmaster.cs --- a/Hardware/Heatmaster/Heatmaster.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Heatmaster/Heatmaster.cs Tue Sep 21 20:32:36 2010 +0000 @@ -46,22 +46,22 @@ namespace OpenHardwareMonitor.Hardware.Heatmaster { internal class Heatmaster : Hardware, IDisposable { - private string portName; + private readonly string portName; private SerialPort serialPort; - private int hardwareRevision; - private int firmwareRevision; - private int firmwareCRC; + private readonly int hardwareRevision; + private readonly int firmwareRevision; + private readonly int firmwareCRC; - private Sensor[] fans; - private Sensor[] controls; - private Sensor[] temperatures; - private Sensor[] flows; - private Sensor[] relays; + private readonly Sensor[] fans; + private readonly Sensor[] controls; + private readonly Sensor[] temperatures; + private readonly Sensor[] flows; + private readonly Sensor[] relays; - private bool available = false; + private readonly bool available; - private StringBuilder buffer = new StringBuilder(); + private readonly StringBuilder buffer = new StringBuilder(); private string ReadLine(int timeout) { int i = 0; @@ -94,7 +94,7 @@ return null; } - private string ReadString(int device, char field) { + protected string ReadString(int device, char field) { string s = ReadField(device, field); if (s != null && s[0] == '"' && s[s.Length - 1] == '"') return s.Substring(1, s.Length - 2); @@ -102,7 +102,7 @@ return null; } - private int ReadInteger(int device, char field) { + protected int ReadInteger(int device, char field) { string s = ReadField(device, field); int i; if (int.TryParse(s, out i)) @@ -125,12 +125,12 @@ return false; } - private bool WriteInteger(int device, char field, int value) { + protected bool WriteInteger(int device, char field, int value) { return WriteField(device, field, value.ToString(CultureInfo.InvariantCulture)); } - private bool WriteString(int device, char field, string value) { + protected bool WriteString(int device, char field, string value) { return WriteField(device, field, '"' + value + '"'); } @@ -164,15 +164,7 @@ new Sensor(name, device, SensorType.Control, this, settings); controls[i].Value = (100 / 255.0f) * ReadInteger(device, 'P'); ActivateSensor(controls[i]); - } - - for (int i = 0; i < fanCount; i++) { - int device = 33 + i; - string name = ReadString(device, 'C'); - - fans[i].Value = ReadInteger(device, 'R'); - ActivateSensor(fans[i]); - } + } temperatures = new Sensor[temperatureCount]; for (int i = 0; i < temperatureCount; i++) { @@ -220,7 +212,7 @@ public override Identifier Identifier { get { return new Identifier("heatmaster", - serialPort.PortName.TrimStart(new char[]{'/'}).ToLowerInvariant()); + serialPort.PortName.TrimStart(new [] {'/'}).ToLowerInvariant()); } } diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Heatmaster/HeatmasterGroup.cs --- a/Hardware/Heatmaster/HeatmasterGroup.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Heatmaster/HeatmasterGroup.cs Tue Sep 21 20:32:36 2010 +0000 @@ -47,8 +47,8 @@ namespace OpenHardwareMonitor.Hardware.Heatmaster { internal class HeatmasterGroup : IGroup { - private List hardware = new List(); - private StringBuilder report = new StringBuilder(); + private readonly List hardware = new List(); + private readonly StringBuilder report = new StringBuilder(); private static string ReadLine(SerialPort port, int timeout) { int i = 0; @@ -82,7 +82,7 @@ if (subKey != null) { string name = subKey.GetValue("PortName") as string; if (name != null && !result.Contains(name)) - result.Add((string)name); + result.Add(name); } } } @@ -94,7 +94,7 @@ public HeatmasterGroup(ISettings settings) { // No implementation for Heatmaster on Unix systems - int p = (int)System.Environment.OSVersion.Platform; + int p = (int)Environment.OSVersion.Platform; if ((p == 4) || (p == 128)) return; diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/HexStringArray.cs --- a/Hardware/HexStringArray.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/HexStringArray.cs Tue Sep 21 20:32:36 2010 +0000 @@ -41,7 +41,7 @@ namespace OpenHardwareMonitor.Hardware { internal class HexStringArray { - private byte[] array; + private readonly byte[] array; public HexStringArray(string input) { List list = new List(); diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/ISensor.cs --- a/Hardware/ISensor.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/ISensor.cs Tue Sep 21 20:32:36 2010 +0000 @@ -52,8 +52,8 @@ } public struct SensorValue { - private float value; - private DateTime time; + private readonly float value; + private readonly DateTime time; public SensorValue(float value, DateTime time) { this.value = value; diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Identifier.cs --- a/Hardware/Identifier.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Identifier.cs Tue Sep 21 20:32:36 2010 +0000 @@ -36,17 +36,18 @@ */ using System; +using System.Collections.Generic; using System.Text; namespace OpenHardwareMonitor.Hardware { public class Identifier : IComparable { - private string identifier; + private readonly string identifier; - private static char SEPARATOR = '/'; + private const char Separator = '/'; - private static void CheckIdentifiers(string[] identifiers) { + private static void CheckIdentifiers(IEnumerable identifiers) { foreach (string s in identifiers) - if (s.Contains(" ") || s.Contains(SEPARATOR.ToString())) + if (s.Contains(" ") || s.Contains(Separator.ToString())) throw new ArgumentException("Invalid identifier"); } @@ -55,7 +56,7 @@ StringBuilder s = new StringBuilder(); for (int i = 0; i < identifiers.Length; i++) { - s.Append(SEPARATOR); + s.Append(Separator); s.Append(identifiers[i]); } this.identifier = s.ToString(); @@ -67,7 +68,7 @@ StringBuilder s = new StringBuilder(); s.Append(identifier.ToString()); for (int i = 0; i < extensions.Length; i++) { - s.Append(SEPARATOR); + s.Append(Separator); s.Append(extensions[i]); } this.identifier = s.ToString(); @@ -77,7 +78,7 @@ return identifier; } - public override bool Equals(System.Object obj) { + public override bool Equals(Object obj) { if (obj == null) return false; diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/LPC/F718XX.cs --- a/Hardware/LPC/F718XX.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/LPC/F718XX.cs Tue Sep 21 20:32:36 2010 +0000 @@ -35,20 +35,18 @@ */ -using System; -using System.Collections.Generic; using System.Globalization; using System.Text; namespace OpenHardwareMonitor.Hardware.LPC { internal class F718XX : ISuperIO { - private ushort address; - private Chip chip; + private readonly ushort address; + private readonly Chip chip; - private float?[] voltages; - private float?[] temperatures; - private float?[] fans; + private readonly float?[] voltages; + private readonly float?[] temperatures; + private readonly float?[] fans; // Hardware Monitor private const byte ADDRESS_REGISTER_OFFSET = 0x05; @@ -58,7 +56,8 @@ private const byte VOLTAGE_BASE_REG = 0x20; private const byte TEMPERATURE_CONFIG_REG = 0x69; private const byte TEMPERATURE_BASE_REG = 0x70; - private byte[] FAN_TACHOMETER_REG = new byte[] { 0xA0, 0xB0, 0xC0, 0xD0 }; + private readonly byte[] FAN_TACHOMETER_REG = + new byte[] { 0xA0, 0xB0, 0xC0, 0xD0 }; private byte ReadByte(byte register) { WinRing0.WriteIoPortByte( @@ -126,7 +125,7 @@ for (int i = 0; i < temperatures.Length; i++) { switch (chip) { case Chip.F71858: { - int tableMode = 0x3 & ReadByte((byte)(TEMPERATURE_CONFIG_REG)); + int tableMode = 0x3 & ReadByte(TEMPERATURE_CONFIG_REG); int high = ReadByte((byte)(TEMPERATURE_BASE_REG + 2 * i)); int low = diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/LPC/IT87XX.cs --- a/Hardware/LPC/IT87XX.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/LPC/IT87XX.cs Tue Sep 21 20:32:36 2010 +0000 @@ -41,16 +41,16 @@ namespace OpenHardwareMonitor.Hardware.LPC { internal class IT87XX : ISuperIO { - private ushort address; - private Chip chip; - private byte version; + private readonly ushort address; + private readonly Chip chip; + private readonly byte version; private readonly ushort addressReg; private readonly ushort dataReg; - private float?[] voltages = new float?[0]; - private float?[] temperatures = new float?[0]; - private float?[] fans = new float?[0]; + private readonly float?[] voltages = new float?[0]; + private readonly float?[] temperatures = new float?[0]; + private readonly float?[] fans = new float?[0]; private readonly float voltageGain; @@ -66,9 +66,9 @@ private const byte TEMPERATURE_BASE_REG = 0x29; private const byte VENDOR_ID_REGISTER = 0x58; private const byte FAN_TACHOMETER_16_BIT_ENABLE_REGISTER = 0x0c; - private byte[] FAN_TACHOMETER_REG = + private readonly byte[] FAN_TACHOMETER_REG = new byte[] { 0x0d, 0x0e, 0x0f, 0x80, 0x82 }; - private byte[] FAN_TACHOMETER_EXT_REG = + private readonly byte[] FAN_TACHOMETER_EXT_REG = new byte[] { 0x18, 0x19, 0x1a, 0x81, 0x83 }; private const byte VOLTAGE_BASE_REG = 0x20; @@ -143,10 +143,8 @@ r.Append(" "); bool valid; byte value = ReadByte((byte)((i << 4) | j), out valid); - if (valid) - r.Append(value.ToString("X2", CultureInfo.InvariantCulture)); - else - r.Append("??"); + r.Append( + valid ? value.ToString("X2", CultureInfo.InvariantCulture) : "??"); } r.AppendLine(); } diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/LPC/LMSensors.cs --- a/Hardware/LPC/LMSensors.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/LPC/LMSensors.cs Tue Sep 21 20:32:36 2010 +0000 @@ -43,7 +43,7 @@ internal class LMSensors { - private List lmChips = new List(); + private readonly List lmChips = new List(); public LMSensors() { string[] devicePaths = Directory.GetDirectories("/sys/class/hwmon/"); @@ -102,15 +102,15 @@ private class LMChip : ISuperIO { private string path; - private Chip chip; + private readonly Chip chip; - private float?[] voltages; - private float?[] temperatures; - private float?[] fans; + private readonly float?[] voltages; + private readonly float?[] temperatures; + private readonly float?[] fans; - private StreamReader[] voltageReaders; - private StreamReader[] temperatureReaders; - private StreamReader[] fanReaders; + private readonly StreamReader[] voltageReaders; + private readonly StreamReader[] temperatureReaders; + private readonly StreamReader[] fanReaders; public Chip Chip { get { return chip; } } public float?[] Voltages { get { return voltages; } } diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/LPC/LPCIO.cs --- a/Hardware/LPC/LPCIO.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/LPC/LPCIO.cs Tue Sep 21 20:32:36 2010 +0000 @@ -44,12 +44,12 @@ namespace OpenHardwareMonitor.Hardware.LPC { internal class LPCIO { - private List superIOs = new List(); - private StringBuilder report = new StringBuilder(); + private readonly List superIOs = new List(); + private readonly StringBuilder report = new StringBuilder(); // I/O Ports - private ushort[] REGISTER_PORTS = new ushort[] { 0x2E, 0x4E }; - private ushort[] VALUE_PORTS = new ushort[] { 0x2F, 0x4F }; + private readonly ushort[] REGISTER_PORTS = new ushort[] { 0x2E, 0x4E }; + private readonly ushort[] VALUE_PORTS = new ushort[] { 0x2F, 0x4F }; private ushort registerPort; private ushort valuePort; @@ -110,11 +110,10 @@ private bool DetectWinbondFintek() { WinbondFintekEnter(); - byte logicalDeviceNumber; + byte logicalDeviceNumber = 0; byte id = ReadByte(CHIP_ID_REGISTER); byte revision = ReadByte(CHIP_REVISION_REGISTER); Chip chip = Chip.Unknown; - logicalDeviceNumber = 0; switch (id) { case 0x05: switch (revision) { @@ -441,8 +440,7 @@ public string GetReport() { if (report.Length > 0) { - return "LPCIO" + Environment.NewLine + Environment.NewLine + - report.ToString(); + return "LPCIO" + Environment.NewLine + Environment.NewLine + report; } else return null; } diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/LPC/W836XX.cs --- a/Hardware/LPC/W836XX.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/LPC/W836XX.cs Tue Sep 21 20:32:36 2010 +0000 @@ -42,19 +42,19 @@ namespace OpenHardwareMonitor.Hardware.LPC { internal class W836XX : ISuperIO { - private ushort address; - private byte revision; + private readonly ushort address; + private readonly byte revision; - private Chip chip; + private readonly Chip chip; - private float?[] voltages = new float?[0]; - private float?[] temperatures = new float?[0]; - private float?[] fans = new float?[0]; + private readonly float?[] voltages = new float?[0]; + private readonly float?[] temperatures = new float?[0]; + private readonly float?[] fans = new float?[0]; - private bool[] peciTemperature = new bool[0]; - private byte[] voltageRegister = new byte[0]; - private byte[] voltageBank = new byte[0]; - private float voltageGain = 0.008f; + private readonly bool[] peciTemperature = new bool[0]; + private readonly byte[] voltageRegister = new byte[0]; + private readonly byte[] voltageBank = new byte[0]; + private readonly float voltageGain = 0.008f; // Consts private const ushort WINBOND_VENDOR_ID = 0x5CA3; @@ -70,15 +70,18 @@ private const byte VENDOR_ID_REGISTER = 0x4F; private const byte TEMPERATURE_SOURCE_SELECT_REG = 0x49; - private byte[] TEMPERATURE_REG = new byte[] { 0x50, 0x50, 0x27 }; - private byte[] TEMPERATURE_BANK = new byte[] { 1, 2, 0 }; + private readonly byte[] TEMPERATURE_REG = new byte[] { 0x50, 0x50, 0x27 }; + private readonly byte[] TEMPERATURE_BANK = new byte[] { 1, 2, 0 }; - private byte[] FAN_TACHO_REG = new byte[] { 0x28, 0x29, 0x2A, 0x3F, 0x53 }; - private byte[] FAN_TACHO_BANK = new byte[] { 0, 0, 0, 0, 5 }; - private byte[] FAN_BIT_REG = new byte[] { 0x47, 0x4B, 0x4C, 0x59, 0x5D }; - private byte[] FAN_DIV_BIT0 = new byte[] { 36, 38, 30, 8, 10 }; - private byte[] FAN_DIV_BIT1 = new byte[] { 37, 39, 31, 9, 11 }; - private byte[] FAN_DIV_BIT2 = new byte[] { 5, 6, 7, 23, 15 }; + private readonly byte[] FAN_TACHO_REG = + new byte[] { 0x28, 0x29, 0x2A, 0x3F, 0x53 }; + private readonly byte[] FAN_TACHO_BANK = + new byte[] { 0, 0, 0, 0, 5 }; + private readonly byte[] FAN_BIT_REG = + new byte[] { 0x47, 0x4B, 0x4C, 0x59, 0x5D }; + private readonly byte[] FAN_DIV_BIT0 = new byte[] { 36, 38, 30, 8, 10 }; + private readonly byte[] FAN_DIV_BIT1 = new byte[] { 37, 39, 31, 9, 11 }; + private readonly byte[] FAN_DIV_BIT2 = new byte[] { 5, 6, 7, 23, 15 }; private byte ReadByte(byte bank, byte register) { WinRing0.WriteIoPortByte( diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Mainboard/Mainboard.cs --- a/Hardware/Mainboard/Mainboard.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Mainboard/Mainboard.cs Tue Sep 21 20:32:36 2010 +0000 @@ -41,12 +41,12 @@ namespace OpenHardwareMonitor.Hardware.Mainboard { internal class Mainboard : IHardware { - private SMBIOS smbios; - private string name; + private readonly SMBIOS smbios; + private readonly string name; - private LPCIO lpcio; - private LMSensors lmSensors; - private IHardware[] superIOHardware; + private readonly LPCIO lpcio; + private readonly LMSensors lmSensors; + private readonly IHardware[] superIOHardware; public Mainboard(ISettings settings) { this.smbios = new SMBIOS(); @@ -66,7 +66,7 @@ } ISuperIO[] superIO; - int p = (int)System.Environment.OSVersion.Platform; + int p = (int)Environment.OSVersion.Platform; if ((p == 4) || (p == 128)) { this.lmSensors = new LMSensors(); superIO = lmSensors.SuperIO; diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Mainboard/MainboardGroup.cs --- a/Hardware/Mainboard/MainboardGroup.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Mainboard/MainboardGroup.cs Tue Sep 21 20:32:36 2010 +0000 @@ -38,7 +38,7 @@ namespace OpenHardwareMonitor.Hardware.Mainboard { internal class MainboardGroup : IGroup { - private Mainboard[] mainboards; + private readonly Mainboard[] mainboards; public MainboardGroup(ISettings settings) { mainboards = new Mainboard[1]; diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Mainboard/SMBIOS.cs --- a/Hardware/Mainboard/SMBIOS.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Mainboard/SMBIOS.cs Tue Sep 21 20:32:36 2010 +0000 @@ -45,11 +45,11 @@ internal class SMBIOS { - private byte[] raw; - private Structure[] table; + private readonly byte[] raw; + private readonly Structure[] table; - private BIOSInformation biosInformation = null; - private BaseBoardInformation baseBoardInformation = null; + private readonly BIOSInformation biosInformation; + private readonly BaseBoardInformation baseBoardInformation; private static string ReadSysFS(string path) { try { @@ -65,7 +65,7 @@ } public SMBIOS() { - int p = (int)System.Environment.OSVersion.Platform; + int p = (int)Environment.OSVersion.Platform; if ((p == 4) || (p == 128)) { this.raw = null; this.table = null; @@ -193,11 +193,11 @@ } public class Structure { - private byte type; - private ushort handle; + private readonly byte type; + private readonly ushort handle; - private byte[] data; - private string[] strings; + private readonly byte[] data; + private readonly string[] strings; protected string GetString(int offset) { if (offset < data.Length && data[offset] > 0 && @@ -222,8 +222,8 @@ public class BIOSInformation : Structure { - private string vendor; - private string version; + private readonly string vendor; + private readonly string version; public BIOSInformation(string vendor, string version) : base (0x00, 0, null, null) @@ -247,117 +247,115 @@ public class BaseBoardInformation : Structure { - private string manufacturerName; - private string productName; - private string version; - private string serialNumber; - private Manufacturer manufacturer; - private Model model; + private readonly string manufacturerName; + private readonly string productName; + private readonly string version; + private readonly string serialNumber; + private readonly Manufacturer manufacturer; + private readonly Model model; - private void SetManufacturerName(string name) { - this.manufacturerName = name; - + private static Manufacturer GetManufacturer(string name) { switch (name) { case "ASRock": - manufacturer = Manufacturer.ASRock; break; + return Manufacturer.ASRock; case "ASUSTeK Computer INC.": - manufacturer = Manufacturer.ASUS; break; + return Manufacturer.ASUS; case "Dell Inc.": - manufacturer = Manufacturer.Dell; break; + return Manufacturer.Dell; case "DFI": case "DFI Inc.": - manufacturer = Manufacturer.DFI; break; + return Manufacturer.DFI; case "ECS": - manufacturer = Manufacturer.ECS; break; + return Manufacturer.ECS; case "EPoX COMPUTER CO., LTD": - manufacturer = Manufacturer.EPoX; break; + return Manufacturer.EPoX; case "EVGA": - manufacturer = Manufacturer.EVGA; break; + return Manufacturer.EVGA; case "First International Computer, Inc.": - manufacturer = Manufacturer.FIC; break; + return Manufacturer.FIC; case "Gigabyte Technology Co., Ltd.": - manufacturer = Manufacturer.Gigabyte; break; + return Manufacturer.Gigabyte; case "Hewlett-Packard": - manufacturer = Manufacturer.HP; break; + return Manufacturer.HP; case "IBM": - manufacturer = Manufacturer.IBM; break; + return Manufacturer.IBM; case "MICRO-STAR INTERNATIONAL CO., LTD": case "MICRO-STAR INTERNATIONAL CO.,LTD": - manufacturer = Manufacturer.MSI; break; + return Manufacturer.MSI; case "XFX": - manufacturer = Manufacturer.XFX; break; + return Manufacturer.XFX; case "To be filled by O.E.M.": - manufacturer = Manufacturer.Unknown; break; + return Manufacturer.Unknown; default: - manufacturer = Manufacturer.Unknown; break; + return Manufacturer.Unknown; } } - - private void SetProductName(string name) { - this.productName = name; - + + private static Model GetModel(string name) { switch (name) { case "880GMH/USB3": - model = Model._880GMH_USB3; break; + return Model._880GMH_USB3; case "Crosshair III Formula": - model = Model.Crosshair_III_Formula; break; + return Model.Crosshair_III_Formula; case "M2N-SLI DELUXE": - model = Model.M2N_SLI_DELUXE; break; + return Model.M2N_SLI_DELUXE; case "M4A79XTD EVO": - model = Model.M4A79XTD_EVO; break; + return Model.M4A79XTD_EVO; case "P5W DH Deluxe": - model = Model.P5W_DH_Deluxe; break; + return Model.P5W_DH_Deluxe; case "P6X58D-E": - model = Model.P6X58D_E; break; + return Model.P6X58D_E; case "Rampage Extreme": - model = Model.Rampage_Extreme; break; + return Model.Rampage_Extreme; case "Rampage II GENE": - model = Model.Rampage_II_GENE; break; + return Model.Rampage_II_GENE; case "LP BI P45-T2RS Elite": - model = Model.LP_BI_P45_T2RS_Elite; break; + return Model.LP_BI_P45_T2RS_Elite; case "LP DK P55-T3eH9": - model = Model.LP_DK_P55_T3eH9; break; + return Model.LP_DK_P55_T3eH9; case "A890GXM-A": - model = Model.A890GXM_A; break; + return Model.A890GXM_A; case "X58 SLI Classified": - model = Model.X58_SLI_Classified; break; + return Model.X58_SLI_Classified; case "965P-S3": - model = Model._965P_S3; break; + return Model._965P_S3; case "EP45-DS3R": - model = Model.EP45_DS3R; break; + return Model.EP45_DS3R; case "EP45-UD3R": - model = Model.EP45_UD3R; break; + return Model.EP45_UD3R; case "EX58-EXTREME": - model = Model.EX58_EXTREME; break; + return Model.EX58_EXTREME; case "GA-MA770T-UD3": - model = Model.GA_MA770T_UD3; break; + return Model.GA_MA770T_UD3; case "GA-MA785GMT-UD2H": - model = Model.GA_MA785GMT_UD2H; break; + return Model.GA_MA785GMT_UD2H; case "P35-DS3": - model = Model.P35_DS3; break; + return Model.P35_DS3; case "P35-DS3L": - model = Model.P35_DS3L; break; + return Model.P35_DS3L; case "P55-UD4": - model = Model.P55_UD4; break; + return Model.P55_UD4; case "P55M-UD4": - model = Model.P55M_UD4; break; + return Model.P55M_UD4; case "X38-DS5": - model = Model.X38_DS5; break; + return Model.X38_DS5; case "X58A-UD3R": - model = Model.X58A_UD3R; break; + return Model.X58A_UD3R; case "To be filled by O.E.M.": - model = Model.Unknown; break; + return Model.Unknown; default: - model = Model.Unknown; break; + return Model.Unknown; } } public BaseBoardInformation(string manufacturerName, string productName, string version, string serialNumber) : base(0x02, 0, null, null) - { - SetManufacturerName(manufacturerName); - SetProductName(productName); + { + this.manufacturerName = manufacturerName; + this.manufacturer = GetManufacturer(manufacturerName); + this.productName = productName; + this.model = GetModel(productName); this.version = version; this.serialNumber = serialNumber; } @@ -366,8 +364,10 @@ string[] strings) : base(type, handle, data, strings) { - SetManufacturerName(GetString(0x04).Trim()); - SetProductName(GetString(0x05).Trim()); + this.manufacturerName = GetString(0x04).Trim(); + this.manufacturer = GetManufacturer(this.manufacturerName); + this.productName = GetString(0x05).Trim(); + this.model = GetModel(this.productName); this.version = GetString(0x06).Trim(); this.serialNumber = GetString(0x07).Trim(); } diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Mainboard/SuperIOHardware.cs --- a/Hardware/Mainboard/SuperIOHardware.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Mainboard/SuperIOHardware.cs Tue Sep 21 20:32:36 2010 +0000 @@ -42,13 +42,13 @@ namespace OpenHardwareMonitor.Hardware.Mainboard { internal class SuperIOHardware : Hardware { - private Mainboard mainboard; - private ISuperIO superIO; - private string name; + private readonly Mainboard mainboard; + private readonly ISuperIO superIO; + private readonly string name; - private List voltages = new List(); - private List temperatures = new List(); - private List fans = new List(); + private readonly List voltages = new List(); + private readonly List temperatures = new List(); + private readonly List fans = new List(); public SuperIOHardware(Mainboard mainboard, ISuperIO superIO, @@ -80,9 +80,9 @@ case Model.M2N_SLI_DELUXE: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("+3.3V", 1)); - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0)); - v.Add(new Voltage("+12V", 4, 30, 10, 0)); - v.Add(new Voltage("+5VSB", 7, 6.8f, 10, 0)); + v.Add(new Voltage("+5V", 3, 6.8f, 10)); + v.Add(new Voltage("+12V", 4, 30, 10)); + v.Add(new Voltage("+5VSB", 7, 6.8f, 10)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Motherboard", 1)); @@ -91,7 +91,7 @@ f.Add(new Fan("Power Fan", 2)); break; case Model.M4A79XTD_EVO: // IT8720F - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0)); + v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Motherboard", 1)); @@ -122,11 +122,11 @@ v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("FSB VTT", 1)); v.Add(new Voltage("+3.3V", 2)); - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0)); - v.Add(new Voltage("+12V", 4, 30, 10, 0)); + v.Add(new Voltage("+5V", 3, 6.8f, 10)); + v.Add(new Voltage("+12V", 4, 30, 10)); v.Add(new Voltage("NB Core", 5)); v.Add(new Voltage("VDIMM", 6)); - v.Add(new Voltage("+5VSB", 7, 6.8f, 10, 0)); + v.Add(new Voltage("+5VSB", 7, 6.8f, 10)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("System", 1)); @@ -139,11 +139,11 @@ v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("VTT", 1)); v.Add(new Voltage("+3.3V", 2)); - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0)); - v.Add(new Voltage("+12V", 4, 30, 10, 0)); + v.Add(new Voltage("+5V", 3, 6.8f, 10)); + v.Add(new Voltage("+12V", 4, 30, 10)); v.Add(new Voltage("CPU PLL", 5)); v.Add(new Voltage("DRAM", 6)); - v.Add(new Voltage("+5VSB", 7, 6.8f, 10, 0)); + v.Add(new Voltage("+5VSB", 7, 6.8f, 10)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("Chipset", 0)); t.Add(new Temperature("CPU PWM", 1)); @@ -176,8 +176,8 @@ v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0)); - v.Add(new Voltage("+12V", 7, 27, 9.1f, 0)); + v.Add(new Voltage("+5V", 3, 6.8f, 10)); + v.Add(new Voltage("+12V", 7, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); @@ -190,8 +190,8 @@ v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0)); - v.Add(new Voltage("+12V", 7, 27, 9.1f, 0)); + v.Add(new Voltage("+5V", 3, 6.8f, 10)); + v.Add(new Voltage("+12V", 7, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); @@ -203,7 +203,7 @@ case Model.EX58_EXTREME: // IT8720F v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0)); + v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); @@ -218,8 +218,8 @@ v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0)); - v.Add(new Voltage("+12V", 7, 27, 9.1f, 0)); + v.Add(new Voltage("+5V", 3, 6.8f, 10)); + v.Add(new Voltage("+12V", 7, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); @@ -233,8 +233,8 @@ v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0)); - v.Add(new Voltage("+12V", 5, 27, 9.1f, 0)); + v.Add(new Voltage("+5V", 3, 6.8f, 10)); + v.Add(new Voltage("+12V", 5, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 2)); @@ -247,8 +247,8 @@ v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0)); - v.Add(new Voltage("+12V", 4, 27, 9.1f, 0)); + v.Add(new Voltage("+5V", 3, 6.8f, 10)); + v.Add(new Voltage("+12V", 4, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); @@ -261,8 +261,8 @@ v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0)); - v.Add(new Voltage("+12V", 4, 27, 9.1f, 0)); + v.Add(new Voltage("+5V", 3, 6.8f, 10)); + v.Add(new Voltage("+12V", 4, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); @@ -274,8 +274,8 @@ v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0)); - v.Add(new Voltage("+12V", 5, 27, 9.1f, 0)); + v.Add(new Voltage("+5V", 3, 6.8f, 10)); + v.Add(new Voltage("+12V", 5, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); @@ -329,10 +329,10 @@ v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("VDIMM", 1)); v.Add(new Voltage("NB Voltage", 2)); - v.Add(new Voltage("Analog +3.3V", 3, 10, 10, 0)); + v.Add(new Voltage("Analog +3.3V", 3, 10, 10)); // v.Add(new Voltage("VDIMM", 6, true)); - v.Add(new Voltage("Standby +3.3V", 7, 10, 10, 0)); - v.Add(new Voltage("VBat", 8, 10, 10, 0)); + v.Add(new Voltage("Standby +3.3V", 7, 10, 10)); + v.Add(new Voltage("VBat", 8, 10, 10)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("System", 1)); t.Add(new Temperature("Northbridge", 2)); @@ -349,7 +349,7 @@ v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("Standby +3.3V", 7, 10, 10, 0, true)); - v.Add(new Voltage("VBat", 8, 10, 10, 0)); + v.Add(new Voltage("VBat", 8, 10, 10)); for (int i = 0; i < superIO.Temperatures.Length; i++) t.Add(new Temperature("Temperature #" + (i + 1), i)); for (int i = 0; i < superIO.Fans.Length; i++) @@ -366,7 +366,7 @@ v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("Standby +3.3V", 7, 10, 10, 0, true)); - v.Add(new Voltage("VBat", 8, 10, 10, 0)); + v.Add(new Voltage("VBat", 8, 10, 10)); for (int i = 0; i < superIO.Temperatures.Length; i++) t.Add(new Temperature("Temperature #" + (i + 1), i)); for (int i = 0; i < superIO.Fans.Length; i++) @@ -376,9 +376,9 @@ break; case Chip.F71858: - v.Add(new Voltage("VCC3V", 0, 150, 150, 0)); - v.Add(new Voltage("VSB3V", 1, 150, 150, 0)); - v.Add(new Voltage("Battery", 2, 150, 150, 0)); + v.Add(new Voltage("VCC3V", 0, 150, 150)); + v.Add(new Voltage("VSB3V", 1, 150, 150)); + v.Add(new Voltage("Battery", 2, 150, 150)); for (int i = 0; i < superIO.Temperatures.Length; i++) t.Add(new Temperature("Temperature #" + (i + 1), i)); for (int i = 0; i < superIO.Fans.Length; i++) @@ -393,15 +393,15 @@ case Manufacturer.EVGA: switch (model) { case Model.X58_SLI_Classified: // F71882 - v.Add(new Voltage("VCC3V", 0, 150, 150, 0)); - v.Add(new Voltage("CPU VCore", 1, 47, 100, 0)); - v.Add(new Voltage("DIMM", 2, 47, 100, 0)); - v.Add(new Voltage("CPU VTT", 3, 24, 100, 0)); - v.Add(new Voltage("IOH Vcore", 4, 24, 100, 0)); - v.Add(new Voltage("+5V", 5, 51, 12, 0)); - v.Add(new Voltage("+12V", 6, 56, 6.8f, 0)); - v.Add(new Voltage("3VSB", 7, 150, 150, 0)); - v.Add(new Voltage("VBat", 8, 150, 150, 0)); + v.Add(new Voltage("VCC3V", 0, 150, 150)); + v.Add(new Voltage("CPU VCore", 1, 47, 100)); + v.Add(new Voltage("DIMM", 2, 47, 100)); + v.Add(new Voltage("CPU VTT", 3, 24, 100)); + v.Add(new Voltage("IOH Vcore", 4, 24, 100)); + v.Add(new Voltage("+5V", 5, 51, 12)); + v.Add(new Voltage("+12V", 6, 56, 6.8f)); + v.Add(new Voltage("3VSB", 7, 150, 150)); + v.Add(new Voltage("VBat", 8, 150, 150)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("VREG", 1)); t.Add(new Temperature("System", 2)); @@ -410,15 +410,15 @@ f.Add(new Fan("Chassis Fan", 2)); break; default: - v.Add(new Voltage("VCC3V", 0, 150, 150, 0)); + v.Add(new Voltage("VCC3V", 0, 150, 150)); v.Add(new Voltage("CPU VCore", 1)); v.Add(new Voltage("Voltage #3", 2, true)); v.Add(new Voltage("Voltage #4", 3, true)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); - v.Add(new Voltage("VSB3V", 7, 150, 150, 0)); - v.Add(new Voltage("VBat", 8, 150, 150, 0)); + v.Add(new Voltage("VSB3V", 7, 150, 150)); + v.Add(new Voltage("VBat", 8, 150, 150)); for (int i = 0; i < superIO.Temperatures.Length; i++) t.Add(new Temperature("Temperature #" + (i + 1), i)); for (int i = 0; i < superIO.Fans.Length; i++) @@ -427,15 +427,15 @@ } break; default: - v.Add(new Voltage("VCC3V", 0, 150, 150, 0)); + v.Add(new Voltage("VCC3V", 0, 150, 150)); v.Add(new Voltage("CPU VCore", 1)); v.Add(new Voltage("Voltage #3", 2, true)); v.Add(new Voltage("Voltage #4", 3, true)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); - v.Add(new Voltage("VSB3V", 7, 150, 150, 0)); - v.Add(new Voltage("VBat", 8, 150, 150, 0)); + v.Add(new Voltage("VSB3V", 7, 150, 150)); + v.Add(new Voltage("VBat", 8, 150, 150)); for (int i = 0; i < superIO.Temperatures.Length; i++) t.Add(new Temperature("Temperature #" + (i + 1), i)); for (int i = 0; i < superIO.Fans.Length; i++) @@ -447,13 +447,13 @@ case Chip.W83627EHF: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("Voltage #2", 1, true)); - v.Add(new Voltage("AVCC", 2, 34, 34, 0)); - v.Add(new Voltage("3VCC", 3, 34, 34, 0)); + v.Add(new Voltage("AVCC", 2, 34, 34)); + v.Add(new Voltage("3VCC", 3, 34, 34)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); - v.Add(new Voltage("3VSB", 7, 34, 34, 0)); - v.Add(new Voltage("VBAT", 8, 34, 34, 0)); + v.Add(new Voltage("3VSB", 7, 34, 34)); + v.Add(new Voltage("VBAT", 8, 34, 34)); v.Add(new Voltage("Voltage #10", 9, true)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Auxiliary", 1)); @@ -473,11 +473,11 @@ switch (model) { case Model._880GMH_USB3: // W83627DHG-P v.Add(new Voltage("CPU VCore", 0)); - v.Add(new Voltage("+3.3V", 3, 34, 34, 0)); - v.Add(new Voltage("+5V", 5, 15, 7.5f, 0)); - v.Add(new Voltage("+12V", 6, 56, 10, 0)); - v.Add(new Voltage("Standby +3.3V", 7, 34, 34, 0)); - v.Add(new Voltage("VBAT", 8, 34, 34, 0)); + v.Add(new Voltage("+3.3V", 3, 34, 34)); + v.Add(new Voltage("+5V", 5, 15, 7.5f)); + v.Add(new Voltage("+12V", 6, 56, 10)); + v.Add(new Voltage("Standby +3.3V", 7, 34, 34)); + v.Add(new Voltage("VBAT", 8, 34, 34)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Motherboard", 2)); f.Add(new Fan("Chassis Fan", 0)); @@ -487,13 +487,13 @@ default: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("Voltage #2", 1, true)); - v.Add(new Voltage("AVCC", 2, 34, 34, 0)); - v.Add(new Voltage("3VCC", 3, 34, 34, 0)); + v.Add(new Voltage("AVCC", 2, 34, 34)); + v.Add(new Voltage("3VCC", 3, 34, 34)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); - v.Add(new Voltage("3VSB", 7, 34, 34, 0)); - v.Add(new Voltage("VBAT", 8, 34, 34, 0)); + v.Add(new Voltage("3VSB", 7, 34, 34)); + v.Add(new Voltage("VBAT", 8, 34, 34)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Auxiliary", 1)); t.Add(new Temperature("System", 2)); @@ -510,12 +510,12 @@ case Model.P6X58D_E: // W83667HG case Model.Rampage_II_GENE: // W83667HG v.Add(new Voltage("CPU VCore", 0)); - v.Add(new Voltage("+12V", 1, 11.5f, 1.91f, 0)); - v.Add(new Voltage("Analog +3.3V", 2, 34, 34, 0)); - v.Add(new Voltage("+3.3V", 3, 34, 34, 0)); - v.Add(new Voltage("+5V", 4, 15, 7.5f, 0)); - v.Add(new Voltage("Standby +3.3V", 7, 34, 34, 0)); - v.Add(new Voltage("VBAT", 8, 34, 34, 0)); + v.Add(new Voltage("+12V", 1, 11.5f, 1.91f)); + v.Add(new Voltage("Analog +3.3V", 2, 34, 34)); + v.Add(new Voltage("+3.3V", 3, 34, 34)); + v.Add(new Voltage("+5V", 4, 15, 7.5f)); + v.Add(new Voltage("Standby +3.3V", 7, 34, 34)); + v.Add(new Voltage("VBAT", 8, 34, 34)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Motherboard", 2)); f.Add(new Fan("Chassis Fan #1", 0)); @@ -526,12 +526,12 @@ break; case Model.Rampage_Extreme: // W83667HG v.Add(new Voltage("CPU VCore", 0)); - v.Add(new Voltage("+12V", 1, 12, 2, 0)); - v.Add(new Voltage("Analog +3.3V", 2, 34, 34, 0)); - v.Add(new Voltage("+3.3V", 3, 34, 34, 0)); - v.Add(new Voltage("+5V", 4, 15, 7.5f, 0)); - v.Add(new Voltage("Standby +3.3V", 7, 34, 34, 0)); - v.Add(new Voltage("VBAT", 8, 34, 34, 0)); + v.Add(new Voltage("+12V", 1, 12, 2)); + v.Add(new Voltage("Analog +3.3V", 2, 34, 34)); + v.Add(new Voltage("+3.3V", 3, 34, 34)); + v.Add(new Voltage("+5V", 4, 15, 7.5f)); + v.Add(new Voltage("Standby +3.3V", 7, 34, 34)); + v.Add(new Voltage("VBAT", 8, 34, 34)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Motherboard", 2)); f.Add(new Fan("Chassis Fan #1", 0)); @@ -543,13 +543,13 @@ default: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("Voltage #2", 1, true)); - v.Add(new Voltage("AVCC", 2, 34, 34, 0)); - v.Add(new Voltage("3VCC", 3, 34, 34, 0)); + v.Add(new Voltage("AVCC", 2, 34, 34)); + v.Add(new Voltage("3VCC", 3, 34, 34)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); - v.Add(new Voltage("3VSB", 7, 34, 34, 0)); - v.Add(new Voltage("VBAT", 8, 34, 34, 0)); + v.Add(new Voltage("3VSB", 7, 34, 34)); + v.Add(new Voltage("VBAT", 8, 34, 34)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Auxiliary", 1)); t.Add(new Temperature("System", 2)); @@ -564,13 +564,13 @@ default: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("Voltage #2", 1, true)); - v.Add(new Voltage("AVCC", 2, 34, 34, 0)); - v.Add(new Voltage("3VCC", 3, 34, 34, 0)); + v.Add(new Voltage("AVCC", 2, 34, 34)); + v.Add(new Voltage("3VCC", 3, 34, 34)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); - v.Add(new Voltage("3VSB", 7, 34, 34, 0)); - v.Add(new Voltage("VBAT", 8, 34, 34, 0)); + v.Add(new Voltage("3VSB", 7, 34, 34)); + v.Add(new Voltage("VBAT", 8, 34, 34)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Auxiliary", 1)); t.Add(new Temperature("System", 2)); @@ -588,9 +588,9 @@ v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("Voltage #2", 1, true)); v.Add(new Voltage("Voltage #3", 2, true)); - v.Add(new Voltage("AVCC", 3, 34, 51, 0)); + v.Add(new Voltage("AVCC", 3, 34, 51)); v.Add(new Voltage("Voltage #5", 4, true)); - v.Add(new Voltage("5VSB", 5, 34, 51, 0)); + v.Add(new Voltage("5VSB", 5, 34, 51)); v.Add(new Voltage("VBAT", 6)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Auxiliary", 1)); @@ -609,12 +609,11 @@ break; } - string formula = "Voltage = value + (value - Vf) * Ri / Rf."; + const string formula = "Voltage = value + (value - Vf) * Ri / Rf."; foreach (Voltage voltage in v) if (voltage.Index < superIO.Voltages.Length) { Sensor sensor = new Sensor(voltage.Name, voltage.Index, - voltage.Hidden, SensorType.Voltage, this, - new ParameterDescription[] { + voltage.Hidden, SensorType.Voltage, this, new [] { new ParameterDescription("Ri [kΩ]", "Input resistance.\n" + formula, voltage.Ri), new ParameterDescription("Rf [kΩ]", "Reference resistance.\n" + @@ -628,7 +627,7 @@ foreach (Temperature temperature in t) if (temperature.Index < superIO.Temperatures.Length) { Sensor sensor = new Sensor(temperature.Name, temperature.Index, - SensorType.Temperature, this, new ParameterDescription[] { + SensorType.Temperature, this, new [] { new ParameterDescription("Offset [°C]", "Temperature offset.", 0) }, settings); temperatures.Add(sensor); @@ -703,17 +702,12 @@ public readonly float Vf; public readonly bool Hidden; - public Voltage(string name, int index) : - this(name, index, 0, 1, 0, false) { } - public Voltage(string name, int index, bool hidden) : this(name, index, 0, 1, 0, hidden) { } - public Voltage(string name, int index, float ri, float rf, float vf) : - this(name, index, ri, rf, vf, false) { } - - public Voltage(string name, int index, float ri, float rf, float vf, - bool hidden) { + public Voltage(string name, int index, + float ri = 0, float rf = 1, float vf = 0, bool hidden = false) + { this.Name = name; this.Index = index; this.Ri = ri; diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Nvidia/NVAPI.cs --- a/Hardware/Nvidia/NVAPI.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Nvidia/NVAPI.cs Tue Sep 21 20:32:36 2010 +0000 @@ -141,12 +141,12 @@ [StructLayout(LayoutKind.Sequential)] internal struct NvDisplayHandle { - private IntPtr ptr; + private readonly IntPtr ptr; } [StructLayout(LayoutKind.Sequential)] internal struct NvPhysicalGpuHandle { - private IntPtr ptr; + private readonly IntPtr ptr; } [StructLayout(LayoutKind.Sequential, Pack = 8)] @@ -281,11 +281,12 @@ public delegate NvStatus NvAPI_GetInterfaceVersionStringDelegate( StringBuilder version); - private static bool available = false; - private static nvapi_QueryInterfaceDelegate nvapi_QueryInterface; - private static NvAPI_InitializeDelegate NvAPI_Initialize; - private static NvAPI_GPU_GetFullNameDelegate _NvAPI_GPU_GetFullName; - private static NvAPI_GetInterfaceVersionStringDelegate + private static readonly bool available; + private static readonly nvapi_QueryInterfaceDelegate nvapi_QueryInterface; + private static readonly NvAPI_InitializeDelegate NvAPI_Initialize; + private static readonly NvAPI_GPU_GetFullNameDelegate + _NvAPI_GPU_GetFullName; + private static readonly NvAPI_GetInterfaceVersionStringDelegate _NvAPI_GetInterfaceVersionString; public static readonly NvAPI_GPU_GetThermalSettingsDelegate diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Nvidia/NvidiaGPU.cs --- a/Hardware/Nvidia/NvidiaGPU.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Nvidia/NvidiaGPU.cs Tue Sep 21 20:32:36 2010 +0000 @@ -40,19 +40,19 @@ using System.Text; namespace OpenHardwareMonitor.Hardware.Nvidia { - internal class NvidiaGPU : Hardware, IHardware { + internal class NvidiaGPU : Hardware { - private string name; - private int adapterIndex; - private NvPhysicalGpuHandle handle; - private NvDisplayHandle? displayHandle; + private readonly string name; + private readonly int adapterIndex; + private readonly NvPhysicalGpuHandle handle; + private readonly NvDisplayHandle? displayHandle; - private Sensor[] temperatures; - private Sensor fan = null; - private Sensor[] clocks; - private Sensor[] loads; - private Sensor control; - private Sensor memoryLoad; + private readonly Sensor[] temperatures; + private readonly Sensor fan; + private readonly Sensor[] clocks; + private readonly Sensor[] loads; + private readonly Sensor control; + private readonly Sensor memoryLoad; public NvidiaGPU(int adapterIndex, NvPhysicalGpuHandle handle, NvDisplayHandle? displayHandle, ISettings settings) diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Nvidia/NvidiaGroup.cs --- a/Hardware/Nvidia/NvidiaGroup.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Nvidia/NvidiaGroup.cs Tue Sep 21 20:32:36 2010 +0000 @@ -43,8 +43,8 @@ internal class NvidiaGroup : IGroup { - private List hardware = new List(); - private StringBuilder report = new StringBuilder(); + private readonly List hardware = new List(); + private readonly StringBuilder report = new StringBuilder(); public NvidiaGroup(ISettings settings) { if (!NVAPI.IsAvailable) @@ -69,7 +69,7 @@ } else { NvStatus status = NVAPI.NvAPI_EnumPhysicalGPUs(handles, out count); if (status != NvStatus.OK) { - report.AppendLine("Status: " + status.ToString()); + report.AppendLine("Status: " + status); report.AppendLine(); return; } @@ -104,14 +104,12 @@ } report.Append("Number of GPUs: "); - report.AppendLine(count.ToString(CultureInfo.InvariantCulture)); - - for (int i = 0; i < count; i++) { + report.AppendLine(count.ToString(CultureInfo.InvariantCulture)); + + for (int i = 0; i < count; i++) { NvDisplayHandle displayHandle; - if (displayHandles.TryGetValue(handles[i], out displayHandle)) - hardware.Add(new NvidiaGPU(i, handles[i], displayHandle, settings)); - else - hardware.Add(new NvidiaGPU(i, handles[i], null, settings)); + displayHandles.TryGetValue(handles[i], out displayHandle); + hardware.Add(new NvidiaGPU(i, handles[i], displayHandle, settings)); } report.AppendLine(); diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/PInvokeDelegateFactory.cs --- a/Hardware/PInvokeDelegateFactory.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/PInvokeDelegateFactory.cs Tue Sep 21 20:32:36 2010 +0000 @@ -43,19 +43,17 @@ namespace OpenHardwareMonitor.Hardware { - internal sealed class PInvokeDelegateFactory { + internal static class PInvokeDelegateFactory { - private static ModuleBuilder moduleBuilder = + private static readonly ModuleBuilder moduleBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly( new AssemblyName("PInvokeDelegateFactoryInternalAssembly"), AssemblyBuilderAccess.Run).DefineDynamicModule( "PInvokeDelegateFactoryInternalModule"); - private static IDictionary wrapperTypes = + private static readonly IDictionary wrapperTypes = new Dictionary(); - private PInvokeDelegateFactory() { } - public static void CreateDelegate(DllImportAttribute dllImportAttribute, out T newDelegate) where T : class { diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Parameter.cs --- a/Hardware/Parameter.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Parameter.cs Tue Sep 21 20:32:36 2010 +0000 @@ -41,9 +41,9 @@ namespace OpenHardwareMonitor.Hardware { internal struct ParameterDescription { - private string name; - private string description; - private float defaultValue; + private readonly string name; + private readonly string description; + private readonly float defaultValue; public ParameterDescription(string name, string description, float defaultValue) { @@ -60,11 +60,11 @@ } internal class Parameter : IParameter { - private ISensor sensor; + private readonly ISensor sensor; private ParameterDescription description; private float value; private bool isDefault; - private ISettings settings; + private readonly ISettings settings; public Parameter(ParameterDescription description, ISensor sensor, ISettings settings) diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/Sensor.cs --- a/Hardware/Sensor.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/Sensor.cs Tue Sep 21 20:32:36 2010 +0000 @@ -44,22 +44,22 @@ internal class Sensor : ISensor { - private string defaultName; + private readonly string defaultName; private string name; - private int index; - private bool defaultHidden; - private SensorType sensorType; - private IHardware hardware; - private ReadOnlyArray parameters; + private readonly int index; + private readonly bool defaultHidden; + private readonly SensorType sensorType; + private readonly IHardware hardware; + private readonly ReadOnlyArray parameters; private float? currentValue; private float? minValue; private float? maxValue; - private Queue values = + private readonly Queue values = new Queue(MAX_MINUTES * 15); - private ISettings settings; + private readonly ISettings settings; - private float sum = 0; - private int count = 0; + private float sum; + private int count; private const int MAX_MINUTES = 120; diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/SensorVisitor.cs --- a/Hardware/SensorVisitor.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/SensorVisitor.cs Tue Sep 21 20:32:36 2010 +0000 @@ -41,7 +41,7 @@ namespace OpenHardwareMonitor.Hardware { public class SensorVisitor : IVisitor { - private SensorEventHandler handler; + private readonly SensorEventHandler handler; public SensorVisitor(SensorEventHandler handler) { if (handler == null) diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/TBalancer/FTD2XX.cs --- a/Hardware/TBalancer/FTD2XX.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/TBalancer/FTD2XX.cs Tue Sep 21 20:32:36 2010 +0000 @@ -87,7 +87,7 @@ [StructLayout(LayoutKind.Sequential)] internal struct FT_HANDLE { - private uint handle; + private readonly uint handle; } [StructLayout(LayoutKind.Sequential)] @@ -198,7 +198,7 @@ } private static string GetDllName() { - int p = (int)System.Environment.OSVersion.Platform; + int p = (int)Environment.OSVersion.Platform; if ((p == 4) || (p == 128)) return "libftd2xx.so"; else diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/TBalancer/TBalancer.cs --- a/Hardware/TBalancer/TBalancer.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/TBalancer/TBalancer.cs Tue Sep 21 20:32:36 2010 +0000 @@ -43,21 +43,22 @@ namespace OpenHardwareMonitor.Hardware.TBalancer { internal class TBalancer : IHardware { - private ISettings settings; - private int portIndex; + private readonly ISettings settings; + private readonly int portIndex; + private readonly byte protocolVersion; + private readonly Sensor[] digitalTemperatures = new Sensor[8]; + private readonly Sensor[] analogTemperatures = new Sensor[4]; + private readonly Sensor[] sensorhubTemperatures = new Sensor[6]; + private readonly Sensor[] sensorhubFlows = new Sensor[2]; + private readonly Sensor[] fans = new Sensor[4]; + private readonly Sensor[] controls = new Sensor[4]; + private readonly Sensor[] miniNGTemperatures = new Sensor[4]; + private readonly Sensor[] miniNGFans = new Sensor[4]; + private readonly Sensor[] miniNGControls = new Sensor[4]; + private readonly List active = new List(); + private readonly List deactivating = new List(); + private FT_HANDLE handle; - private byte protocolVersion; - private Sensor[] digitalTemperatures = new Sensor[8]; - private Sensor[] analogTemperatures = new Sensor[4]; - private Sensor[] sensorhubTemperatures = new Sensor[6]; - private Sensor[] sensorhubFlows = new Sensor[2]; - private Sensor[] fans = new Sensor[4]; - private Sensor[] controls = new Sensor[4]; - private Sensor[] miniNGTemperatures = new Sensor[4]; - private Sensor[] miniNGFans = new Sensor[4]; - private Sensor[] miniNGControls = new Sensor[4]; - private List active = new List(); - private List deactivating = new List(); private int[] primaryData = new int[0]; private int[] alternativeData = new int[0]; @@ -65,7 +66,7 @@ public const byte ENDFLAG = 254; private delegate void MethodDelegate(); - private MethodDelegate alternativeRequest; + private readonly MethodDelegate alternativeRequest; public TBalancer(int portIndex, byte protocolVersion, ISettings settings) { this.settings = settings; @@ -73,7 +74,7 @@ this.portIndex = portIndex; this.protocolVersion = protocolVersion; - ParameterDescription[] parameter = new ParameterDescription[] { + ParameterDescription[] parameter = new [] { new ParameterDescription("Offset [°C]", "Temperature offset.", 0) }; int offset = 0; @@ -100,7 +101,7 @@ for (int i = 0; i < sensorhubFlows.Length; i++) sensorhubFlows[i] = new Sensor("Flowmeter " + (i + 1), - i, SensorType.Flow, this, new ParameterDescription[] { + i, SensorType.Flow, this, new [] { new ParameterDescription("Impulse Rate", "The impulse rate of the flowmeter in pulses/L", 509) }, settings); @@ -237,8 +238,7 @@ if (fans[i] == null) fans[i] = new Sensor("Fan Channel " + i, i, SensorType.Fan, - this, new ParameterDescription[] { - new ParameterDescription("MaxRPM", + this, new [] { new ParameterDescription("MaxRPM", "Maximum revolutions per minute (RPM) of the fan.", maxRPM) }, settings); diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/TBalancer/TBalancerGroup.cs --- a/Hardware/TBalancer/TBalancerGroup.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/TBalancer/TBalancerGroup.cs Tue Sep 21 20:32:36 2010 +0000 @@ -44,8 +44,8 @@ namespace OpenHardwareMonitor.Hardware.TBalancer { internal class TBalancerGroup : IGroup { - private List hardware = new List(); - private StringBuilder report = new StringBuilder(); + private readonly List hardware = new List(); + private readonly StringBuilder report = new StringBuilder(); public TBalancerGroup(ISettings settings) { @@ -73,8 +73,7 @@ } FT_HANDLE handle; - FT_STATUS status; - status = FTD2XX.FT_Open(i, out handle); + FT_STATUS status = FTD2XX.FT_Open(i, out handle); if (status != FT_STATUS.FT_OK) { report.AppendLine("Open Status: " + status); continue; diff -r fbf22ccd9d6f -r 0ee888c485d5 Hardware/WinRing0.cs --- a/Hardware/WinRing0.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Hardware/WinRing0.cs Tue Sep 21 20:32:36 2010 +0000 @@ -55,11 +55,11 @@ OLS_DLL_UNKNOWN_ERROR = 9 } - private static bool available = false; + private static bool available; private static Mutex isaBusMutex; private static string GetDllName() { - int p = (int)System.Environment.OSVersion.Platform; + int p = (int)Environment.OSVersion.Platform; if ((p == 4) || (p == 128)) { if (IntPtr.Size == 4) { return "libring0.so"; @@ -97,9 +97,9 @@ UIntPtr threadAffinityMask); public delegate bool RdtscDelegate(out uint eax, out uint edx); - private static InitializeOlsDelegate InitializeOls = + private static readonly InitializeOlsDelegate InitializeOls = CreateDelegate("InitializeOls"); - private static DeinitializeOlsDelegate DeinitializeOls = + private static readonly DeinitializeOlsDelegate DeinitializeOls = CreateDelegate("DeinitializeOls"); public static readonly IsCpuidDelegate IsCpuid = diff -r fbf22ccd9d6f -r 0ee888c485d5 Properties/AssemblyLibInfo.cs --- a/Properties/AssemblyLibInfo.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Properties/AssemblyLibInfo.cs Tue Sep 21 20:32:36 2010 +0000 @@ -37,7 +37,6 @@ using System; using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Open Hardware Monitor Library")] diff -r fbf22ccd9d6f -r 0ee888c485d5 Properties/AssemblyVersion.cs --- a/Properties/AssemblyVersion.cs Tue Sep 21 10:33:28 2010 +0000 +++ b/Properties/AssemblyVersion.cs Tue Sep 21 20:32:36 2010 +0000 @@ -35,7 +35,6 @@ */ -using System; using System.Reflection; [assembly: AssemblyVersion("0.1.37.14")]