Added Screen Toggle feature for M3 button

This commit is contained in:
Serge
2023-05-01 15:12:08 +02:00
parent 3173c2e688
commit e810adb358
14 changed files with 388 additions and 79 deletions

View File

@@ -4,12 +4,15 @@ using AmdAdl2;
namespace GHelper.Gpu;
// Reference: https://github.com/GPUOpen-LibrariesAndSDKs/display-library/blob/master/Sample-Managed/Program.cs
public class AmdGpuTemperatureProvider : IGpuTemperatureProvider {
public class AmdGpuControl : IGpuControl {
private bool _isReady;
private IntPtr _adlContextHandle;
private readonly ADLAdapterInfo _internalDiscreteAdapter;
public AmdGpuTemperatureProvider() {
public bool IsNvidia => false;
public AmdGpuControl() {
if (!Adl2.Load())
return;
@@ -104,7 +107,7 @@ public class AmdGpuTemperatureProvider : IGpuTemperatureProvider {
GC.SuppressFinalize(this);
}
~AmdGpuTemperatureProvider() {
~AmdGpuControl() {
ReleaseUnmanagedResources();
}
}

View File

@@ -1,6 +1,7 @@
namespace GHelper.Gpu;
public interface IGpuTemperatureProvider : IDisposable {
public interface IGpuControl : IDisposable {
bool IsNvidia { get; }
bool IsValid { get; }
int? GetCurrentTemperature();
int? GetGpuUse();

View File

@@ -5,17 +5,19 @@ using NvAPIWrapper.Native.Interfaces.GPU;
namespace GHelper.Gpu;
public class NvidiaGpuTemperatureProvider : IGpuTemperatureProvider
public class NvidiaGpuControl : IGpuControl
{
private readonly PhysicalGPU? _internalGpu;
public NvidiaGpuTemperatureProvider()
public NvidiaGpuControl()
{
_internalGpu = GetInternalDiscreteGpu();
}
public bool IsValid => _internalGpu != null;
public bool IsNvidia => IsValid;
public int? GetCurrentTemperature()
{
if (!IsValid)