Added mainboard specific configurations for the following Gigabyte mainboards: EX58-UD3R, G41M-Combo, G41MT-S2, G41MT-S2P, GA-MA770T-UD3P, GA-MA785GM-US2H, GA-MA78LM-S2H, GA-MA790X-UD3P, H55-USB3, H55N-USB3, H61M-DS2 REV 1.2, H61M-USB3-B3 REV 2.0, H67A-USB3-B3, P55A-UD3, P67A-UD3-B3, P67A-UD3R-B3, Z68A-D3H-B3, Z68AP-D3, Z68X-UD3H-B3.
3 This Source Code Form is subject to the terms of the Mozilla Public
4 License, v. 2.0. If a copy of the MPL was not distributed with this
5 file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 Copyright (C) 2009-2011 Michael Möller <mmoeller@openhardwaremonitor.org>
12 using OpenHardwareMonitor.Collections;
14 namespace OpenHardwareMonitor.Hardware {
15 internal abstract class Hardware : IHardware {
17 private readonly Identifier identifier;
18 protected readonly string name;
19 private string customName;
20 protected readonly ISettings settings;
21 protected readonly ListSet<ISensor> active = new ListSet<ISensor>();
23 public Hardware(string name, Identifier identifier, ISettings settings) {
24 this.settings = settings;
25 this.identifier = identifier;
27 this.customName = settings.GetValue(
28 new Identifier(Identifier, "name").ToString(), name);
31 public IHardware[] SubHardware {
32 get { return new IHardware[0]; }
35 public virtual IHardware Parent {
39 public virtual ISensor[] Sensors {
40 get { return active.ToArray(); }
43 protected virtual void ActivateSensor(ISensor sensor) {
44 if (active.Add(sensor))
45 if (SensorAdded != null)
49 protected virtual void DeactivateSensor(ISensor sensor) {
50 if (active.Remove(sensor))
51 if (SensorRemoved != null)
52 SensorRemoved(sensor);
60 if (!string.IsNullOrEmpty(value))
64 settings.SetValue(new Identifier(Identifier, "name").ToString(),
69 public Identifier Identifier {
75 #pragma warning disable 67
76 public event SensorEventHandler SensorAdded;
77 public event SensorEventHandler SensorRemoved;
78 #pragma warning restore 67
81 public abstract HardwareType HardwareType { get; }
83 public virtual string GetReport() {
87 public abstract void Update();
89 public event HardwareEventHandler Closing;
91 public virtual void Close() {
96 public void Accept(IVisitor visitor) {
98 throw new ArgumentNullException("visitor");
99 visitor.VisitHardware(this);
102 public virtual void Traverse(IVisitor visitor) {
103 foreach (ISensor sensor in active)
104 sensor.Accept(visitor);