Zrythm
v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
monotonic_time_provider.h
1
// SPDX-FileCopyrightText: © 2024 Alexandros Theodotou <alex@zrythm.org>
2
// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4
#pragma once
5
6
#include <QElapsedTimer>
7
8
namespace
zrythm::utils
9
{
10
using
MonotonicTime = qint64;
11
12
class
MonotonicTimeProvider
13
{
14
public
:
15
virtual
~MonotonicTimeProvider
() =
default
;
16
virtual
MonotonicTime get_monotonic_time_nsecs ()
const
= 0;
17
virtual
MonotonicTime get_monotonic_time_usecs ()
const
= 0;
18
};
19
20
class
QElapsedTimeProvider :
public
MonotonicTimeProvider
21
{
22
public
:
23
QElapsedTimeProvider () { timer_.start (); }
24
25
MonotonicTime get_monotonic_time_nsecs ()
const override
26
{
27
return
timer_.nsecsElapsed ();
28
}
29
30
MonotonicTime get_monotonic_time_usecs ()
const override
31
{
32
return
get_monotonic_time_nsecs () / 1000;
33
}
34
35
private
:
36
QElapsedTimer timer_;
37
};
38
39
}
// namespace zrythm::utils
zrythm::utils::MonotonicTimeProvider
Definition
monotonic_time_provider.h:13
zrythm::utils
String utilities.
Definition
algorithms.h:12
src
utils
monotonic_time_provider.h
Generated by
1.13.2