diff options
Diffstat (limited to 'src/libjin/time')
-rw-r--r-- | src/libjin/time/je_timer.cpp | 132 | ||||
-rw-r--r-- | src/libjin/time/je_timer.h | 68 |
2 files changed, 100 insertions, 100 deletions
diff --git a/src/libjin/time/je_timer.cpp b/src/libjin/time/je_timer.cpp index 8dc5e86..5de3e26 100644 --- a/src/libjin/time/je_timer.cpp +++ b/src/libjin/time/je_timer.cpp @@ -5,26 +5,26 @@ namespace JinEngine { - namespace Time - { + namespace Time + { - Timer::Timer() - : mHandlers() - { - } + Timer::Timer() + : mHandlers() + { + } - Timer::~Timer() - { + Timer::~Timer() + { for (int i = 0; i < mHandlers.size(); ++i) delete mHandlers[i]; - } + } - void Timer::update(float dt) - { + void Timer::update(float dt) + { // Process handler. - std::vector<Handler*>::iterator it = mHandlers.begin(); - for (; it != mHandlers.end(); ++it) + 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();) @@ -38,7 +38,7 @@ namespace JinEngine else ++it; } - } + } void Timer::cancel(Handler* handler) { @@ -52,71 +52,71 @@ namespace JinEngine 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); + 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); + 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); + 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) + } + + 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() - { + 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; + } + + 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 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 index a918d63..1209827 100644 --- a/src/libjin/time/je_timer.h +++ b/src/libjin/time/je_timer.h @@ -12,15 +12,15 @@ namespace JinEngine { - namespace Time - { + namespace Time + { /// /// /// - class Timer : public Object - { - public: + class Timer : public Object + { + public: typedef std::function<void(void*)> TimerCallback; @@ -58,32 +58,32 @@ namespace JinEngine /// /// /// - Timer(); + Timer(); /// /// /// - ~Timer(); + ~Timer(); /// /// /// - void update(float dt); + void update(float dt); /// /// /// - Handler* every(float dt, TimerCallback callback, void* paramters = nullptr, FinishCallback finish = nullptr); + Handler* every(float dt, TimerCallback callback, void* paramters = nullptr, FinishCallback finish = nullptr); /// /// /// - Handler* after(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); + Handler* repeat(float dt, int count, TimerCallback callback, void* paramters, FinishCallback finish); /// /// @@ -95,43 +95,43 @@ namespace JinEngine /// void cancelAll(); - private: + private: - std::vector<Handler*> mHandlers; + std::vector<Handler*> mHandlers; - }; + }; /// /// /// - inline void sleep(int ms) - { - #if jin_time == jin_time_sdl - SDL_Delay(ms); - #endif - } + 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 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 + inline double getMilliSecond() + { + #if jin_time == jin_time_sdl + return SDL_GetTicks(); + #endif + } + + } // namespace Time } // namespace JinEngine #endif // defined(jin_time) |