diff -r 898935080fd6 -r 5cb7eb5bf628 Hardware/Nvidia/NvidiaGPU.cs --- a/Hardware/Nvidia/NvidiaGPU.cs Fri Feb 19 19:50:07 2010 +0000 +++ b/Hardware/Nvidia/NvidiaGPU.cs Sat Feb 20 19:51:10 2010 +0000 @@ -50,57 +50,45 @@ private Sensor[] temperatures; private Sensor fan = null; - private bool available; + public NvidiaGPU(int adapterIndex, NvPhysicalGpuHandle handle) { + string gpuName; + if (NVAPI.NvAPI_GPU_GetFullName(handle, out gpuName) == NvStatus.OK) { + this.name = "NVIDIA " + gpuName.Trim(); + } else { + this.name = "NVIDIA"; + } + this.icon = Utilities.EmbeddedResources.GetImage("nvidia.png"); + this.adapterIndex = adapterIndex; + this.handle = handle; - public NvidiaGPU(int adapterIndex, NvPhysicalGpuHandle handle) { - try { - string gpuName; - if (NVAPI.NvAPI_GPU_GetFullName(handle, out gpuName) == NvStatus.OK) { - this.name = "NVIDIA " + gpuName.Trim(); - } else { - this.name = "NVIDIA"; + NvGPUThermalSettings settings = GetThermalSettings(); + temperatures = new Sensor[settings.Count]; + for (int i = 0; i < temperatures.Length; i++) { + NvSensor sensor = settings.Sensor[i]; + string name; + switch (sensor.Target) { + case NvThermalTarget.BOARD: name = "GPU Board"; break; + case NvThermalTarget.GPU: name = "GPU Core"; break; + case NvThermalTarget.MEMORY: name = "GPU Memory"; break; + case NvThermalTarget.POWER_SUPPLY: name = "GPU Power Supply"; break; + case NvThermalTarget.UNKNOWN: name = "GPU Unknown"; break; + default: name = "GPU"; break; } - this.icon = Utilities.EmbeddedResources.GetImage("nvidia.png"); - this.adapterIndex = adapterIndex; - this.handle = handle; + temperatures[i] = new Sensor(name, i, sensor.DefaultMaxTemp, + SensorType.Temperature, this); + ActivateSensor(temperatures[i]); + } - NvGPUThermalSettings settings = GetThermalSettings(); - temperatures = new Sensor[settings.Count]; - for (int i = 0; i < temperatures.Length; i++) { - NvSensor sensor = settings.Sensor[i]; - string name; - switch (sensor.Target) { - case NvThermalTarget.BOARD: name = "GPU Board"; break; - case NvThermalTarget.GPU: name = "GPU Core"; break; - case NvThermalTarget.MEMORY: name = "GPU Memory"; break; - case NvThermalTarget.POWER_SUPPLY: name = "GPU Power Supply"; break; - case NvThermalTarget.UNKNOWN: name = "GPU Unknown"; break; - default: name = "GPU"; break; - } - temperatures[i] = new Sensor(name, i, sensor.DefaultMaxTemp, - SensorType.Temperature, this); - ActivateSensor(temperatures[i]); + int value; + if (NVAPI.NvAPI_GPU_GetTachReading != null && + NVAPI.NvAPI_GPU_GetTachReading(handle, out value) == NvStatus.OK) { + if (value > 0) { + fan = new Sensor("GPU", 0, SensorType.Fan, this); + ActivateSensor(fan); } - - int value; - if (NVAPI.NvAPI_GPU_GetTachReading != null && - NVAPI.NvAPI_GPU_GetTachReading(handle, out value) == NvStatus.OK) { - if (value > 0) { - fan = new Sensor("GPU", 0, SensorType.Fan, this); - ActivateSensor(fan); - } - } - - available = temperatures.Length > 0 || fan != null; - } catch (Exception e) { - System.Windows.Forms.MessageBox.Show(e.Message + "\n" + e.StackTrace); } } - public bool IsAvailable { - get { return available; } - } - public string Name { get { return name; } }