hx3d  1
2D/3D Simple Game Framework
callback_timer.hpp
1 /*
2  Callback Timer.
3  Copyright (C) 2015 Denis BOURGE
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Lesser General Public
7  License as published by the Free Software Foundation; either
8  version 2.1 of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public
16  License along with this library; if not, write to the Free Software
17  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
18  USA
19 */
20 
21 #ifndef HX3D_UTILS_CALLBACKTIMER
22 #define HX3D_UTILS_CALLBACKTIMER
23 
24 #include "hx3d/utils/timer.hpp"
25 
26 #include <functional>
27 
28 namespace hx3d {
29 
34 public:
40  CallbackTimer();
41 
50  CallbackTimer(float delay, std::function<void()> function, bool loop = false);
51 
60  void initialize(float delay, std::function<void()> function, bool loop = false);
61 
67  long remaining();
68 
72  void reset();
73 
77  void update(float delta);
78 
84  bool hasEnded();
85 
91  bool isLooping();
92 
93 private:
94  Timer _timer;
95  std::function<void()> _function;
96  bool _loop;
97 };
98 
99 } /* hx3d */
100 
101 #endif
Simple timer.
Definition: timer.hpp:31
void reset()
Reset the timer.
hx3d framework namespace
Definition: audio.hpp:26
void update(float delta)
Update the timer.
Improved timer with callback execution.
void initialize(float delay, std::function< void()> function, bool loop=false)
Initialize the timer. The delay is in milliseconds.
long remaining()
Get the remaining time in milliseconds.
bool isLooping()
Is the timer looping ?
CallbackTimer()
Create an uninitialized callback timer.
bool hasEnded()
Did the timer ended ?