Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/core
diff options
context:
space:
mode:
Diffstat (limited to 'source/core')
-rw-r--r--source/core/StarTime.cpp13
-rw-r--r--source/core/StarTime.hpp3
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