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.cpp132
-rw-r--r--src/libjin/time/je_timer.h68
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)