diff options
Diffstat (limited to 'source/core')
-rw-r--r-- | source/core/StarTime.cpp | 13 | ||||
-rw-r--r-- | source/core/StarTime.hpp | 3 |
2 files changed, 16 insertions, 0 deletions
diff --git a/source/core/StarTime.cpp b/source/core/StarTime.cpp index abb6aae..622ea50 100644 --- a/source/core/StarTime.cpp +++ b/source/core/StarTime.cpp @@ -20,6 +20,10 @@ int64_t Time::monotonicMilliseconds() { return ticksToMilliseconds(monotonicTicks(), monotonicTickFrequency()); } +int64_t Time::monotonicMicroseconds() { + return ticksToMicroseconds(monotonicTicks(), monotonicTickFrequency()); +} + String Time::printDuration(double time) { String hours; String minutes; @@ -58,6 +62,11 @@ int64_t Time::ticksToMilliseconds(int64_t ticks, int64_t tickFrequency) { return (ticks + ticksPerMs / 2) / ticksPerMs; } +int64_t Time::ticksToMicroseconds(int64_t ticks, int64_t tickFrequency) { + int64_t ticksPerUs = (tickFrequency + 500000) / 1000000; + return (ticks + ticksPerUs / 2) / ticksPerUs; +} + int64_t Time::secondsToTicks(double seconds, int64_t tickFrequency) { return round(seconds * tickFrequency); } @@ -66,6 +75,10 @@ int64_t Time::millisecondsToTicks(int64_t milliseconds, int64_t tickFrequency) { return milliseconds * ((tickFrequency + 500) / 1000); } +int64_t Time::microsecondsToTicks(int64_t microseconds, int64_t tickFrequency) { + return microseconds * ((tickFrequency + 500000) / 1000000); +} + Clock::Clock(bool start) { m_elapsedTicks = 0; m_running = false; diff --git a/source/core/StarTime.hpp b/source/core/StarTime.hpp index a071df5..0905a5d 100644 --- a/source/core/StarTime.hpp +++ b/source/core/StarTime.hpp @@ -14,6 +14,7 @@ namespace Time { double monotonicTime(); int64_t monotonicMilliseconds(); + int64_t monotonicMicroseconds(); // Pretty print a duration of time (In days, hours, minutes, seconds, and milliseconds) String printDuration(double time); @@ -34,8 +35,10 @@ namespace Time { double ticksToSeconds(int64_t ticks, int64_t tickFrequency); int64_t ticksToMilliseconds(int64_t ticks, int64_t tickFrequency); + int64_t ticksToMicroseconds(int64_t ticks, int64_t tickFrequency); int64_t secondsToTicks(double seconds, int64_t tickFrequency); int64_t millisecondsToTicks(int64_t milliseconds, int64_t tickFrequency); + int64_t microsecondsToTicks(int64_t microseconds, int64_t tickFrequency); } // Keeps track of elapsed real time since a given moment. Guaranteed |