system/Clock: GetProcessUptimeS() returns std::chrono::duration

This commit is contained in:
Max Kellermann 2019-05-08 15:42:47 +02:00
parent 214ddee2f5
commit 96f889276f
3 changed files with 14 additions and 10 deletions

View File

@ -114,13 +114,15 @@ db_stats_print(Response &r, const Database &db)
void void
stats_print(Response &r, const Partition &partition) stats_print(Response &r, const Partition &partition)
{ {
#ifdef _WIN32
const auto uptime = GetProcessUptimeS();
#else
const auto uptime = std::chrono::steady_clock::now() - start_time;
#endif
r.Format("uptime: %u\n" r.Format("uptime: %u\n"
"playtime: %lu\n", "playtime: %lu\n",
#ifdef _WIN32 (unsigned)std::chrono::duration_cast<std::chrono::seconds>(uptime).count(),
GetProcessUptimeS(),
#else
(unsigned)std::chrono::duration_cast<std::chrono::seconds>(std::chrono::steady_clock::now() - start_time).count(),
#endif
std::lround(partition.pc.GetTotalPlayTime().count())); std::lround(partition.pc.GetTotalPlayTime().count()));
#ifdef ENABLE_DATABASE #ifdef ENABLE_DATABASE

View File

@ -23,7 +23,7 @@
#include <windows.h> #include <windows.h>
gcc_const gcc_const
static unsigned static std::chrono::seconds
DeltaFileTimeS(FILETIME a, FILETIME b) DeltaFileTimeS(FILETIME a, FILETIME b)
{ {
ULARGE_INTEGER a2, b2; ULARGE_INTEGER a2, b2;
@ -31,10 +31,10 @@ DeltaFileTimeS(FILETIME a, FILETIME b)
b2.HighPart = b.dwHighDateTime; b2.HighPart = b.dwHighDateTime;
a2.LowPart = a.dwLowDateTime; a2.LowPart = a.dwLowDateTime;
a2.HighPart = a.dwHighDateTime; a2.HighPart = a.dwHighDateTime;
return (a2.QuadPart - b2.QuadPart) / 10000000; return std::chrono::seconds((a2.QuadPart - b2.QuadPart) / 10000000);
} }
unsigned std::chrono::seconds
GetProcessUptimeS() GetProcessUptimeS()
{ {
FILETIME creation_time, exit_time, kernel_time, user_time, now; FILETIME creation_time, exit_time, kernel_time, user_time, now;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2003-2018 The Music Player Daemon Project * Copyright 2003-2019 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -22,13 +22,15 @@
#include "util/Compiler.h" #include "util/Compiler.h"
#include <chrono>
#ifdef _WIN32 #ifdef _WIN32
/** /**
* Returns the uptime of the current process in seconds. * Returns the uptime of the current process in seconds.
*/ */
gcc_pure gcc_pure
unsigned std::chrono::seconds
GetProcessUptimeS(); GetProcessUptimeS();
#endif #endif