[Scummvm-cvs-logs] CVS: scummvm/scumm/smush smush_player.cpp,1.119,1.120 smush_player.h,1.29,1.30

Pawel Kolodziejski aquadran at users.sourceforge.net
Mon Apr 26 02:05:02 CEST 2004


Update of /cvsroot/scummvm/scummvm/scumm/smush
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23914

Modified Files:
	smush_player.cpp smush_player.h 
Log Message:
added mutex into smush player

Index: smush_player.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/smush_player.cpp,v
retrieving revision 1.119
retrieving revision 1.120
diff -u -d -r1.119 -r1.120
--- smush_player.cpp	16 Apr 2004 20:49:14 -0000	1.119
+++ smush_player.cpp	26 Apr 2004 09:04:08 -0000	1.120
@@ -217,6 +217,8 @@
 
 SmushPlayer::SmushPlayer(ScummEngine_v6 *scumm, int speed) {
 	_vm = scumm;
+	_mutex = g_system->createMutex();
+
 	_version = -1;
 	_nbframes = 0;
 	_smixer = 0;
@@ -245,27 +247,28 @@
 }
 
 SmushPlayer::~SmushPlayer() {
-	deinit();
+	release();
+	g_system->deleteMutex(_mutex);
 }
 
 void SmushPlayer::init() {
-
+	Common::StackLock lock(_mutex, "SmushPlayer::init()");
 	_frame = 0;
-
 	_vm->_videoFinished = false;
-
-	_smixer = new SmushMixer(_vm->_mixer);
-
 	_vm->setDirtyColors(0, 255);
 	_dst = _vm->virtscr[0].screenPtr + _vm->virtscr[0].xstart;
+	_smixer = new SmushMixer(_vm->_mixer);
 	g_timer->installTimerProc(&timerCallback, _speed, this);
 
 	_alreadyInit = false;
 }
 
-void SmushPlayer::deinit() {
+void SmushPlayer::release() {
+	Common::StackLock lock(_mutex, "SmushPlayer::release()");
 	_vm->_timer->removeTimerProc(&timerCallback);
 
+	_vm->_videoFinished = true;
+
 	for (int i = 0; i < 5; i++) {
 		if (_sf[i]) {
 			delete _sf[i];
@@ -956,6 +959,7 @@
 }
 
 void SmushPlayer::parseNextFrame() {
+	Common::StackLock lock(_mutex, "SmushPlayer::parseNextFrame()");
 	if (_vm->_smushPaused)
 		return;
 
@@ -1150,8 +1154,8 @@
 		_vm->_system->delay_msecs(10);
 	};
 
-	deinit();
-	
+	release();
+
 	// Reset mouse state
 	_vm->_system->showMouse(oldMouseState);
 }

Index: smush_player.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/smush_player.h,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- smush_player.h	14 Apr 2004 06:37:00 -0000	1.29
+++ smush_player.h	26 Apr 2004 09:04:08 -0000	1.30
@@ -42,6 +42,7 @@
 	int _version;
 	int32 _nbframes;
 	SmushMixer *_smixer;
+	OSystem::MutexRef _mutex;
 	int16 _deltaPal[0x300];
 	byte _pal[0x300];
 	StringResource *_strings;
@@ -91,7 +92,7 @@
 	void updatePalette(void);
 	void parseNextFrame();
 	void init();
-	void deinit();
+	void release();
 	void setupAnim(const char *file, const char *directory);
 	void updateScreen();
 





More information about the Scummvm-git-logs mailing list