public static extern int ADL_Overdrive5_Temperature_Get(int adapterIndex, int thermalControllerIndex, ref ADLTemperature temperature);
public override void Update() { ADLTemperature adlt = new ADLTemperature(); if (ADL.ADL_Overdrive5_Temperature_Get(adapterIndex, 0, ref adlt) == ADL.ADL_OK) { temperature.Value = 0.001f * adlt.Temperature; ActivateSensor(temperature); } else { temperature.Value = null; } ADLFanSpeedValue adlf = new ADLFanSpeedValue(); adlf.SpeedType = ADL.ADL_DL_FANCTRL_SPEED_TYPE_RPM; if (ADL.ADL_Overdrive5_FanSpeed_Get(adapterIndex, 0, ref adlf) == ADL.ADL_OK) { fan.Value = adlf.FanSpeed; ActivateSensor(fan); } else { fan.Value = null; } adlf = new ADLFanSpeedValue(); adlf.SpeedType = ADL.ADL_DL_FANCTRL_SPEED_TYPE_PERCENT; if (ADL.ADL_Overdrive5_FanSpeed_Get(adapterIndex, 0, ref adlf) == ADL.ADL_OK) { controlSensor.Value = adlf.FanSpeed; ActivateSensor(controlSensor); } else { controlSensor.Value = null; } ADLPMActivity adlp = new ADLPMActivity(); if (ADL.ADL_Overdrive5_CurrentActivity_Get(adapterIndex, ref adlp) == ADL.ADL_OK) { if (adlp.EngineClock > 0) { coreClock.Value = 0.01f * adlp.EngineClock; ActivateSensor(coreClock); } else { coreClock.Value = null; } if (adlp.MemoryClock > 0) { memoryClock.Value = 0.01f * adlp.MemoryClock; ActivateSensor(memoryClock); } else { memoryClock.Value = null; } if (adlp.Vddc > 0) { coreVoltage.Value = 0.001f * adlp.Vddc; ActivateSensor(coreVoltage); } else { coreVoltage.Value = null; } coreLoad.Value = Math.Min(adlp.ActivityPercent, 100); ActivateSensor(coreLoad); } else { coreClock.Value = null; memoryClock.Value = null; coreVoltage.Value = null; coreLoad.Value = null; } }
[DllImport(LibraryName, EntryPoint = "ADL_Overdrive5_Temperature_Get")] static extern Result Overdrive5TemperatureGet(int a, int b, ref ADLTemperature c);