#ifndef __VIRTUAL_TIMER_VIRTUALTIMER_H__
#define __VIRTUAL_TIMER_VIRTUALTIMER_H__

#include "VirtualTimerInterface.h"

namespace pinetime::virtual_timer
{

class VirtualTimer
    : public pinetime::interfaces::VirtualTimerInterface
{
public:
    VirtualTimer(uint64_t);

    void timer_enable() override;
    void timer_disable() override;
    void timer_notification(uint64_t) override;

    void timer_set_period_ms(uint64_t);

    virtual void notification() = 0;

private:
    uint64_t period;
    uint64_t start_time;
};

}

#endif
