1.1 --- a/Hardware/Computer.cs Sun Jul 22 18:07:11 2012 +0000
1.2 +++ b/Hardware/Computer.cs Mon Jul 23 21:54:35 2012 +0000
1.3 @@ -22,13 +22,16 @@
1.4 private readonly List<IGroup> groups = new List<IGroup>();
1.5 private readonly ISettings settings;
1.6
1.7 + private SMBIOS smbios;
1.8 +
1.9 private bool open;
1.10
1.11 private bool mainboardEnabled;
1.12 private bool cpuEnabled;
1.13 + private bool ramEnabled;
1.14 private bool gpuEnabled;
1.15 private bool fanControllerEnabled;
1.16 - private bool hddEnabled;
1.17 + private bool hddEnabled;
1.18
1.19 public Computer() {
1.20 this.settings = new Settings();
1.21 @@ -76,15 +79,20 @@
1.22 if (open)
1.23 return;
1.24
1.25 + this.smbios = new SMBIOS();
1.26 +
1.27 Ring0.Open();
1.28 Opcode.Open();
1.29
1.30 if (mainboardEnabled)
1.31 - Add(new Mainboard.MainboardGroup(settings));
1.32 + Add(new Mainboard.MainboardGroup(smbios, settings));
1.33
1.34 if (cpuEnabled)
1.35 Add(new CPU.CPUGroup(settings));
1.36
1.37 + if (ramEnabled)
1.38 + Add(new RAM.RAMGroup(smbios, settings));
1.39 +
1.40 if (gpuEnabled) {
1.41 Add(new ATI.ATIGroup(settings));
1.42 Add(new Nvidia.NvidiaGroup(settings));
1.43 @@ -108,7 +116,7 @@
1.44 set {
1.45 if (open && value != mainboardEnabled) {
1.46 if (value)
1.47 - Add(new Mainboard.MainboardGroup(settings));
1.48 + Add(new Mainboard.MainboardGroup(smbios, settings));
1.49 else
1.50 RemoveType<Mainboard.MainboardGroup>();
1.51 }
1.52 @@ -131,6 +139,21 @@
1.53 }
1.54 }
1.55
1.56 + public bool RAMEnabled {
1.57 + get { return ramEnabled; }
1.58 +
1.59 + [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
1.60 + set {
1.61 + if (open && value != ramEnabled) {
1.62 + if (value)
1.63 + Add(new RAM.RAMGroup(smbios, settings));
1.64 + else
1.65 + RemoveType<RAM.RAMGroup>();
1.66 + }
1.67 + ramEnabled = value;
1.68 + }
1.69 + }
1.70 +
1.71 public bool GPUEnabled {
1.72 get { return gpuEnabled; }
1.73
1.74 @@ -336,6 +359,8 @@
1.75 Opcode.Close();
1.76 Ring0.Close();
1.77
1.78 + this.smbios = null;
1.79 +
1.80 open = false;
1.81 }
1.82