[Scummvm-cvs-logs] CVS: residual smush.cpp,1.36,1.37 smush.h,1.18,1.19 timer.cpp,1.4,1.5 timer.h,1.2,1.3
Pawel Kolodziejski
aquadran at users.sourceforge.net
Fri Mar 26 14:49:05 CET 2004
Update of /cvsroot/scummvm/residual
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14105
Modified Files:
smush.cpp smush.h timer.cpp timer.h
Log Message:
timer stack locks are now usefull for smush code
Index: smush.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/smush.cpp,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -d -r1.36 -r1.37
--- smush.cpp 26 Mar 2004 06:08:00 -0000 1.36
+++ smush.cpp 26 Mar 2004 22:37:46 -0000 1.37
@@ -50,6 +50,7 @@
_movieTime = 0;
_surface = NULL;
_bufSurface = NULL;
+ _timerMutex = g_timer->getMutex();
}
Smush::~Smush() {
@@ -67,17 +68,27 @@
_videoFinished = false;
_videoPause = false;
_updateNeeded = false;
- if (!_surface)
+ if (!_surface) {
_surface = SDL_CreateRGBSurface(SDL_SWSURFACE, _width, _height, 16, 0x0000f800, 0x000007e0, 0x0000001f, 0x00000000);
- if (!_bufSurface)
- _bufSurface = SDL_CreateRGBSurface(SDL_SWSURFACE, _width, _height, 16, 0x0000f800, 0x000007e0, 0x0000001f, 0x00000000);
- _dst = (byte *)_surface->pixels;
- _buf = (byte *)_bufSurface->pixels;
- g_timer->installTimerProc(&timerCallback, _speed, NULL);
+ _dst = (byte *)_surface->pixels;
+ }
+ if (!_bufSurface) {
+ _bufSurface = SDL_CreateRGBSurface(SDL_SWSURFACE, _width, _height, 16, 0x0000f800, 0x000007e0, 0x0000001f, 0x00000000);
+ _buf = (byte *)_bufSurface->pixels;
+ }
+
+ {
+ StackLock lock(_timerMutex);
+ g_timer->installTimerProc(&timerCallback, _speed, NULL);
+ }
}
void Smush::deinit() {
- g_timer->removeTimerProc(&timerCallback);
+ {
+ StackLock lock(_timerMutex);
+ g_timer->removeTimerProc(&timerCallback);
+ }
+
_videoFinished = true;
_videoPause = true;
if (_stream) {
Index: smush.h
===================================================================
RCS file: /cvsroot/scummvm/residual/smush.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- smush.h 26 Mar 2004 00:48:07 -0000 1.18
+++ smush.h 26 Mar 2004 22:37:46 -0000 1.19
@@ -56,7 +56,8 @@
zlibFile _file;
PlayingSoundHandle _soundHandle;
AppendableAudioStream *_stream;
-
+ MutexRef _timerMutex;
+
int32 _frame;
bool _updateNeeded;
int32 _speed;
Index: timer.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/timer.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- timer.cpp 25 Mar 2004 21:14:29 -0000 1.4
+++ timer.cpp 26 Mar 2004 22:37:46 -0000 1.5
@@ -128,3 +128,7 @@
}
}
}
+
+MutexRef Timer::getMutex() {
+ return _mutex;
+}
Index: timer.h
===================================================================
RCS file: /cvsroot/scummvm/residual/timer.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- timer.h 25 Feb 2004 08:21:31 -0000 1.2
+++ timer.h 26 Mar 2004 22:37:46 -0000 1.3
@@ -63,6 +63,7 @@
*/
void removeTimerProc(TimerProc proc);
+ MutexRef getMutex();
protected:
static int timer_handler(int t);
int handler(int t);
More information about the Scummvm-git-logs
mailing list