[Scummvm-cvs-logs] SF.net SVN: scummvm:[43466] scummvm/trunk/engines/saga
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Mon Aug 17 13:06:28 CEST 2009
Revision: 43466
http://scummvm.svn.sourceforge.net/scummvm/?rev=43466&view=rev
Author: thebluegr
Date: 2009-08-17 11:06:27 +0000 (Mon, 17 Aug 2009)
Log Message:
-----------
Made sound effect playing code consistent for compressed and uncompressed sounds. MemoryReadStream is used again instead of SeekableSubReadStream, as there will be issues when multiple sound effects or voices are played simultaneously
Modified Paths:
--------------
scummvm/trunk/engines/saga/sndres.cpp
scummvm/trunk/engines/saga/sound.cpp
scummvm/trunk/engines/saga/sound.h
Modified: scummvm/trunk/engines/saga/sndres.cpp
===================================================================
--- scummvm/trunk/engines/saga/sndres.cpp 2009-08-17 10:48:03 UTC (rev 43465)
+++ scummvm/trunk/engines/saga/sndres.cpp 2009-08-17 11:06:27 UTC (rev 43466)
@@ -365,9 +365,13 @@
buffer.size = soundResourceLength;
buffer.soundType = resourceType;
- buffer.soundFile = context->getFile(resourceData);
buffer.fileOffset = resourceData->offset + 9; // skip compressed sfx header: byte + uint16 + uint32 + byte + byte
+ if (!onlyHeader) {
+ buffer.buffer = (byte *)malloc(buffer.size);
+ readS.read(buffer.buffer, buffer.size);
+ }
+
result = true;
break;
default:
Modified: scummvm/trunk/engines/saga/sound.cpp
===================================================================
--- scummvm/trunk/engines/saga/sound.cpp 2009-08-17 10:48:03 UTC (rev 43465)
+++ scummvm/trunk/engines/saga/sound.cpp 2009-08-17 11:06:27 UTC (rev 43466)
@@ -91,25 +91,22 @@
_mixer->playRaw(Audio::Mixer::kSFXSoundType, handle, buffer.buffer,
buffer.size, buffer.frequency, flags, -1, volume);
} else {
- Audio::AudioStream *stream = NULL;
- Common::SeekableSubReadStream *soundStream =
- new Common::SeekableSubReadStream(buffer.soundFile, (uint32)buffer.fileOffset + 9,
- (uint32)buffer.fileOffset + buffer.size - 9);
+ Audio::AudioStream *stream = 0;
switch (buffer.soundType) {
#ifdef USE_MAD
case kSoundMP3:
- stream = Audio::makeMP3Stream(soundStream, true);
+ stream = Audio::makeMP3Stream(new Common::MemoryReadStream(buffer.buffer, buffer.size, true), true);
break;
#endif
#ifdef USE_VORBIS
case kSoundOGG:
- stream = Audio::makeVorbisStream(soundStream, true);
+ stream = Audio::makeVorbisStream(new Common::MemoryReadStream(buffer.buffer, buffer.size, true), true);
break;
#endif
#ifdef USE_FLAC
case kSoundFLAC:
- stream = Audio::makeFlacStream(soundStream, true);
+ stream = Audio::makeFlacStream(new Common::MemoryReadStream(buffer.buffer, buffer.size, true), true);
break;
#endif
default:
Modified: scummvm/trunk/engines/saga/sound.h
===================================================================
--- scummvm/trunk/engines/saga/sound.h 2009-08-17 10:48:03 UTC (rev 43465)
+++ scummvm/trunk/engines/saga/sound.h 2009-08-17 11:06:27 UTC (rev 43466)
@@ -54,7 +54,6 @@
size_t originalSize;
bool isBigEndian;
GameSoundTypes soundType;
- Common::File *soundFile;
size_t fileOffset;
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list