aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Time
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Time')
-rw-r--r--src/libjin/Time/je_timer.cpp122
-rw-r--r--src/libjin/Time/je_timer.h137
2 files changed, 0 insertions, 259 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
diff --git a/src/libjin/Time/je_timer.h b/src/libjin/Time/je_timer.h
deleted file mode 100644
index 31cd322..0000000
--- a/src/libjin/Time/je_timer.h
+++ /dev/null
@@ -1,137 +0,0 @@
-#ifndef __JE_TIMER_H__
-#define __JE_TIMER_H__
-#include "../core/je_configuration.h"
-#if defined(jin_time)
-
-#include <vector>
-#include <functional>
-
-#include "SDL2/SDL.h"
-
-namespace JinEngine
-{
- namespace Time
- {
-
- ///
- ///
- ///
- class Timer
- {
- public:
-
- typedef std::function<void(void*)> TimerCallback;
-
- typedef std::function<void(void*)> FinishCallback;
-
- ///
- ///
- ///
- class Handler
- {
- public:
- friend class Timer;
- enum Type
- {
- EVERY,
- AFTER,
- REPEAT,
- };
- Handler(Type type, float duration, int count = 0, TimerCallback callback = nullptr, void* paramters = nullptr, FinishCallback finishcallback = nullptr);
- virtual ~Handler();
- void process(float dt);
-
- protected:
- int count;
- int countdown;
- float duration;
- float tickdown;
- Type type;
- TimerCallback callback;
- FinishCallback finishCallback;
- void* paramters;
- bool canceled;
- };
-
- ///
- ///
- ///
- Timer();
-
- ///
- ///
- ///
- ~Timer();
-
- ///
- ///
- ///
- void update(float dt);
-
- ///
- ///
- ///
- Handler* every(float dt, TimerCallback callback, void* paramters, FinishCallback finish);
-
- ///
- ///
- ///
- Handler* after(float dt, TimerCallback callback, void* paramters, FinishCallback finish);
-
- ///
- ///
- ///
- Handler* repeat(float dt, int count, TimerCallback callback, void* paramters, FinishCallback finish);
-
- ///
- ///
- ///
- void cancel(Handler* handler);
-
- ///
- ///
- ///
- void cancelAll();
-
- private:
-
- std::vector<Handler*> mHandlers;
-
- };
-
- ///
- ///
- ///
- inline void sleep(int ms)
- {
- #if jin_time == jin_time_sdl
- SDL_Delay(ms);
- #endif
- }
-
- ///
- ///
- ///
- inline double getSecond()
- {
- #if jin_time == jin_time_sdl
- return SDL_GetTicks() / 1000.f;
- #endif
- }
-
- ///
- ///
- ///
- inline double getMilliSecond()
- {
- #if jin_time == jin_time_sdl
- return SDL_GetTicks();
- #endif
- }
-
- } // namespace Time
-} // namespace JinEngine
-
-#endif // defined(jin_time)
-
-#endif // __JE_TIMER_H__ \ No newline at end of file