libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
cadence.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
13#include <cstdint>
14#include <promeki/duration.h>
15#include <promeki/namespace.h>
16#include <promeki/timestamp.h>
17
18PROMEKI_NAMESPACE_BEGIN
19
67class Cadence {
68 public:
87 explicit Cadence(const Duration &interval);
88
102 void anchor(const TimeStamp &t0);
103
115 TimeStamp next();
116
134 void reanchor(const TimeStamp &t);
135
144 uint64_t ticks() const;
145
147 Duration interval() const;
148
149 private:
150 Duration _interval;
151 TimeStamp _next;
152 uint64_t _ticks = 0;
153 bool _anchored = false;
154};
155
156PROMEKI_NAMESPACE_END
157
158#endif // PROMEKI_ENABLE_CORE