using System.Runtime.InteropServices;
namespace NvAPIWrapper.Native.GPU.Structures
{
///
/// Hold information regarding delta values and delta ranges for voltages or clock frequencies in their respective unit
/// (uV or kHz)
///
[StructLayout(LayoutKind.Sequential, Pack = 8)]
public struct PerformanceStates20ParameterDelta
{
internal int _DeltaValue;
internal PerformanceState20ParameterDeltaValueRange _DeltaRange;
///
/// Creates a new instance of
///
/// The delta value.
/// The delta range minimum value.
/// The delta range maximum value.
public PerformanceStates20ParameterDelta(int deltaValue, int deltaMinimum, int deltaMaximum)
{
_DeltaValue = deltaValue;
_DeltaRange = new PerformanceState20ParameterDeltaValueRange(deltaMinimum, deltaMaximum);
}
///
/// Creates a new instance of
///
/// The delta value.
public PerformanceStates20ParameterDelta(int deltaValue)
{
_DeltaValue = deltaValue;
_DeltaRange = new PerformanceState20ParameterDeltaValueRange();
}
///
/// Gets the delta value in the respective unit (uV or kHz)
///
public int DeltaValue
{
get => _DeltaValue;
set => _DeltaValue = value;
}
///
/// Gets the range of the valid delta values in the respective unit (uV or kHz)
///
public PerformanceState20ParameterDeltaValueRange DeltaRange
{
get => _DeltaRange;
}
///
/// Holds information regarding a range of values
///
[StructLayout(LayoutKind.Sequential, Pack = 8)]
public struct PerformanceState20ParameterDeltaValueRange
{
internal int _Minimum;
internal int _Maximum;
///
/// Creates a new instance of .
///
/// The minimum value of delta range.
/// The maximum value of delta range.
public PerformanceState20ParameterDeltaValueRange(int minimum, int maximum)
{
_Minimum = minimum;
_Maximum = maximum;
}
///
/// Gets the minimum value
///
public int Minimum
{
get => _Minimum;
}
///
/// Gets the maximum value
///
public int Maximum
{
get => _Maximum;
}
}
}
}