[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[paragui-cvs] CVS: paragui/src/core pgtimerobject.cpp,1.1.2.1,1.1.2.2
From: |
Alexander Pipelka <address@hidden> |
Subject: |
[paragui-cvs] CVS: paragui/src/core pgtimerobject.cpp,1.1.2.1,1.1.2.2 |
Date: |
Wed, 29 May 2002 05:25:22 -0400 |
Update of /cvsroot/paragui/paragui/src/core
In directory subversions:/tmp/cvs-serv4668/src/core
Modified Files:
Tag: devel-1-0
pgtimerobject.cpp
Log Message:
added support for multiple timers
Index: pgtimerobject.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/core/Attic/pgtimerobject.cpp,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -C2 -r1.1.2.1 -r1.1.2.2
*** pgtimerobject.cpp 28 May 2002 20:18:09 -0000 1.1.2.1
--- pgtimerobject.cpp 29 May 2002 09:25:18 -0000 1.1.2.2
***************
*** 1,36 ****
#include "pgtimerobject.h"
! Uint32 PG_TimerObject::my_objectcount = 0;
PG_TimerObject::PG_TimerObject() {
! if(my_objectcount == 0) {
! SDL_Init(SDL_INIT_TIMER);
}
! my_timerid = 0;
! my_objectcount++;
}
PG_TimerObject::~PG_TimerObject() {
! my_objectcount--;
}
! SDL_TimerID PG_TimerObject::AddTimer(Uint32 interval) {
! my_timerid = SDL_AddTimer(interval, &PG_TimerObject::callbackTimer,
this);
! return my_timerid;
}
! bool PG_TimerObject::RemoveTimer() {
! SDL_TimerID id = my_timerid;
! my_timerid = 0;
! return SDL_RemoveTimer(id);
}
! Uint32 PG_TimerObject::eventTimer(Uint32 interval) {
return interval;
}
Uint32 PG_TimerObject::callbackTimer(Uint32 interval, void* data) {
! PG_TimerObject* caller = static_cast<PG_TimerObject*>(data);
! return caller->eventTimer(interval);
}
--- 1,60 ----
#include "pgtimerobject.h"
! Uint32 PG_TimerObject::objectcount = 0;
! PG_TimerID PG_TimerObject::globalTimerID = 0;
! std::map<PG_TimerID, PG_TimerObject*> PG_TimerObject::timermap;
PG_TimerObject::PG_TimerObject() {
! if(objectcount == 0) {
! SDL_InitSubSystem(SDL_INIT_TIMER);
}
! objectcount++;
}
PG_TimerObject::~PG_TimerObject() {
!
! // remove all timers of this object
! std::map<PG_TimerID, SDL_TimerID>::iterator i;
!
! for(i = my_timermap.begin(); i != my_timermap.end(); i++) {
! RemoveTimer((*i).first);
! }
!
! objectcount--;
!
! if(objectcount == 0) {
! SDL_QuitSubSystem(SDL_INIT_TIMER);
! }
}
! PG_TimerID PG_TimerObject::AddTimer(Uint32 interval) {
! SDL_TimerID id = SDL_AddTimer(interval, &PG_TimerObject::callbackTimer,
(void*)(globalTimerID+1));
!
! if(id == 0) {
! return 0;
! }
!
! PG_TimerID pgid = ++globalTimerID;
! my_timermap[pgid] = id;
! timermap[pgid] = this;
!
! return pgid;
}
! bool PG_TimerObject::RemoveTimer(PG_TimerID id) {
! if(my_timermap[id] == 0) {
! return false;
! }
!
! return SDL_RemoveTimer(my_timermap[id]);
}
! Uint32 PG_TimerObject::eventTimer(PG_TimerID id, Uint32 interval) {
return interval;
}
Uint32 PG_TimerObject::callbackTimer(Uint32 interval, void* data) {
! PG_TimerID id = reinterpret_cast<PG_TimerID>(data);
! return timermap[id]->eventTimer(id, interval);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [paragui-cvs] CVS: paragui/src/core pgtimerobject.cpp,1.1.2.1,1.1.2.2,
Alexander Pipelka <address@hidden> <=
- Prev by Date:
[paragui-cvs] CVS: paragui/include pgtimerobject.h,NONE,1.1.2.1 Makefile.am,1.1.1.1,1.1.1.1.6.1
- Next by Date:
[paragui-cvs] CVS: paragui/test animation.cpp,1.1.6.1,1.1.6.2
- Previous by thread:
[paragui-cvs] CVS: paragui/include pgtimerobject.h,NONE,1.1.2.1 Makefile.am,1.1.1.1,1.1.1.1.6.1
- Next by thread:
[paragui-cvs] CVS: paragui/test animation.cpp,1.1.6.1,1.1.6.2
- Index(es):