diff options
author | Liang Qi <liang.qi@qt.io> | 2017-08-16 17:03:04 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-08-16 17:03:16 +0200 |
commit | b2e6b77c0862aba5d9f9fc979db8f2d84e47a78a (patch) | |
tree | 0e6fbb0f1bdd624f52588022a69ce9bf80447249 /src/plugins/sensors | |
parent | 368b24bfa00a5ef8fe14cd5e4690333675d7704a (diff) | |
parent | 1673dbed00ba68209b6de95981f1e3b4a2a24682 (diff) | |
download | qtsensors-b2e6b77c0862aba5d9f9fc979db8f2d84e47a78a.tar.gz |
Merge remote-tracking branch 'origin/5.9' into devv5.10.0-beta3v5.10.0-beta2v5.10.0-beta1v5.10.0-alpha1
Conflicts:
.qmake.conf
Change-Id: Ib23a0c24c0ec5758dd0799a443c5e43ce7c5f35b
Diffstat (limited to 'src/plugins/sensors')
-rw-r--r-- | src/plugins/sensors/dummy/dummycommon.cpp | 79 |
1 files changed, 2 insertions, 77 deletions
diff --git a/src/plugins/sensors/dummy/dummycommon.cpp b/src/plugins/sensors/dummy/dummycommon.cpp index e2a4a51..4a19b13 100644 --- a/src/plugins/sensors/dummy/dummycommon.cpp +++ b/src/plugins/sensors/dummy/dummycommon.cpp @@ -39,16 +39,7 @@ #include "dummycommon.h" -#ifdef Q_OS_WIN -#include <QtCore/qt_windows.h> -// WINCE has <time.h> but using clock() gives a link error because -// the function isn't actually implemented. -#else -#include <time.h> -#ifdef Q_OS_MAC -#include <mach/mach_time.h> -#endif -#endif +#include <QtCore/qdeadlinetimer.h> dummycommon::dummycommon(QSensor *sensor) : QSensorBackend(sensor) @@ -89,74 +80,8 @@ void dummycommon::timerEvent(QTimerEvent * /*event*/) poll(); } -#ifdef Q_OS_MAC -//taken from qelapsedtimer_mac.cpp -static mach_timebase_info_data_t info = {0,0}; -static qint64 absoluteToNSecs(qint64 cpuTime) -{ - if (info.denom == 0) - mach_timebase_info(&info); - qint64 nsecs = cpuTime * info.numer / info.denom; - return nsecs; -} -#elif defined(Q_OS_WIN) -// Obtain a time stamp from the performance counter, -// default to tick count. -static quint64 windowsTimeStamp() -{ - static bool hasFrequency = false; - static quint64 frequency = 0; - if (!hasFrequency) { - LARGE_INTEGER frequencyLI; - hasFrequency = true; - QueryPerformanceFrequency(&frequencyLI); - frequency = frequencyLI.QuadPart; - } - - if (frequency) { // Microseconds. - LARGE_INTEGER counterLI; - if (QueryPerformanceCounter(&counterLI)) - return 1000000 * counterLI.QuadPart / frequency; - } -#ifndef Q_OS_WINRT - return GetTickCount(); -#else - return GetTickCount64(); -#endif -} -#endif - quint64 dummycommon::getTimestamp() { -#if defined(Q_OS_WIN) - return windowsTimeStamp(); -#elif defined(Q_OS_WINCE) - //d This implementation is based on code found here: - // http://social.msdn.microsoft.com/Forums/en/vssmartdevicesnative/thread/74870c6c-76c5-454c-8533-812cfca585f8 - HANDLE currentThread = GetCurrentThread(); - FILETIME creationTime, exitTime, kernalTime, userTime; - GetThreadTimes(currentThread, &creationTime, &exitTime, &kernalTime, &userTime); - - ULARGE_INTEGER uli; - uli.LowPart = userTime.dwLowDateTime; - uli.HighPart = userTime.dwHighDateTime; - ULONGLONG systemTimeInMS = uli.QuadPart/10000; - return static_cast<quint64>(systemTimeInMS); -#elif defined(Q_OS_MAC) - uint64_t cpu_time = mach_absolute_time(); - uint64_t nsecs = absoluteToNSecs(cpu_time); - - quint64 result = (nsecs * 0.001); //scale to microseconds - return result; -#else - struct timespec tv; - int ok; - ok = clock_gettime(CLOCK_MONOTONIC, &tv); - Q_ASSERT(ok == 0); - Q_UNUSED(ok); - - quint64 result = (tv.tv_sec * 1000000ULL) + (tv.tv_nsec * 0.001); // scale to microseconds - return result; -#endif + return QDeadlineTimer::current().deadlineNSecs() / 1000; } |