[Scummvm-cvs-logs] SF.net SVN: scummvm:[47376] scummvm/trunk/engines/saga/sound.cpp

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Tue Jan 19 12:21:25 CET 2010


Revision: 47376
          http://scummvm.svn.sourceforge.net/scummvm/?rev=47376&view=rev
Author:   fingolfin
Date:     2010-01-19 11:21:25 +0000 (Tue, 19 Jan 2010)

Log Message:
-----------
SAGA: Move from Mixer::playRaw to playInputStream; add FIXME regarding sounds not being looped

Modified Paths:
--------------
    scummvm/trunk/engines/saga/sound.cpp

Modified: scummvm/trunk/engines/saga/sound.cpp
===================================================================
--- scummvm/trunk/engines/saga/sound.cpp	2010-01-19 11:20:58 UTC (rev 47375)
+++ scummvm/trunk/engines/saga/sound.cpp	2010-01-19 11:21:25 UTC (rev 47376)
@@ -66,6 +66,8 @@
 void Sound::playSoundBuffer(Audio::SoundHandle *handle, SoundBuffer &buffer, int volume,
 				sndHandleType handleType, bool loop) {
 
+	Audio::AudioStream *stream = 0;
+
 	if (loop)
 		buffer.flags |= Audio::Mixer::FLAG_LOOP;
 
@@ -73,11 +75,11 @@
 				Audio::Mixer::kSpeechSoundType : Audio::Mixer::kSFXSoundType;
 
 	if (!buffer.isCompressed) {
-		_mixer->playRaw(soundType, handle, buffer.buffer,
-				buffer.size, DisposeAfterUse::YES, buffer.frequency, buffer.flags, -1, volume);
+		stream = Audio::makeRawMemoryStream(buffer.buffer, buffer.size, DisposeAfterUse::YES, buffer.frequency, buffer.flags, 0, 0);
 	} else {
-		Audio::AudioStream *stream = 0;
 
+		// TODO / FIXME: It seems we don't loop compressed audio at all, but do loop uncompressed data.
+		// Is that intentional? Seems odd...
 		switch (buffer.soundType) {
 #ifdef USE_MAD
 			case kSoundMP3:
@@ -99,10 +101,10 @@
 				warning("Unknown compression, ignoring sound");
 				break;
 		}
+	}
 
-		if (stream != NULL)
-			_mixer->playInputStream(soundType, handle, stream, -1, volume, 0, DisposeAfterUse::YES, false);
-	}
+	if (stream != NULL)
+		_mixer->playInputStream(soundType, handle, stream, -1, volume);
 }
 
 void Sound::playSound(SoundBuffer &buffer, int volume, bool loop) {


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