[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