aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Time/je_timer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Time/je_timer.h')
-rw-r--r--src/libjin/Time/je_timer.h22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/libjin/Time/je_timer.h b/src/libjin/Time/je_timer.h
index fabde28..31cd322 100644
--- a/src/libjin/Time/je_timer.h
+++ b/src/libjin/Time/je_timer.h
@@ -22,12 +22,14 @@ namespace JinEngine
typedef std::function<void(void*)> TimerCallback;
+ typedef std::function<void(void*)> FinishCallback;
+
///
///
///
class Handler
{
- private:
+ public:
friend class Timer;
enum Type
{
@@ -35,16 +37,18 @@ namespace JinEngine
AFTER,
REPEAT,
};
- Handler(Type type, int duration, int count = 0, TimerCallback callback = nullptr, void* paramters = nullptr);
+ Handler(Type type, float duration, int count = 0, TimerCallback callback = nullptr, void* paramters = nullptr, FinishCallback finishcallback = nullptr);
virtual ~Handler();
- void process(int ms);
+ void process(float dt);
- int duration;
+ protected:
int count;
- int tickdown;
int countdown;
+ float duration;
+ float tickdown;
Type type;
TimerCallback callback;
+ FinishCallback finishCallback;
void* paramters;
bool canceled;
};
@@ -62,22 +66,22 @@ namespace JinEngine
///
///
///
- void update(int ms);
+ void update(float dt);
///
///
///
- Handler* every(int ms, TimerCallback callback, void* paramters);
+ Handler* every(float dt, TimerCallback callback, void* paramters, FinishCallback finish);
///
///
///
- Handler* after(int ms, TimerCallback callback, void* paramters);
+ Handler* after(float dt, TimerCallback callback, void* paramters, FinishCallback finish);
///
///
///
- Handler* repeat(int ms, int count, TimerCallback callback, void* paramters);
+ Handler* repeat(float dt, int count, TimerCallback callback, void* paramters, FinishCallback finish);
///
///