[Scummvm-cvs-logs] SF.net SVN: scummvm:[36093] scummvm/trunk

Kirben at users.sourceforge.net Kirben at users.sourceforge.net
Tue Jan 27 04:21:05 CET 2009


Revision: 36093
          http://scummvm.svn.sourceforge.net/scummvm/?rev=36093&view=rev
Author:   Kirben
Date:     2009-01-27 03:21:05 +0000 (Tue, 27 Jan 2009)

Log Message:
-----------
Add looping support to makeVOCStream().

Modified Paths:
--------------
    scummvm/trunk/engines/agos/sound.cpp
    scummvm/trunk/sound/voc.cpp
    scummvm/trunk/sound/voc.h

Modified: scummvm/trunk/engines/agos/sound.cpp
===================================================================
--- scummvm/trunk/engines/agos/sound.cpp	2009-01-27 03:13:13 UTC (rev 36092)
+++ scummvm/trunk/engines/agos/sound.cpp	2009-01-27 03:21:05 UTC (rev 36093)
@@ -261,11 +261,8 @@
 
 	_file->seek(_offsets[sound], SEEK_SET);
 
-	int size, rate;
-	byte *buffer = Audio::loadVOCFromStream(*_file, size, rate);
-	// TODO: Use makeVOCStream
-	assert(buffer);
-	_mixer->playRaw(type, handle, buffer, size, rate, flags | Audio::Mixer::FLAG_AUTOFREE);
+	Audio::AudioStream *stream = Audio::makeVOCStream(*_file, flags);
+	_mixer->playInputStream(type, handle, stream);
 }
 
 void RawSound::playSound(uint sound, uint loopSound, Audio::Mixer::SoundType type, Audio::SoundHandle *handle, byte flags, int vol) {

Modified: scummvm/trunk/sound/voc.cpp
===================================================================
--- scummvm/trunk/sound/voc.cpp	2009-01-27 03:13:13 UTC (rev 36092)
+++ scummvm/trunk/sound/voc.cpp	2009-01-27 03:21:05 UTC (rev 36093)
@@ -156,14 +156,14 @@
 	return loadVOCFromStream(stream, size, rate, loops, begin_loop, end_loop);
 }
 
-AudioStream *makeVOCStream(Common::ReadStream &stream) {
+AudioStream *makeVOCStream(Common::ReadStream &stream, byte flags, uint loopStart, uint loopEnd) {
 	int size, rate;
+
 	byte *data = loadVOCFromStream(stream, size, rate);
-
 	if (!data)
 		return 0;
 
-	return makeLinearInputStream(data, size, rate, Audio::Mixer::FLAG_AUTOFREE | Audio::Mixer::FLAG_UNSIGNED, 0, 0);
+	return makeLinearInputStream(data, size, rate, flags | Audio::Mixer::FLAG_AUTOFREE | Audio::Mixer::FLAG_UNSIGNED, loopStart, loopEnd);
 }
 
 

Modified: scummvm/trunk/sound/voc.h
===================================================================
--- scummvm/trunk/sound/voc.h	2009-01-27 03:13:13 UTC (rev 36092)
+++ scummvm/trunk/sound/voc.h	2009-01-27 03:21:05 UTC (rev 36093)
@@ -76,11 +76,11 @@
 /**
  * Try to load a VOC from the given seekable stream and create an AudioStream
  * from that data. Currently this function only supports uncompressed raw PCM
- * data. Looping is not supported.
+ * data. Optionally supports (infinite) looping of a portion of the data.
  *
  * This function uses loadVOCFromStream() internally.
  */
-AudioStream *makeVOCStream(Common::ReadStream &stream);
+AudioStream *makeVOCStream(Common::ReadStream &stream, byte flags = 0, uint loopStart = 0, uint loopEnd = 0);
 
 } // End of namespace Audio
 


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