using NvAPIWrapper.Native.Exceptions; using NvAPIWrapper.Native.General; using NvAPIWrapper.Native.GPU; using NvAPIWrapper.Native.GPU.Structures; using NvAPIWrapper.Native.Helpers; using NvAPIWrapper.Native.Helpers.Structures; namespace NvAPIWrapper.Native { public static partial class GPUApi { /// /// Gets the control information about illumination devices on the given GPU. /// /// The physical GPU handle. /// An instance of . public static IlluminationDeviceControlParametersV1 ClientIlluminationDevicesGetControl( PhysicalGPUHandle gpuHandle) { var instance = typeof(IlluminationDeviceControlParametersV1) .Instantiate(); using (var deviceControlParametersReference = ValueTypeReference.FromValueType(instance)) { var status = DelegateFactory.GetDelegate()( gpuHandle, deviceControlParametersReference ); if (status != Status.Ok) { throw new NVIDIAApiException(status); } return deviceControlParametersReference.ToValueType() .GetValueOrDefault(); } } /// /// Returns static information about illumination devices on the given GPU. /// /// The physical GPU handle. /// An instance of . public static IlluminationDeviceInfoParametersV1 ClientIlluminationDevicesGetInfo(PhysicalGPUHandle gpuHandle) { var instance = typeof(IlluminationDeviceInfoParametersV1).Instantiate(); using (var deviceInfoParametersReference = ValueTypeReference.FromValueType(instance)) { var status = DelegateFactory.GetDelegate()( gpuHandle, deviceInfoParametersReference ); if (status != Status.Ok) { throw new NVIDIAApiException(status); } return deviceInfoParametersReference.ToValueType() .GetValueOrDefault(); } } /// /// Sets the control information about illumination devices on the given GPU. /// /// The physical GPU handle. /// The new control illumination devices control information. public static void ClientIlluminationDevicesSetControl( PhysicalGPUHandle gpuHandle, IlluminationDeviceControlParametersV1 deviceControlParameters) { using (var deviceControlParametersReference = ValueTypeReference.FromValueType(deviceControlParameters)) { var status = DelegateFactory.GetDelegate()( gpuHandle, deviceControlParametersReference ); if (status != Status.Ok) { throw new NVIDIAApiException(status); } } } /// /// Gets the control information about illumination zones on the given GPU. /// /// The physical GPU handle. /// The type of settings to retrieve. /// An instance of . public static IlluminationZoneControlParametersV1 ClientIlluminationZonesGetControl( PhysicalGPUHandle gpuHandle, IlluminationZoneControlValuesType valuesType) { var instance = new IlluminationZoneControlParametersV1(valuesType); using (var zoneControlParametersReference = ValueTypeReference.FromValueType(instance)) { var status = DelegateFactory.GetDelegate()( gpuHandle, zoneControlParametersReference ); if (status != Status.Ok) { throw new NVIDIAApiException(status); } return zoneControlParametersReference.ToValueType() .GetValueOrDefault(); } } /// /// Returns static information about illumination zones on the given GPU. /// /// The physical GPU handle. /// An instance of . public static IlluminationZoneInfoParametersV1 ClientIlluminationZonesGetInfo(PhysicalGPUHandle gpuHandle) { var instance = typeof(IlluminationZoneInfoParametersV1).Instantiate(); using (var zoneInfoParametersReference = ValueTypeReference.FromValueType(instance)) { var status = DelegateFactory.GetDelegate()( gpuHandle, zoneInfoParametersReference ); if (status != Status.Ok) { throw new NVIDIAApiException(status); } return zoneInfoParametersReference.ToValueType().GetValueOrDefault(); } } /// /// Sets the control information about illumination zones on the given GPU. /// /// The physical GPU handle. /// The new control illumination zones control information. public static void ClientIlluminationZonesSetControl( PhysicalGPUHandle gpuHandle, IlluminationZoneControlParametersV1 zoneControlParameters) { using (var zoneControlParametersReference = ValueTypeReference.FromValueType(zoneControlParameters)) { var status = DelegateFactory.GetDelegate()( gpuHandle, zoneControlParametersReference ); if (status != Status.Ok) { throw new NVIDIAApiException(status); } } } /// /// Reports value of the specified illumination attribute brightness. /// /// The physical GPU handle. /// The attribute to get the value of. /// Brightness value in percentage. public static uint GetIllumination(PhysicalGPUHandle gpuHandle, IlluminationAttribute attribute) { var instance = new GetIlluminationParameterV1(gpuHandle, attribute); using (var getParameterReference = ValueTypeReference.FromValueType(instance)) { var status = DelegateFactory.GetDelegate()( getParameterReference ); if (status != Status.Ok) { throw new NVIDIAApiException(status); } return getParameterReference.ToValueType() .GetValueOrDefault() .ValueInPercentage; } } /// /// Queries a illumination attribute support status. /// /// The physical GPU handle. /// The attribute to get the support status of. /// true if the attribute is supported on this GPU; otherwise false. public static bool QueryIlluminationSupport(PhysicalGPUHandle gpuHandle, IlluminationAttribute attribute) { var instance = new QueryIlluminationSupportParameterV1(gpuHandle, attribute); using (var querySupportParameterReference = ValueTypeReference.FromValueType(instance)) { var status = DelegateFactory.GetDelegate()( querySupportParameterReference ); if (status != Status.Ok) { throw new NVIDIAApiException(status); } return querySupportParameterReference.ToValueType() .GetValueOrDefault() .IsSupported; } } /// /// Sets the value of the specified illumination attribute brightness. /// /// The physical GPU handle. /// The attribute to set the value of. /// Brightness value in percentage. public static void SetIllumination( PhysicalGPUHandle gpuHandle, IlluminationAttribute attribute, uint valueInPercentage) { var instance = new SetIlluminationParameterV1(gpuHandle, attribute, valueInPercentage); using (var setParameterReference = ValueTypeReference.FromValueType(instance)) { var status = DelegateFactory.GetDelegate()( setParameterReference ); if (status != Status.Ok) { throw new NVIDIAApiException(status); } } } } }