1.1 --- a/Hardware/Computer.cs Sat Feb 27 15:55:17 2010 +0000
1.2 +++ b/Hardware/Computer.cs Sat Feb 27 20:08:13 2010 +0000
1.3 @@ -61,7 +61,7 @@
1.4 groups.Add(group);
1.5
1.6 if (HardwareAdded != null)
1.7 - foreach (IHardware hardware in group.Hardware)
1.8 + foreach (IHardware hardware in group.Hardware)
1.9 HardwareAdded(hardware);
1.10 }
1.11
1.12 @@ -72,7 +72,7 @@
1.13 groups.Remove(group);
1.14
1.15 if (HardwareRemoved != null)
1.16 - foreach (IHardware hardware in group.Hardware)
1.17 + foreach (IHardware hardware in group.Hardware)
1.18 HardwareRemoved(hardware);
1.19 }
1.20
1.21 @@ -80,8 +80,7 @@
1.22 if (open)
1.23 return;
1.24
1.25 - Add(new SMBIOS.SMBIOSGroup());
1.26 - Add(new LPC.LPCGroup());
1.27 + Add(new Mainboard.MainboardGroup());
1.28 Add(new CPU.CPUGroup());
1.29 Add(new ATI.ATIGroup());
1.30 Add(new Nvidia.NvidiaGroup());
1.31 @@ -93,10 +92,19 @@
1.32 open = true;
1.33 }
1.34
1.35 + private void SubHardwareUpdate(IHardware hardware) {
1.36 + foreach (IHardware subHardware in hardware.SubHardware) {
1.37 + subHardware.Update();
1.38 + SubHardwareUpdate(subHardware);
1.39 + }
1.40 + }
1.41 +
1.42 public void Update() {
1.43 foreach (IGroup group in groups)
1.44 - foreach (IHardware hardware in group.Hardware)
1.45 + foreach (IHardware hardware in group.Hardware) {
1.46 hardware.Update();
1.47 + SubHardwareUpdate(hardware);
1.48 + }
1.49 }
1.50
1.51 public bool HDDEnabled {
1.52 @@ -131,6 +139,38 @@
1.53 writer.WriteLine();
1.54 }
1.55
1.56 + private void ReportHardwareTree(IHardware hardware, TextWriter w,
1.57 + string space)
1.58 + {
1.59 + w.WriteLine("{0}|", space);
1.60 + w.WriteLine("{0}+-+ {1} ({2})",
1.61 + space, hardware.Name, hardware.Identifier);
1.62 + foreach (ISensor sensor in hardware.Sensors) {
1.63 + w.WriteLine("{0}| +- {1} : {2} : {3} : {4}",
1.64 + space, sensor.SensorType, sensor.Index, sensor.Name,
1.65 + string.Format(CultureInfo.InvariantCulture, "{0} : {1} : {2}",
1.66 + sensor.Value, sensor.Min, sensor.Max));
1.67 + foreach (IParameter parameter in sensor.Parameters) {
1.68 + w.WriteLine("{0}| +- {1} : {2} : {3}",
1.69 + space, parameter.Name, parameter.IsDefault,
1.70 + string.Format(CultureInfo.InvariantCulture, "{0} : {1}",
1.71 + parameter.DefaultValue, parameter.Value));
1.72 + }
1.73 + }
1.74 + foreach (IHardware subHardware in hardware.SubHardware)
1.75 + ReportHardwareTree(subHardware, w, "| ");
1.76 + }
1.77 +
1.78 + private void ReportHardware(IHardware hardware, TextWriter w) {
1.79 + string hardwareReport = hardware.GetReport();
1.80 + if (hardwareReport != null && hardwareReport != "") {
1.81 + NewSection(w);
1.82 + w.Write(hardwareReport);
1.83 + }
1.84 + foreach (IHardware subHardware in hardware.SubHardware)
1.85 + ReportHardware(subHardware, w);
1.86 + }
1.87 +
1.88 public void SaveReport(Version version) {
1.89
1.90 using (TextWriter w =
1.91 @@ -146,23 +186,8 @@
1.92
1.93 NewSection(w);
1.94 foreach (IGroup group in groups) {
1.95 - foreach (IHardware hardware in group.Hardware) {
1.96 - w.WriteLine("|");
1.97 - w.WriteLine("+-+ {0} ({1})",
1.98 - new object[] { hardware.Name, hardware.Identifier });
1.99 - foreach (ISensor sensor in hardware.Sensors) {
1.100 - w.WriteLine("| +- {0} : {1} : {2} : {3}",
1.101 - sensor.SensorType, sensor.Index, sensor.Name,
1.102 - string.Format(CultureInfo.InvariantCulture, "{0} : {1} : {2}",
1.103 - sensor.Value, sensor.Min, sensor.Max) );
1.104 - foreach (IParameter parameter in sensor.Parameters) {
1.105 - w.WriteLine("| +- {0} : {1} : {2}",
1.106 - parameter.Name, parameter.IsDefault,
1.107 - string.Format(CultureInfo.InvariantCulture, "{0} : {1}",
1.108 - parameter.DefaultValue, parameter.Value) );
1.109 - }
1.110 - }
1.111 - }
1.112 + foreach (IHardware hardware in group.Hardware)
1.113 + ReportHardwareTree(hardware, w, "");
1.114 }
1.115 w.WriteLine();
1.116
1.117 @@ -174,13 +199,9 @@
1.118 }
1.119
1.120 IHardware[] hardwareArray = group.Hardware;
1.121 - foreach (IHardware hardware in hardwareArray) {
1.122 - string hardwareReport = hardware.GetReport();
1.123 - if (hardwareReport != null && hardwareReport != "") {
1.124 - NewSection(w);
1.125 - w.Write(hardwareReport);
1.126 - }
1.127 - }
1.128 + foreach (IHardware hardware in hardwareArray)
1.129 + ReportHardware(hardware, w);
1.130 +
1.131 }
1.132 }
1.133 }
1.134 @@ -199,7 +220,5 @@
1.135 public event HardwareEventHandler HardwareAdded;
1.136 public event HardwareEventHandler HardwareRemoved;
1.137
1.138 -
1.139 -
1.140 }
1.141 }