Scalar Timer::gNextFire = std::numeric_limits<Scalar>::max();
-std::map<unsigned,Timer&> Timer::gTimers;
+std::map<unsigned,Timer*> Timer::gTimers;
unsigned Timer::getNewID()
{
mFunction = function;
- if (mode == ABSOLUTEE)
+ if (mode == ACTUAL)
{
mAbsolute = seconds;
}
}
mId = getNewID();
- gTimers.insert(std::pair<unsigned,Timer&>(mId, *this));
+ gTimers.insert(std::pair<unsigned,Timer*>(mId, this));
if (mAbsolute < gNextFire) gNextFire = mAbsolute;
}
Scalar Timer::findNextFire()
{
- std::map<unsigned,Timer&>::iterator it;
+ std::map<unsigned,Timer*>::iterator it;
Scalar nextFire = std::numeric_limits<Scalar>::max();
for (it = gTimers.begin(); it != gTimers.end(); ++it)
{
- Scalar absolute = (*it).second.mAbsolute;
+ Scalar absolute = (*it).second->mAbsolute;
if (absolute < nextFire) nextFire = absolute;
}
void Timer::fireIfExpired(Scalar t)
{
- std::map<unsigned,Timer&>::iterator it;
+ std::map<unsigned,Timer*>::iterator it;
if (gNextFire > t) return;
for (it = gTimers.begin(); it != gTimers.end(); ++it)
{
- Timer& timer = (*it).second;
- if (timer.isExpired()) timer.fire();
+ Timer* timer = (*it).second;
+ if (timer->isExpired()) timer->fire();
}
}
return Scalar(ts.tv_sec - reference) + Scalar(ts.tv_nsec) / 1000000000.0;
}
-void Timer::sleep(Scalar seconds, bool absolute)
+void Timer::sleep(Scalar seconds, Mode mode)
{
struct timespec ts;
int ret;
- if (absolute) seconds -= getTicks();
+ if (mode == ACTUAL) seconds -= getTicks();
ts.tv_sec = time_t(seconds);
ts.tv_nsec = long((seconds - Scalar(ts.tv_sec)) * 1000000000.0);
return Scalar(ms / 1000) + Scalar(ms % 1000) / 1000.0;
}
-void Timer::sleep(Scalar seconds, bool absolute)
+void Timer::sleep(Scalar seconds, Mode mode)
{
- if (absolute) seconds -= getTicks();
+ if (mode == ACTUAL) seconds -= getTicks();
SDL_Delay(Uint32(cml::clamp(int(seconds * 1000.0), 0, 1000)));
}