Hardware/Nvidia/NvidiaGPU.cs
changeset 165 813d8bc3192f
parent 140 04a5155c9c1a
child 166 fa9dfbfc4145
     1.1 --- a/Hardware/Nvidia/NvidiaGPU.cs	Thu Aug 05 19:28:50 2010 +0000
     1.2 +++ b/Hardware/Nvidia/NvidiaGPU.cs	Sun Aug 08 13:57:26 2010 +0000
     1.3 @@ -37,14 +37,12 @@
     1.4  
     1.5  using System;
     1.6  using System.Collections.Generic;
     1.7 -using System.Drawing;
     1.8  using System.Text;
     1.9  
    1.10  namespace OpenHardwareMonitor.Hardware.Nvidia {
    1.11 -  public class NvidiaGPU : Hardware, IHardware {
    1.12 +  internal class NvidiaGPU : Hardware, IHardware {
    1.13  
    1.14      private string name;
    1.15 -    private Image icon;
    1.16      private int adapterIndex;
    1.17      private NvPhysicalGpuHandle handle;
    1.18      private NvDisplayHandle? displayHandle;
    1.19 @@ -57,7 +55,7 @@
    1.20      private Sensor memoryLoad;
    1.21  
    1.22      public NvidiaGPU(int adapterIndex, NvPhysicalGpuHandle handle, 
    1.23 -      NvDisplayHandle? displayHandle) 
    1.24 +      NvDisplayHandle? displayHandle, ISettings settings) 
    1.25      {
    1.26        string gpuName;
    1.27        if (NVAPI.NvAPI_GPU_GetFullName(handle, out gpuName) == NvStatus.OK) {
    1.28 @@ -65,15 +63,14 @@
    1.29        } else {
    1.30          this.name = "NVIDIA";
    1.31        }
    1.32 -      this.icon = Utilities.EmbeddedResources.GetImage("nvidia.png");
    1.33        this.adapterIndex = adapterIndex;
    1.34        this.handle = handle;
    1.35        this.displayHandle = displayHandle;
    1.36  
    1.37 -      NvGPUThermalSettings settings = GetThermalSettings();
    1.38 -      temperatures = new Sensor[settings.Count];
    1.39 +      NvGPUThermalSettings thermalSettings = GetThermalSettings();
    1.40 +      temperatures = new Sensor[thermalSettings.Count];
    1.41        for (int i = 0; i < temperatures.Length; i++) {
    1.42 -        NvSensor sensor = settings.Sensor[i];
    1.43 +        NvSensor sensor = thermalSettings.Sensor[i];
    1.44          string name;
    1.45          switch (sensor.Target) {
    1.46            case NvThermalTarget.BOARD: name = "GPU Board"; break;
    1.47 @@ -83,8 +80,8 @@
    1.48            case NvThermalTarget.UNKNOWN: name = "GPU Unknown"; break;
    1.49            default: name = "GPU"; break;
    1.50          }
    1.51 -        temperatures[i] = new Sensor(name, i, SensorType.Temperature, this, 
    1.52 -          new ParameterDescription[0]);
    1.53 +        temperatures[i] = new Sensor(name, i, SensorType.Temperature, this,
    1.54 +          new ParameterDescription[0], settings);
    1.55          ActivateSensor(temperatures[i]);
    1.56        }
    1.57  
    1.58 @@ -92,25 +89,25 @@
    1.59        if (NVAPI.NvAPI_GPU_GetTachReading != null &&
    1.60          NVAPI.NvAPI_GPU_GetTachReading(handle, out value) == NvStatus.OK) {
    1.61          if (value > 0) {
    1.62 -          fan = new Sensor("GPU", 0, SensorType.Fan, this);
    1.63 +          fan = new Sensor("GPU", 0, SensorType.Fan, this, settings);
    1.64            ActivateSensor(fan);
    1.65          }
    1.66        }
    1.67  
    1.68        clocks = new Sensor[3];
    1.69 -      clocks[0] = new Sensor("GPU Core", 0, SensorType.Clock, this);
    1.70 -      clocks[1] = new Sensor("GPU Memory", 1, SensorType.Clock, this);
    1.71 -      clocks[2] = new Sensor("GPU Shader", 2, SensorType.Clock, this);
    1.72 +      clocks[0] = new Sensor("GPU Core", 0, SensorType.Clock, this, settings);
    1.73 +      clocks[1] = new Sensor("GPU Memory", 1, SensorType.Clock, this, settings);
    1.74 +      clocks[2] = new Sensor("GPU Shader", 2, SensorType.Clock, this, settings);
    1.75        for (int i = 0; i < clocks.Length; i++)
    1.76          ActivateSensor(clocks[i]);
    1.77  
    1.78        loads = new Sensor[3];
    1.79 -      loads[0] = new Sensor("GPU Core", 0, SensorType.Load, this);
    1.80 -      loads[1] = new Sensor("GPU Memory Controller", 1, SensorType.Load, this);
    1.81 -      loads[2] = new Sensor("GPU Video Engine", 2, SensorType.Load, this);
    1.82 -      memoryLoad = new Sensor("GPU Memory", 3, SensorType.Load, this);
    1.83 +      loads[0] = new Sensor("GPU Core", 0, SensorType.Load, this, settings);
    1.84 +      loads[1] = new Sensor("GPU Memory Controller", 1, SensorType.Load, this, settings);
    1.85 +      loads[2] = new Sensor("GPU Video Engine", 2, SensorType.Load, this, settings);
    1.86 +      memoryLoad = new Sensor("GPU Memory", 3, SensorType.Load, this, settings);
    1.87  
    1.88 -      control = new Sensor("GPU Fan", 0, SensorType.Control, this);
    1.89 +      control = new Sensor("GPU Fan", 0, SensorType.Control, this, settings);
    1.90      }
    1.91  
    1.92      public override string Name {
    1.93 @@ -121,8 +118,8 @@
    1.94        get { return new Identifier("nvidiagpu", adapterIndex.ToString()); }
    1.95      }
    1.96  
    1.97 -    public override Image Icon {
    1.98 -      get { return icon; }
    1.99 +    public override HardwareType HardwareType {
   1.100 +      get { return HardwareType.GPU; }
   1.101      }
   1.102  
   1.103      private NvGPUThermalSettings GetThermalSettings() {