togglewolf

ADL SDK doesn't give me the correct values

Discussion created by togglewolf on Jul 27, 2011

Hello Folks,

recently i found the ADL and i successfully could use it ;-)
My problem is, the returnvalues are strange.

Sometimes i'll get the correct values, sometimes not.

i tested it on 2 different computers.
Any hints?
ADL_OK returns after each call. whats my problem here?

i always call with ADL_SOMEAPI_CALL(1,1, &var) usually.
first 1 => first adapter, 2nd 1 => Sensors, Monitors ect.....

the return values are 0 or -1^6...?

 

here some code:

 

// part of the class i made: // types: ADLODPerformanceLevels clocks; ADLTemperature temp; ADLFanSpeedValue fanspeed; // funcs: int ATI_display_helper::getClockSpeed() { setCoreAndMemClock(); return clocks.aLevels->iEngineClock; }; int ATI_display_helper::getFanSpeed() { if(ADL_Overdrive5_FanSpeed_Get(1, 1, &fanspeed) == ADL_OK) return fanspeed.iFanSpeed; else return -10; }; int ATI_display_helper::getMemSpeed() { setCoreAndMemClock(); return clocks.aLevels->iMemoryClock; }; int ATI_display_helper::getTemperature() { if(ADL_Overdrive5_Temperature_Get(1, 1, &temp) == ADL_OK) return temp.iSize; else return -10; }; void ATI_display_helper::setCoreAndMemClock() { ADL_Overdrive5_ODPerformanceLevels_Get(1, 1, &clocks); }; // calls in main: ATI_display_helper *x = new ATI_display_helper(0); int y = 1; // (bedingung) ? wert_falls_bedingung_wahr : wert_falls_bedingung_falsch; do { cout << "Clock: " << float(x->getClockSpeed() / 1000) << "\nFan: " << float(x->getFanSpeed() / 1000) << "\nMem: " << float(x->getMemSpeed() / 1000) << "\nTemp: " << float(x->getTemperature() / 1000); Sleep(500); system("cls"); } while(true);

Outcomes