[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse_sndmgr.cpp,1.2,1.3
Max Horn
fingolfin at users.sourceforge.net
Tue Jan 6 12:01:05 CET 2004
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm verbs.cpp,1.89,1.90
- Next message: [Scummvm-cvs-logs] CVS: scummvm/queen graphics.cpp,1.69,1.70 logic.cpp,1.159,1.160 logic.h,1.102,1.103 structs.h,1.30,1.31
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1:/tmp/cvs-serv17591
Modified Files:
dimuse_sndmgr.cpp
Log Message:
fix mutex usage some. IMuseDigital currently is still unusable on my system, though (it takes 100% CPU time just on the difficulty selection screen of COMI, playing a single bundle music... uhm)
Index: dimuse_sndmgr.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_sndmgr.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- dimuse_sndmgr.cpp 6 Jan 2004 19:47:23 -0000 1.2
+++ dimuse_sndmgr.cpp 6 Jan 2004 19:55:44 -0000 1.3
@@ -43,25 +43,7 @@
}
}
-void ImuseDigiSndMgr::waitForFreeAccess() {
- Common::StackLock tmpLock(_mutex);
- while (!_accessFree) {
- }
-}
-
-void ImuseDigiSndMgr::lock() {
- Common::StackLock tmpLock(_mutex);
- waitForFreeAccess();
- _accessFree = false;
-}
-
-void ImuseDigiSndMgr::unlock() {
- Common::StackLock tmpLock(_mutex);
- _accessFree = true;
-}
-
void ImuseDigiSndMgr::prepareSound(byte *ptr, int slot) {
- Common::StackLock tmpLock(_mutex);
if (READ_UINT32(ptr) == MKID('Crea')) {
int size, rate, loops;
_sounds[slot].resPtr = readVOCFromMemory(ptr, size, rate, loops);
@@ -143,7 +125,6 @@
}
int ImuseDigiSndMgr::allocSlot() {
- Common::StackLock tmpLock(_mutex);
for (int l = 0; l < MAX_IMUSE_SOUNDS; l++) {
if (!_sounds[l].inUse) {
_sounds[l].inUse = true;
@@ -155,7 +136,6 @@
}
bool ImuseDigiSndMgr::openMusicBundle(int slot) {
- Common::StackLock tmpLock(_mutex);
bool result = false;
_sounds[slot]._bundle = new BundleMgr();
@@ -183,7 +163,6 @@
}
bool ImuseDigiSndMgr::openVoiceBundle(int slot) {
- Common::StackLock tmpLock(_mutex);
bool result = false;
_sounds[slot]._bundle = new BundleMgr();
@@ -214,7 +193,6 @@
assert(soundId >= 0);
assert(soundType);
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
int slot = allocSlot();
if (slot == -1) {
@@ -229,7 +207,6 @@
ptr = _scumm->getResourceAddress(rtSound, soundId);
if (ptr == NULL) {
closeSound(&_sounds[slot]);
- unlock();
return NULL;
}
_sounds[slot].resPtr = ptr;
@@ -262,16 +239,13 @@
if (result) {
if (ptr == NULL) {
closeSound(&_sounds[slot]);
- unlock();
return NULL;
}
prepareSound(ptr, slot);
void *soundHandle = &_sounds[slot];
- unlock();
return soundHandle;
}
- unlock();
return NULL;
}
@@ -291,7 +265,6 @@
}
bool ImuseDigiSndMgr::checkForProperHandle(void *soundHandle) {
- Common::StackLock tmpLock(_mutex);
for (int l = 0; l < MAX_IMUSE_SOUNDS; l++) {
if (soundHandle == &_sounds[l])
return true;
@@ -301,131 +274,105 @@
int ImuseDigiSndMgr::getFreq(void *soundHandle) {
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
assert(soundHandle && checkForProperHandle(soundHandle));
int result = ((soundStruct *)soundHandle)->freq;
- unlock();
return result;
}
int ImuseDigiSndMgr::getBits(void *soundHandle) {
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
assert(soundHandle && checkForProperHandle(soundHandle));
int result = ((soundStruct *)soundHandle)->bits;
- unlock();
return result;
}
int ImuseDigiSndMgr::getChannels(void *soundHandle) {
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
assert(soundHandle && checkForProperHandle(soundHandle));
int result = ((soundStruct *)soundHandle)->channels;
- unlock();
return result;
}
bool ImuseDigiSndMgr::isEndOfRegion(void *soundHandle, int region) {
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
assert(soundHandle && checkForProperHandle(soundHandle));
assert(region >= 0 && region < ((soundStruct *)soundHandle)->numRegions);
bool result = ((soundStruct *)soundHandle)->endFlag;
- unlock();
return result;
}
int ImuseDigiSndMgr::getNumRegions(void *soundHandle) {
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
assert(soundHandle && checkForProperHandle(soundHandle));
int result = ((soundStruct *)soundHandle)->numRegions;
- unlock();
return result;
}
int ImuseDigiSndMgr::getNumJumps(void *soundHandle) {
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
assert(soundHandle && checkForProperHandle(soundHandle));
int result = ((soundStruct *)soundHandle)->numJumps;
- unlock();
return result;
}
int ImuseDigiSndMgr::getNumMarkers(void *soundHandle) {
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
assert(soundHandle && checkForProperHandle(soundHandle));
int result = ((soundStruct *)soundHandle)->numMarkers;
- unlock();
return result;
}
int ImuseDigiSndMgr::getJumpIdByRegion(void *soundHandle, int number) {
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
assert(soundHandle && checkForProperHandle(soundHandle));
assert(number >= 0 && number < ((soundStruct *)soundHandle)->numRegions);
for (int l = 0; l < ((soundStruct *)soundHandle)->numJumps; l++) {
- if (((soundStruct *)soundHandle)->jump[number].offset == ((soundStruct *)soundHandle)->region[l].offset)
- unlock();
+ if (((soundStruct *)soundHandle)->jump[number].offset == ((soundStruct *)soundHandle)->region[l].offset) {
return l;
+ }
}
- unlock();
return -1;
}
int ImuseDigiSndMgr::getJumpDestRegionId(void *soundHandle, int number) {
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
assert(soundHandle && checkForProperHandle(soundHandle));
assert(number >= 0 && number < ((soundStruct *)soundHandle)->numJumps);
for (int l = 0; l < ((soundStruct *)soundHandle)->numRegions; l++) {
if (((soundStruct *)soundHandle)->jump[number].dest == ((soundStruct *)soundHandle)->region[l].offset) {
- unlock();
return l;
}
}
- unlock();
return -1;
}
int ImuseDigiSndMgr::getJumpHookId(void *soundHandle, int number) {
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
assert(soundHandle && checkForProperHandle(soundHandle));
assert(number >= 0 && number < ((soundStruct *)soundHandle)->numJumps);
int result = ((soundStruct *)soundHandle)->jump[number].hookId;
- unlock();
return result;
}
int ImuseDigiSndMgr::getJumpFade(void *soundHandle, int number) {
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
assert(soundHandle && checkForProperHandle(soundHandle));
assert(number >= 0 && number < ((soundStruct *)soundHandle)->numJumps);
- unlock();
return ((soundStruct *)soundHandle)->jump[number].fadeDelay;
}
char *ImuseDigiSndMgr::getMarker(void *soundHandle, int number) {
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
assert(soundHandle && checkForProperHandle(soundHandle));
assert(number >= 0 && number < ((soundStruct *)soundHandle)->numMarkers);
char *result = (char *)(((soundStruct *)soundHandle)->marker[number].name);
- unlock();
return result;
}
int32 ImuseDigiSndMgr::getDataFromRegion(void *soundHandle, int region, byte **buf, int32 offset, int32 size) {
Common::StackLock tmpLock(_mutex);
- ImuseDigiSndMgr::lock();
assert(soundHandle && checkForProperHandle(soundHandle));
assert(buf && offset >= 0 && size >= 0);
assert(region >= 0 && region < ((soundStruct *)soundHandle)->numRegions);
@@ -455,7 +402,6 @@
memcpy(*buf, ptr + start + offset + header_size, size);
}
- unlock();
return size;
}
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm verbs.cpp,1.89,1.90
- Next message: [Scummvm-cvs-logs] CVS: scummvm/queen graphics.cpp,1.69,1.70 logic.cpp,1.159,1.160 logic.h,1.102,1.103 structs.h,1.30,1.31
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list