diff options
author | Bradley T. Hughes <bradley.hughes@nokia.com> | 2011-12-21 11:33:56 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-02 10:44:00 +0100 |
commit | 6fc9820d2a3f349f04a2ea9c39261de0168d2331 (patch) | |
tree | cd07d4f662aee0af771481301a54ab5ea7068b15 /src/corelib/kernel/qtimerinfo_unix.cpp | |
parent | 2bbf9befd8879dcfca9f48ac9ac13daf40f48847 (diff) |
Change QTimerInfo (UNIX) to keep the interval in milliseconds.
The API passes the interval as an int, there's no reason to convert
it to a timeval struct. This also prepares for changing the UNIX
timer code to support the different timer types.
Author: Thiago Macieira <thiago.macieira@nokia.com>
Change-Id: Ie3cc1ae8f1be6a9ad3f1766051642cbf3e614418
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/kernel/qtimerinfo_unix.cpp')
-rw-r--r-- | src/corelib/kernel/qtimerinfo_unix.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/corelib/kernel/qtimerinfo_unix.cpp b/src/corelib/kernel/qtimerinfo_unix.cpp index 8a0c6c5ac2..568f789700 100644 --- a/src/corelib/kernel/qtimerinfo_unix.cpp +++ b/src/corelib/kernel/qtimerinfo_unix.cpp @@ -185,6 +185,19 @@ void QTimerInfoList::timerRepair(const timeval &diff) } } +inline timeval &operator+=(timeval &t1, int ms) +{ + t1.tv_sec += ms / 1000; + t1.tv_usec += ms % 1000 * 1000; + return normalizedTimeval(t1); +} + +inline timeval operator+(const timeval &t1, int ms) +{ + timeval t2 = t1; + return t2 += ms; +} + static timeval roundToMillisecond(timeval val) { // always round up @@ -232,9 +245,8 @@ void QTimerInfoList::registerTimer(int timerId, int interval, Qt::TimerType time { QTimerInfo *t = new QTimerInfo; t->id = timerId; + t->interval = interval; t->timerType = timerType; - t->interval.tv_sec = interval / 1000; - t->interval.tv_usec = (interval % 1000) * 1000; t->timeout = updateCurrentTime() + t->interval; t->obj = object; t->activateRef = 0; @@ -299,7 +311,7 @@ QList<QAbstractEventDispatcher::TimerInfo> QTimerInfoList::registeredTimers(QObj for (int i = 0; i < count(); ++i) { register const QTimerInfo * const t = at(i); if (t->obj == object) - list << QAbstractEventDispatcher::TimerInfo(t->id, t->interval.tv_sec * 1000 + t->interval.tv_usec / 1000, t->timerType); + list << QAbstractEventDispatcher::TimerInfo(t->id, t->interval, t->timerType); } return list; } @@ -355,7 +367,7 @@ int QTimerInfoList::activateTimers() // reinsert timer timerInsert(currentTimerInfo); - if (currentTimerInfo->interval.tv_usec > 0 || currentTimerInfo->interval.tv_sec > 0) + if (currentTimerInfo->interval > 0) n_act++; if (!currentTimerInfo->activateRef) { |