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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Tue Jan 19 12:20:58 CET 2010


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

Log Message:
-----------
Remove loop start/end params from Mixer::playRaw; convert some code from Mixer::playRaw to Mixer::playInputStream

Modified Paths:
--------------
    scummvm/trunk/engines/draci/sound.cpp
    scummvm/trunk/engines/m4/sound.cpp
    scummvm/trunk/engines/scumm/sound.cpp
    scummvm/trunk/engines/sky/sound.cpp
    scummvm/trunk/engines/sword1/sound.cpp
    scummvm/trunk/sound/mixer.cpp
    scummvm/trunk/sound/mixer.h
    scummvm/trunk/sound/mixer_intern.h

Modified: scummvm/trunk/engines/draci/sound.cpp
===================================================================
--- scummvm/trunk/engines/draci/sound.cpp	2010-01-19 11:19:53 UTC (rev 47374)
+++ scummvm/trunk/engines/draci/sound.cpp	2010-01-19 11:20:58 UTC (rev 47375)
@@ -35,6 +35,7 @@
 
 #include "sound/audiostream.h"
 #include "sound/mixer.h"
+#include "sound/raw.h"
 
 namespace Draci {
 
@@ -203,8 +204,8 @@
 				Audio::Mixer::kSpeechSoundType : Audio::Mixer::kSFXSoundType;
 
 	// Don't use DisposeAfterUse::YES, because our caching system deletes samples by itself.
-	_mixer->playRaw(soundType, handle, buffer._data,
-			buffer._length, DisposeAfterUse::NO, buffer._frequency, flags, -1, volume);
+	Audio::AudioStream *stream = Audio::makeRawMemoryStream(buffer._data, buffer._length, DisposeAfterUse::NO, buffer._frequency, flags, 0, 0);
+	_mixer->playInputStream(soundType, handle, stream, -1, volume);
 }
 
 void Sound::playSound(const SoundSample *buffer, int volume, bool loop) {

Modified: scummvm/trunk/engines/m4/sound.cpp
===================================================================
--- scummvm/trunk/engines/m4/sound.cpp	2010-01-19 11:19:53 UTC (rev 47374)
+++ scummvm/trunk/engines/m4/sound.cpp	2010-01-19 11:20:58 UTC (rev 47375)
@@ -27,9 +27,11 @@
 #include "m4/sound.h"
 #include "m4/compression.h"
 
+#include "common/stream.h"
+
 #include "sound/audiostream.h"
 #include "sound/mixer.h"
-#include "common/stream.h"
+#include "sound/raw.h"
 
 namespace M4 {
 
@@ -96,7 +98,8 @@
 	_vm->res()->toss(soundName);
 
 	// Sound format is 8bit mono, unsigned, 11025kHz
-	_mixer->playRaw(Audio::Mixer::kSFXSoundType, &handle->handle, buffer, bufferSize, DisposeAfterUse::YES, 11025, flags, -1, volume);
+	Audio::AudioStream *stream = Audio::makeRawMemoryStream(buffer, bufferSize, DisposeAfterUse::YES, 11025, flags, 0, 0);
+	_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &handle->handle, stream, -1, volume);
 }
 
 void Sound::pauseSound() {
@@ -139,7 +142,7 @@
 	SndHandle *handle = getHandle();
 	byte *buffer;
 
-	buffer = new byte[soundStream->size()];
+	buffer = (byte *)malloc(soundStream->size());
 	soundStream->read(buffer, soundStream->size());
 
 	handle->type = kEffectHandle;
@@ -148,7 +151,8 @@
 	_vm->res()->toss(soundName);
 
 	// Voice format is 8bit mono, unsigned, 11025kHz
-	_mixer->playRaw(Audio::Mixer::kSFXSoundType, &handle->handle, buffer, soundStream->size(), DisposeAfterUse::YES, 11025, flags, -1, volume);
+	Audio::AudioStream *stream = Audio::makeRawMemoryStream(buffer, soundStream->size(), DisposeAfterUse::YES, 11025, flags);
+	_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &handle->handle, stream, -1, volume);
 }
 
 void Sound::pauseVoice() {
@@ -264,9 +268,10 @@
 				   buffer, _dsrFile.dsrEntries[soundIndex]->uncompSize);
 
 	// Play sound
-	_mixer->playRaw(Audio::Mixer::kSFXSoundType, &handle->handle, buffer,
+	Audio::AudioStream *stream = Audio::makeRawMemoryStream(buffer,
 					_dsrFile.dsrEntries[soundIndex]->uncompSize, DisposeAfterUse::YES,
-					_dsrFile.dsrEntries[soundIndex]->frequency, flags, -1, volume);
+					_dsrFile.dsrEntries[soundIndex]->frequency, flags, 0, 0);
+	_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &handle->handle, stream, -1, volume);
 
 	/*
 	// Dump the sound file

Modified: scummvm/trunk/engines/scumm/sound.cpp
===================================================================
--- scummvm/trunk/engines/scumm/sound.cpp	2010-01-19 11:19:53 UTC (rev 47374)
+++ scummvm/trunk/engines/scumm/sound.cpp	2010-01-19 11:20:58 UTC (rev 47375)
@@ -41,6 +41,7 @@
 #include "sound/mididrv.h"
 #include "sound/mixer.h"
 #include "sound/mp3.h"
+#include "sound/raw.h"
 #include "sound/voc.h"
 #include "sound/vorbis.h"
 #include "sound/wave.h"
@@ -159,7 +160,8 @@
 
 void Sound::playSound(int soundID) {
 	byte *ptr;
-	char *sound;
+	byte *sound;
+	Audio::AudioStream *stream;
 	int size = -1;
 	int rate;
 	byte flags = Audio::Mixer::FLAG_UNSIGNED;
@@ -199,7 +201,7 @@
 		ptr += 0x72;
 
 		// Allocate a sound buffer, copy the data into it, and play
-		sound = (char *)malloc(size);
+		sound = (byte *)malloc(size);
 		memcpy(sound, ptr, size);
 		_mixer->playRaw(Audio::Mixer::kSFXSoundType, NULL, sound, size, DisposeAfterUse::YES, rate, flags, soundID);
 	}
@@ -221,7 +223,7 @@
 		ptr += 0x26;
 
 		// Allocate a sound buffer, copy the data into it, and play
-		sound = (char *)malloc(size);
+		sound = (byte *)malloc(size);
 		memcpy(sound, ptr, size);
 		_mixer->playRaw(Audio::Mixer::kSFXSoundType, NULL, sound, size, DisposeAfterUse::YES, rate, flags, soundID);
 	}
@@ -292,7 +294,7 @@
 		assert(voc_block_hdr.pack == 0);
 
 		// Allocate a sound buffer, copy the data into it, and play
-		sound = (char *)malloc(size);
+		sound = (byte *)malloc(size);
 		memcpy(sound, ptr + 6, size);
 		_mixer->playRaw(Audio::Mixer::kSFXSoundType, NULL, sound, size, DisposeAfterUse::YES, rate, flags, soundID);
 	}
@@ -334,9 +336,9 @@
 					warning("Wrong wave size in sound #%i: %i", soundID, waveSize);
 					waveSize = size;
 				}
-				sound = (char *)malloc(waveSize);
+				sound = (byte *)malloc(waveSize);
 				for (int x = 0; x < waveSize; x++) {
-					int b = *ptr++;
+					byte b = *ptr++;
 					if (b < 0x80)
 						sound[x] = 0x7F - b;
 					else
@@ -347,7 +349,8 @@
 				if (loopEnd > 0)
 					flags |= Audio::Mixer::FLAG_LOOP;
 
-				_mixer->playRaw(Audio::Mixer::kSFXSoundType, NULL, sound, waveSize, DisposeAfterUse::YES, rate, flags, soundID, 255, 0, loopStart, loopEnd);
+				stream = Audio::makeRawMemoryStream(sound, waveSize, DisposeAfterUse::YES, rate, flags, loopStart, loopEnd);
+				_mixer->playInputStream(Audio::Mixer::kSFXSoundType, NULL, stream, soundID, 255, 0);
 			}
 			break;
 		case 1:
@@ -424,7 +427,7 @@
 		assert(size);
 		
 		rate = 3579545 / READ_BE_UINT16(ptr + 20);
-		sound = (char *)malloc(size);
+		sound = (byte *)malloc(size);
 		int vol = ptr[24] * 4;
 		int loopStart = 0, loopEnd = 0;
 		int loopcount = ptr[27];
@@ -439,8 +442,8 @@
 		}
 
 		memcpy(sound, ptr + READ_BE_UINT16(ptr + 8), size);
-		_mixer->playRaw(Audio::Mixer::kSFXSoundType, NULL, sound, size, DisposeAfterUse::YES, rate,
-				flags, soundID, vol, 0, loopStart, loopEnd);
+		stream = Audio::makeRawMemoryStream(sound, size, DisposeAfterUse::YES, rate, flags, loopStart, loopEnd);
+		_mixer->playInputStream(Audio::Mixer::kSFXSoundType, NULL, stream, soundID, vol, 0);
 	}
 	else {
 

Modified: scummvm/trunk/engines/sky/sound.cpp
===================================================================
--- scummvm/trunk/engines/sky/sound.cpp	2010-01-19 11:19:53 UTC (rev 47374)
+++ scummvm/trunk/engines/sky/sound.cpp	2010-01-19 11:20:58 UTC (rev 47375)
@@ -33,6 +33,8 @@
 #include "sky/sound.h"
 #include "sky/struc.h"
 
+#include "sound/raw.h"
+
 namespace Sky {
 
 #define SOUND_FILE_BASE 60203
@@ -1115,10 +1117,13 @@
 		flags |= Audio::Mixer::FLAG_LOOP;
 	}
 
+
+	Audio::AudioStream *stream = Audio::makeRawMemoryStream(_soundData + dataOfs, dataSize, DisposeAfterUse::NO, sampleRate, flags, loopSta, loopEnd);
+
 	if (channel == 0)
-		_mixer->playRaw(Audio::Mixer::kSFXSoundType, &_ingameSound0, _soundData + dataOfs, dataSize, DisposeAfterUse::NO, sampleRate, flags, SOUND_CH0, volume, 0, loopSta, loopEnd);
+		_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_ingameSound0, stream, SOUND_CH0, volume, 0);
 	else
-		_mixer->playRaw(Audio::Mixer::kSFXSoundType, &_ingameSound1, _soundData + dataOfs, dataSize, DisposeAfterUse::NO, sampleRate, flags, SOUND_CH1, volume, 0, loopSta, loopEnd);
+		_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_ingameSound1, stream, SOUND_CH1, volume, 0);
 }
 
 void Sound::fnStartFx(uint32 sound, uint8 channel) {

Modified: scummvm/trunk/engines/sword1/sound.cpp
===================================================================
--- scummvm/trunk/engines/sword1/sound.cpp	2010-01-19 11:19:53 UTC (rev 47374)
+++ scummvm/trunk/engines/sword1/sound.cpp	2010-01-19 11:20:58 UTC (rev 47375)
@@ -38,6 +38,7 @@
 
 #include "sound/flac.h"
 #include "sound/mp3.h"
+#include "sound/raw.h"
 #include "sound/vorbis.h"
 #include "sound/wave.h"
 #include "sound/vag.h"
@@ -271,7 +272,8 @@
 							flags |= Audio::Mixer::FLAG_STEREO;
 						if (_fxList[elem->id].type == FX_LOOP)
 							flags |= Audio::Mixer::FLAG_LOOP;
-						_mixer->playRaw(Audio::Mixer::kSFXSoundType, &elem->handle, sampleData + 0x2C, size, DisposeAfterUse::NO, 11025, flags, elem->id, volume, pan, 0, 0);
+						Audio::AudioStream *stream = Audio::makeRawMemoryStream(sampleData + 0x2C, size, DisposeAfterUse::NO, 11025, flags, 0, 0);
+						_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &elem->handle, stream, elem->id, volume, pan);
 					}
 			}
 		} else

Modified: scummvm/trunk/sound/mixer.cpp
===================================================================
--- scummvm/trunk/sound/mixer.cpp	2010-01-19 11:19:53 UTC (rev 47374)
+++ scummvm/trunk/sound/mixer.cpp	2010-01-19 11:20:58 UTC (rev 47375)
@@ -224,14 +224,13 @@
 			uint32 size,
 			DisposeAfterUse::Flag autofreeBuffer,
 			uint rate, byte flags,
-			int id, byte volume, int8 balance,
-			uint32 loopStart, uint32 loopEnd) {
+			int id, byte volume, int8 balance) {
 
-	// Create the input stream
-	AudioStream *input = makeRawMemoryStream((byte *)sound, size, autofreeBuffer, rate, flags, loopStart, loopEnd);
+	// Create the audio stream
+	AudioStream *stream = makeRawMemoryStream((byte *)sound, size, autofreeBuffer, rate, flags, 0, 0);
 
 	// Play it
-	playInputStream(type, handle, input, id, volume, balance, DisposeAfterUse::YES, false, false);
+	playInputStream(type, handle, stream, id, volume, balance, DisposeAfterUse::YES, false, false);
 }
 
 void MixerImpl::playInputStream(

Modified: scummvm/trunk/sound/mixer.h
===================================================================
--- scummvm/trunk/sound/mixer.h	2010-01-19 11:19:53 UTC (rev 47374)
+++ scummvm/trunk/sound/mixer.h	2010-01-19 11:20:58 UTC (rev 47375)
@@ -133,9 +133,11 @@
 		SoundHandle *handle,
 		void *sound, uint32 size,
 		DisposeAfterUse::Flag autofreeBuffer,
-		uint rate, byte flags,
-		int id = -1, byte volume = kMaxChannelVolume, int8 balance = 0,
-		uint32 loopStart = 0, uint32 loopEnd = 0) = 0;
+		uint rate,
+		byte flags,
+		int id = -1,
+		byte volume = kMaxChannelVolume,
+		int8 balance = 0) = 0;
 
 	/**
 	 * Start playing the given audio input stream.
@@ -161,7 +163,9 @@
 		SoundType type,
 		SoundHandle *handle,
 		AudioStream *input,
-		int id = -1, byte volume = kMaxChannelVolume, int8 balance = 0,
+		int id = -1,
+		byte volume = kMaxChannelVolume,
+		int8 balance = 0,
 		DisposeAfterUse::Flag autofreeStream = DisposeAfterUse::YES,
 		bool permanent = false,
 		bool reverseStereo = false) = 0;

Modified: scummvm/trunk/sound/mixer_intern.h
===================================================================
--- scummvm/trunk/sound/mixer_intern.h	2010-01-19 11:19:53 UTC (rev 47374)
+++ scummvm/trunk/sound/mixer_intern.h	2010-01-19 11:20:58 UTC (rev 47375)
@@ -80,8 +80,7 @@
 		void *sound, uint32 size,
 		DisposeAfterUse::Flag autofreeBuffer,
 		uint rate, byte flags,
-		int id, byte volume, int8 balance,
-		uint32 loopStart, uint32 loopEnd);
+		int id, byte volume, int8 balance);
 
 	virtual void playInputStream(
 		SoundType type,


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