30#define MILLIS_PER_MICROS 1000
31#define MICROS_PER_MILLIS 1000
32#define MILLIS_PER_SECOND 1000
33#define MICROS_PER_SECOND 1000000UL
35#define SECONDS_PER_MINUTE 60
36#define SECONDS_PER_HOUR 3600
37#define SECONDS_PER_DAY 86400
39#define MINUTES_PER_HOUR 60
40#define HOURS_PER_DAY 24
42#define MILLIS_TO_MICROS 1e3f
43#define SECONDS_TO_MILLIS 1e3f
44#define SECONDS_TO_MICROS 1e6f
46#define MICROS_TO_MILLIS 1e-3f
47#define MILLIS_TO_SECONDS 1e-3f
48#define MICROS_TO_SECONDS 1e-6f
50constexpr float BPM_TO_HZ = 1.0f / SECONDS_PER_MINUTE;
51#define HZ_TO_BPM 60.0f
74float seconds(
bool referenceTime=
true);
83uint32_t milliSeconds(
bool referenceTime=
true);
92uint64_t microSeconds(
bool referenceTime=
true);
99inline uint32_t microsToMillis(uint64_t micros) {
return micros / MICROS_PER_MILLIS; }
106inline float microsToSeconds(uint64_t micros) {
return micros * MICROS_TO_SECONDS; }
113inline uint64_t millisToMicros(uint32_t millis) {
return static_cast<uint64_t
>(millis * MICROS_PER_MILLIS); }
120inline float millisToSeconds(uint32_t millis) {
return millis * MILLIS_TO_SECONDS; }
127inline uint64_t secondsToMicros(
float secs) {
return static_cast<uint64_t
>(secs * SECONDS_TO_MICROS); }
134inline uint32_t secondsToMillis(
float secs) {
return static_cast<uint32_t
>(secs * SECONDS_TO_MILLIS); }
141inline float minutesToSeconds(
float minutes) {
return minutes * SECONDS_PER_MINUTE; }
148inline float hoursToSeconds(
float hours) {
return hours * SECONDS_PER_HOUR; }
155inline float daysToSeconds(
float days) {
return days * SECONDS_PER_DAY; }