using NvAPIWrapper.Native.GPU;
using NvAPIWrapper.Native.GPU.Structures;
namespace NvAPIWrapper.GPU
{
///
/// Holds information regarding a currently active temperature limit policy
///
public class GPUThermalLimitPolicy
{
internal GPUThermalLimitPolicy(PrivateThermalPoliciesStatusV2.ThermalPoliciesStatusEntry thermalPoliciesEntry)
{
Controller = thermalPoliciesEntry.Controller;
PerformanceStateId = thermalPoliciesEntry.PerformanceStateId;
TargetTemperature = thermalPoliciesEntry.TargetTemperature;
}
///
/// Gets the policy's thermal controller
///
public ThermalController Controller { get; }
///
/// Gets the corresponding performance state identification
///
public PerformanceStateId PerformanceStateId { get; }
///
/// Gets the current policy target temperature in degree Celsius
///
public int TargetTemperature { get; }
///
public override string ToString()
{
return
$"{PerformanceStateId} [{Controller}] Target: {TargetTemperature}°C";
}
}
}