summaryrefslogtreecommitdiffstats
path: root/xbmc/addons/kodi-addon-dev-kit/include/kodi/tools/Time.h
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/addons/kodi-addon-dev-kit/include/kodi/tools/Time.h')
-rw-r--r--xbmc/addons/kodi-addon-dev-kit/include/kodi/tools/Time.h91
1 files changed, 0 insertions, 91 deletions
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/tools/Time.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/tools/Time.h
deleted file mode 100644
index 31c29fd..0000000
--- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/tools/Time.h
+++ /dev/null
@@ -1,91 +0,0 @@
1#pragma once
2/*
3 * Copyright (C) 2005-2019 Team Kodi
4 * Copyright (C) 2011-2012 Pulse-Eight Limited.
5 * This file is part of Kodi - https://kodi.tv
6 *
7 * SPDX-License-Identifier: GPL-2.0-or-later
8 * See LICENSES/README.md for more information.
9 */
10
11#if defined(TARGET_DARWIN)
12#include <mach/mach_time.h>
13#include <CoreVideo/CVHostTime.h>
14#elif defined(TARGET_WINDOWS)
15#include <Windows.h>
16#include <time.h>
17#else
18#include <time.h>
19#endif
20
21namespace kodi
22{
23namespace time
24{
25
26//===============================================================================
27/// @brief Function to get current time in milliseconds
28///
29/// @return Current time in milliseconds as a double value
30///
31///
32/// -----------------------------------------------------------------------------
33///
34/// **Example:**
35/// ~~~~~~~~~~~~~{.cpp}
36///
37/// #include <kodi/tools/Time.h>
38///
39/// ...
40/// double time = kodi::time::GetTimeMs();
41/// ...
42/// ~~~~~~~~~~~~~
43///
44inline double GetTimeMs()
45{
46#if defined(TARGET_DARWIN)
47 return static_cast<double>(CVGetCurrentHostTime() / static_cast<double>(CVGetHostClockFrequency() * 0.001));
48#elif defined(TARGET_WINDOWS)
49 LARGE_INTEGER tickPerSecond;
50 LARGE_INTEGER tick;
51 if (QueryPerformanceFrequency(&tickPerSecond))
52 {
53 QueryPerformanceCounter(&tick);
54 return static_cast<double>(tick.QuadPart) / (tickPerSecond.QuadPart / 1000.0);
55 }
56 return 0.0;
57#else
58 timespec time;
59 clock_gettime(CLOCK_MONOTONIC, &time);
60 return static_cast<double>(time.tv_sec) * 1000.0 + time.tv_nsec / 1000000.0;
61#endif
62}
63//-------------------------------------------------------------------------------
64
65//===============================================================================
66/// @brief Function to get current time in seconds
67///
68/// @return Current time in seconds with the value type defined in the template
69///
70///
71/// -----------------------------------------------------------------------------
72///
73/// **Example:**
74/// ~~~~~~~~~~~~~{.cpp}
75///
76/// #include <kodi/tools/Time.h>
77///
78/// ...
79/// double time = kodi::time::GetTimeSec<double>();
80/// ...
81/// ~~~~~~~~~~~~~
82///
83template <class T>
84inline T GetTimeSec()
85{
86 return static_cast<T>(GetTimeMs()) / static_cast<T>(1000.0);
87}
88//-------------------------------------------------------------------------------
89
90} /* namespace time */
91} /* namespace kodi */