Added basic Nvidia NVML library support and power usage sensor (#60)
* Added basic Nvidia NVML library support and power usage sensor * Added basic Nvidia NVML library support and power usage sensor * Added Initialised check * Made NvmlDevice internal * Code formatting * Move NvmlDevice and NvmlReturn to separate files * Move code from NvidiaNVMLGPU class to NvidiaGPU class * Replace call to SetDllDirectory with LoadLibrary/FreeLibrary and code formatting changes * Made native methods private * Fixed p/invoke definitions, removed unnecessary try/catch blocks. Code style cleanup
This commit is contained in:
@@ -15,9 +15,9 @@ using System.Text;
|
||||
namespace OpenHardwareMonitor.Hardware.Nvidia {
|
||||
|
||||
internal class NvidiaGroup : IGroup {
|
||||
|
||||
private readonly List<Hardware> hardware = new List<Hardware>();
|
||||
private readonly StringBuilder report = new StringBuilder();
|
||||
private readonly NVML nvml = new NVML();
|
||||
|
||||
public NvidiaGroup(ISettings settings) {
|
||||
if (!NVAPI.IsAvailable)
|
||||
@@ -82,7 +82,7 @@ namespace OpenHardwareMonitor.Hardware.Nvidia {
|
||||
for (int i = 0; i < count; i++) {
|
||||
NvDisplayHandle displayHandle;
|
||||
displayHandles.TryGetValue(handles[i], out displayHandle);
|
||||
hardware.Add(new NvidiaGPU(i, handles[i], displayHandle, settings));
|
||||
hardware.Add(new NvidiaGPU(i, handles[i], displayHandle, settings, nvml));
|
||||
}
|
||||
|
||||
report.AppendLine();
|
||||
@@ -96,7 +96,9 @@ namespace OpenHardwareMonitor.Hardware.Nvidia {
|
||||
|
||||
public void Close() {
|
||||
foreach (Hardware gpu in hardware)
|
||||
gpu.Close();
|
||||
gpu.Close();
|
||||
|
||||
nvml.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user