mirror of
https://github.com/Kiritow/MiniEngine.git
synced 2024-03-22 13:11:22 +08:00
Add Timer Support
This commit is contained in:
parent
499c25ddd3
commit
f3b1b2208c
|
@ -803,6 +803,63 @@ namespace MiniEngine
|
|||
SDL_StopTextInput();
|
||||
}
|
||||
|
||||
Timer::Timer()
|
||||
{
|
||||
_enabled=false;
|
||||
_detached=false;
|
||||
id=-1;
|
||||
}
|
||||
|
||||
Timer::Timer(SDL_TimerCallback callback,Uint32 interval,void* param) : Timer()
|
||||
{
|
||||
_callback=callback;
|
||||
_interval=interval;
|
||||
_param=param;
|
||||
}
|
||||
|
||||
int Timer::enable()
|
||||
{
|
||||
if(_enabled)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
id=SDL_AddTimer(_interval,_callback,_param);
|
||||
if(id<0) return -2;
|
||||
_enabled=true;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int Timer::disable()
|
||||
{
|
||||
if(_enabled)
|
||||
{
|
||||
SDL_RemoveTimer(id);
|
||||
_enabled=false;
|
||||
id=-1;
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
void Timer::detach()
|
||||
{
|
||||
_detached=true;
|
||||
}
|
||||
|
||||
Timer::~Timer()
|
||||
{
|
||||
if(!_detached)
|
||||
{
|
||||
disable();
|
||||
}
|
||||
}
|
||||
|
||||
AudioPlayer::AudioPlayer()
|
||||
{
|
||||
if (!_sysAudioCounter)
|
||||
|
|
21
MiniEngine.h
21
MiniEngine.h
|
@ -282,6 +282,26 @@ namespace MiniEngine
|
|||
};
|
||||
};
|
||||
|
||||
class Timer
|
||||
{
|
||||
public:
|
||||
Timer();
|
||||
/// Uint32 func(Uint32,void*) ...
|
||||
Timer(SDL_TimerCallback callback,Uint32 interval,void* param);
|
||||
int enable();
|
||||
int disable();
|
||||
bool isenable();
|
||||
void detach();
|
||||
~Timer();
|
||||
private:
|
||||
SDL_TimerCallback _callback;
|
||||
Uint32 _interval;
|
||||
void* _param;
|
||||
SDL_TimerID id;
|
||||
bool _enabled;
|
||||
bool _detached;
|
||||
};
|
||||
|
||||
class AudioPlayer
|
||||
{
|
||||
public:
|
||||
|
@ -332,7 +352,6 @@ namespace MiniEngine
|
|||
Music m;
|
||||
};
|
||||
|
||||
|
||||
class Sound
|
||||
{
|
||||
public:
|
||||
|
|
Loading…
Reference in New Issue
Block a user