From 36ad777b8a41f2a6bb9cfe8f17ff6a1e5c6cf272 Mon Sep 17 00:00:00 2001 From: Palana Date: Sun, 19 Jul 2015 03:50:02 +0200 Subject: [PATCH] UI: Add milliseconds to log timestamp when available --- obs/obs-app.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/obs/obs-app.cpp b/obs/obs-app.cpp index febd50101..01d1dbbff 100644 --- a/obs/obs-app.cpp +++ b/obs/obs-app.cpp @@ -18,6 +18,8 @@ #include #include #include +#include +#include #include #include #include @@ -167,11 +169,27 @@ QObject *CreateShortcutFilter() string CurrentTimeString() { - time_t now = time(0); + using namespace std::chrono; + struct tm tstruct; char buf[80]; + + auto tp = system_clock::now(); + auto now = system_clock::to_time_t(tp); tstruct = *localtime(&now); - strftime(buf, sizeof(buf), "%X", &tstruct); + + size_t written = strftime(buf, sizeof(buf), "%X", &tstruct); + if (ratio_less::value && + written && (sizeof(buf) - written) > 5) { + auto tp_secs = + time_point_cast(tp); + auto millis = + duration_cast(tp - tp_secs).count(); + + snprintf(buf + written, sizeof(buf) - written, ".%03u", + static_cast(millis)); + } + return buf; }