aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Time/je_timer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Time/je_timer.cpp')
-rw-r--r--src/libjin/Time/je_timer.cpp122
1 files changed, 0 insertions, 122 deletions
diff --git a/src/libjin/Time/je_timer.cpp b/src/libjin/Time/je_timer.cpp
deleted file mode 100644
index 8dc5e86..0000000
--- a/src/libjin/Time/je_timer.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-#include "../core/je_configuration.h"
-#if defined(jin_time)
-
-#include "je_timer.h"
-
-namespace JinEngine
-{
- namespace Time
- {
-
-
- Timer::Timer()
- : mHandlers()
- {
- }
-
- Timer::~Timer()
- {
- for (int i = 0; i < mHandlers.size(); ++i)
- delete mHandlers[i];
- }
-
- void Timer::update(float dt)
- {
- // Process handler.
- std::vector<Handler*>::iterator it = mHandlers.begin();
- for (; it != mHandlers.end(); ++it)
- (*it)->process(dt);
- // Erase canceled handler.
- for (it = mHandlers.begin(); it != mHandlers.end();)
- {
- if ((*it)->canceled)
- {
- Handler* h = *it;
- it = mHandlers.erase(it);
- delete h;
- }
- else
- ++it;
- }
- }
-
- void Timer::cancel(Handler* handler)
- {
- if(handler != nullptr)
- handler->canceled = true;
- }
-
- void Timer::cancelAll()
- {
- for (auto h : mHandlers)
- cancel(h);
- }
-
- Timer::Handler* Timer::every(float dt, TimerCallback callback, void* p, FinishCallback finish)
- {
- Handler* t = new Handler(Handler::EVERY, dt, 0, callback, p, finish);
- mHandlers.push_back(t);
- return t;
- }
-
- Timer::Handler* Timer::after(float dt, TimerCallback callback, void* p, FinishCallback finish)
- {
- Handler* t = new Handler(Handler::AFTER, dt, 0, callback, p, finish);
- mHandlers.push_back(t);
- return t;
- }
-
- Timer::Handler* Timer::repeat(float dt, int count, TimerCallback callback, void* p, FinishCallback finish)
- {
- Handler* t = new Handler(Handler::REPEAT, dt, count, callback, p, finish);
- mHandlers.push_back(t);
- return t;
- }
-
- Timer::Handler::Handler(Type t, float d, int c, TimerCallback f, void* p, FinishCallback finishcallback)
- : type(t)
- , duration(d)
- , count(c)
- , tickdown(d)
- , countdown(c)
- , callback(f)
- , paramters(p)
- , canceled(false)
- , finishCallback(finishcallback)
- {
- }
-
- Timer::Handler::~Handler()
- {
- if (finishCallback != nullptr)
- finishCallback(paramters);
- }
-
- void Timer::Handler::process(float dt)
- {
- tickdown -= dt;
- if (tickdown <= 0)
- {
- tickdown += duration;
- if (!canceled && callback != nullptr)
- callback(paramters);
- if (type == EVERY)
- {
- }
- else if (type == AFTER)
- {
- canceled = true;
- }
- else if (type == REPEAT)
- {
- --countdown;
- if (countdown <= 0)
- canceled = true;
- }
- }
- }
-
- } // namespace Time
-} // namespace JinEngine
-
-#endif // defined(jin_time) \ No newline at end of file