diff --git a/OpenHardwareMonitor.csproj b/OpenHardwareMonitor.csproj index 7dd5b36..d8bba66 100644 --- a/OpenHardwareMonitor.csproj +++ b/OpenHardwareMonitor.csproj @@ -129,7 +129,7 @@ - + Component diff --git a/WMIProvider/Hardware.cs b/WMIProvider/Hardware.cs index 28f3aa2..246b2e3 100644 --- a/WMIProvider/Hardware.cs +++ b/WMIProvider/Hardware.cs @@ -1,13 +1,54 @@ -using System.Management.Instrumentation; +/* + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" basis, + WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + for the specific language governing rights and limitations under the License. + + The Original Code is the Open Hardware Monitor code. + + The Initial Developer of the Original Code is + Paul Werelds . + Portions created by the Initial Developer are Copyright (C) 2009-2010 + the Initial Developer. All Rights Reserved. + + Contributor(s): + + Alternatively, the contents of this file may be used under the terms of + either the GNU General Public License Version 2 or later (the "GPL"), or + the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + in which case the provisions of the GPL or the LGPL are applicable instead + of those above. If you wish to allow use of your version of this file only + under the terms of either the GPL or the LGPL, and not to allow others to + use your version of this file under the terms of the MPL, indicate your + decision by deleting the provisions above and replace them with the notice + and other provisions required by the GPL or the LGPL. If you do not delete + the provisions above, a recipient may use your version of this file under + the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +using System.Management.Instrumentation; using OpenHardwareMonitor.Hardware; namespace OpenHardwareMonitor.WMIProvider { [InstrumentationClass(InstrumentationType.Instance)] - public class Hardware : IWmiClass { + public class Hardware : IWmiObject { + #region WMI Exposed + public string HardwareType { get; private set; } public string Identifier { get; private set; } public string Name { get; private set; } + #endregion + public Hardware(IHardware hardware) { Name = hardware.Name; Identifier = hardware.Identifier.ToString(); diff --git a/WMIProvider/IWmiClass.cs b/WMIProvider/IWmiClass.cs deleted file mode 100644 index 5118474..0000000 --- a/WMIProvider/IWmiClass.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace OpenHardwareMonitor.WMIProvider { - interface IWmiClass { - string Name { get; } - string Identifier { get; } - - void Update(); - } -} diff --git a/WMIProvider/IWmiObject.cs b/WMIProvider/IWmiObject.cs new file mode 100644 index 0000000..fc9aad5 --- /dev/null +++ b/WMIProvider/IWmiObject.cs @@ -0,0 +1,47 @@ +/* + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" basis, + WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + for the specific language governing rights and limitations under the License. + + The Original Code is the Open Hardware Monitor code. + + The Initial Developer of the Original Code is + Paul Werelds . + Portions created by the Initial Developer are Copyright (C) 2009-2010 + the Initial Developer. All Rights Reserved. + + Contributor(s): + + Alternatively, the contents of this file may be used under the terms of + either the GNU General Public License Version 2 or later (the "GPL"), or + the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + in which case the provisions of the GPL or the LGPL are applicable instead + of those above. If you wish to allow use of your version of this file only + under the terms of either the GPL or the LGPL, and not to allow others to + use your version of this file under the terms of the MPL, indicate your + decision by deleting the provisions above and replace them with the notice + and other provisions required by the GPL or the LGPL. If you do not delete + the provisions above, a recipient may use your version of this file under + the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +namespace OpenHardwareMonitor.WMIProvider { + interface IWmiObject { + // Both of these get exposed to WMI + string Name { get; } + string Identifier { get; } + + // Not exposed. + void Update(); + } +} diff --git a/WMIProvider/Sensor.cs b/WMIProvider/Sensor.cs index d304d74..832d49c 100644 --- a/WMIProvider/Sensor.cs +++ b/WMIProvider/Sensor.cs @@ -1,11 +1,49 @@ +/* + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" basis, + WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + for the specific language governing rights and limitations under the License. + + The Original Code is the Open Hardware Monitor code. + + The Initial Developer of the Original Code is + Paul Werelds . + Portions created by the Initial Developer are Copyright (C) 2009-2010 + the Initial Developer. All Rights Reserved. + + Contributor(s): + + Alternatively, the contents of this file may be used under the terms of + either the GNU General Public License Version 2 or later (the "GPL"), or + the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + in which case the provisions of the GPL or the LGPL are applicable instead + of those above. If you wish to allow use of your version of this file only + under the terms of either the GPL or the LGPL, and not to allow others to + use your version of this file under the terms of the MPL, indicate your + decision by deleting the provisions above and replace them with the notice + and other provisions required by the GPL or the LGPL. If you do not delete + the provisions above, a recipient may use your version of this file under + the terms of any one of the MPL, the GPL or the LGPL. + +*/ + using System.Management.Instrumentation; using OpenHardwareMonitor.Hardware; namespace OpenHardwareMonitor.WMIProvider { [InstrumentationClass(InstrumentationType.Instance)] - public class Sensor : IWmiClass { + public class Sensor : IWmiObject { + private ISensor sensor; - private ISensor _sensor; + #region WMI Exposed public string SensorType { get; private set; } public string Identifier { get; private set; } @@ -16,25 +54,27 @@ namespace OpenHardwareMonitor.WMIProvider { public float Max { get; private set; } public int Index { get; private set; } - public Sensor(ISensor sensor) { - Name = sensor.Name; - Index = sensor.Index; + #endregion - SensorType = sensor.SensorType.ToString(); - Identifier = sensor.Identifier.ToString(); - Parent = sensor.Hardware.Identifier.ToString(); + public Sensor(ISensor data) { + Name = data.Name; + Index = data.Index; - _sensor = sensor; + SensorType = data.SensorType.ToString(); + Identifier = data.Identifier.ToString(); + Parent = data.Hardware.Identifier.ToString(); + + sensor = data; } public void Update() { - Value = (_sensor.Value != null) ? (float)_sensor.Value : 0; + Value = (sensor.Value != null) ? (float)sensor.Value : 0; - if (_sensor.Min != null) - Min = (float)_sensor.Min; + if (sensor.Min != null) + Min = (float)sensor.Min; - if (_sensor.Max != null) - Max = (float)_sensor.Max; + if (sensor.Max != null) + Max = (float)sensor.Max; } } } diff --git a/WMIProvider/WMIProvider.cs b/WMIProvider/WMIProvider.cs index 7a2074f..ec6a7cc 100644 --- a/WMIProvider/WMIProvider.cs +++ b/WMIProvider/WMIProvider.cs @@ -1,3 +1,40 @@ +/* + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" basis, + WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + for the specific language governing rights and limitations under the License. + + The Original Code is the Open Hardware Monitor code. + + The Initial Developer of the Original Code is + Paul Werelds . + Portions created by the Initial Developer are Copyright (C) 2009-2010 + the Initial Developer. All Rights Reserved. + + Contributor(s): + + Alternatively, the contents of this file may be used under the terms of + either the GNU General Public License Version 2 or later (the "GPL"), or + the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + in which case the provisions of the GPL or the LGPL are applicable instead + of those above. If you wish to allow use of your version of this file only + under the terms of either the GPL or the LGPL, and not to allow others to + use your version of this file under the terms of the MPL, indicate your + decision by deleting the provisions above and replace them with the notice + and other provisions required by the GPL or the LGPL. If you do not delete + the provisions above, a recipient may use your version of this file under + the terms of any one of the MPL, the GPL or the LGPL. + +*/ + using System; using System.Collections.Generic; using System.Management.Instrumentation; @@ -9,11 +46,15 @@ using OpenHardwareMonitor.Hardware; public class InstanceInstaller : DefaultManagementProjectInstaller { } namespace OpenHardwareMonitor.WMIProvider { + /// + /// The WMI Provider. + /// This class is not exposed to WMI itself. + /// public class WmiProvider : IDisposable { - private List _activeInstances; + private List _activeInstances; public WmiProvider(IComputer computer) { - _activeInstances = new List(); + _activeInstances = new List(); foreach (IHardware hardware in computer.Hardware) ComputerHardwareAdded(hardware); @@ -23,7 +64,7 @@ namespace OpenHardwareMonitor.WMIProvider { } public void Update() { - foreach (IWmiClass instance in _activeInstances) + foreach (IWmiObject instance in _activeInstances) instance.Update(); } @@ -92,7 +133,7 @@ namespace OpenHardwareMonitor.WMIProvider { #endregion public void Dispose() { - foreach (IWmiClass instance in _activeInstances) + foreach (IWmiObject instance in _activeInstances) Instrumentation.Revoke(instance); _activeInstances = null; }