[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