esp-clock/include/timer.h

32 lines
530 B
C++

#pragma once
#include "helper.h"
typedef void (*remaining_callback_t)(int8);
struct : public CallbackAware<remaining_callback_t> {
void operator=(int8 value) {
remaining = value;
}
operator int8() {
return remaining;
}
void start() {
initial = remaining++;
}
void decrease() {
remaining--;
if (callback) callback(remaining);
}
bool atBeginning() {
return initial == remaining;
}
private:
int8 initial = 0, remaining = 0;
} timer;