Browse Source

Utils - Add SWTimer

master
heck 9 months ago
parent
commit
a0a3f4383e
  1. 28
      src/utils.cc
  2. 17
      src/utils.hh

28
src/utils.cc

@ -91,4 +91,32 @@ namespace Heck {
float ret = min + (val * range);
return ret;
}
} // namespace Heck
namespace Heck {
void SWTimer::set_period(u32 time_units)
{
time_period_ = time_units;
}
void SWTimer::set_callback(const Callback& cb)
{
callback_ = cb;
}
bool SWTimer::is_it_already_time_again(u32 time_now)
{
if (time_now - time_last_exec_ >= time_period_) {
time_last_exec_ = time_now;
if (callback_) {
//todo: constexpr if metrics
callback_();
}
return true;
}
return false;
}
} // namespace Heck

17
src/utils.hh

@ -12,4 +12,19 @@ namespace Heck {
float scalen_center_range(float val, float center, float range);
} // namespace Heck
#endif // HECK_OSP_UTILS_HH
namespace Heck {
class SWTimer {
public:
using Callback = std::function<void(void)>;
void set_period(u32 time_units);
void set_callback(const Callback& cb);
bool is_it_already_time_again(u32 time_now);
private:
Callback callback_{};
u32 time_last_exec_{};
u32 time_period_{};
};
} // namespace Heck
#endif // HECK_DAISY_UTILS_HH
Loading…
Cancel
Save