[Scummvm-cvs-logs] scummvm master -> 80cc1700a7a3e151f25a45dcad868b4d5b62d334

Strangerke Strangerke at scummvm.org
Mon Aug 5 00:17:24 CEST 2013


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
80cc1700a7 MORTEVIELLE: Fix leak in playSong, refactor it a bit


Commit: 80cc1700a7a3e151f25a45dcad868b4d5b62d334
    https://github.com/scummvm/scummvm/commit/80cc1700a7a3e151f25a45dcad868b4d5b62d334
Author: Strangerke (strangerke at scummvm.org)
Date: 2013-08-04T15:13:57-07:00

Commit Message:
MORTEVIELLE: Fix leak in playSong, refactor it a bit

Changed paths:
    engines/mortevielle/sound.cpp
    engines/mortevielle/sound.h



diff --git a/engines/mortevielle/sound.cpp b/engines/mortevielle/sound.cpp
index 042097f..bfdadaa 100644
--- a/engines/mortevielle/sound.cpp
+++ b/engines/mortevielle/sound.cpp
@@ -185,10 +185,11 @@ void SoundManager::playNote(int frequency, int32 length) {
 }
 
 
-void SoundManager::playSong(const byte* buf, int size, int loops) {
-	Audio::AudioStream *stream = Audio::makeLoopingAudioStream(Audio::makeRawStream(buf, size, 11025 / 2, Audio::FLAG_UNSIGNED | Audio::FLAG_LITTLE_ENDIAN | Audio::FLAG_16BITS), loops);
+void SoundManager::playSong(const byte* buf, uint size, uint loops) {
+	Audio::SeekableAudioStream *raw = Audio::makeRawStream(buf, size, 11025 / 2, Audio::FLAG_UNSIGNED | Audio::FLAG_LITTLE_ENDIAN | Audio::FLAG_16BITS, DisposeAfterUse::NO);
+	Audio::AudioStream *stream = Audio::makeLoopingAudioStream(raw, loops);
 	Audio::SoundHandle songHandle;
-	_mixer->playStream(Audio::Mixer::kSFXSoundType, &songHandle, stream, -1, Audio::Mixer::kMaxChannelVolume, 0, DisposeAfterUse::NO);
+	_mixer->playStream(Audio::Mixer::kSFXSoundType, &songHandle, stream, -1, Audio::Mixer::kMaxChannelVolume, 0, DisposeAfterUse::YES);
 
 	while (_mixer->isSoundHandleActive(songHandle) && !_vm->keyPressed() && !_vm->_mouseClick && !_vm->shouldQuit())
 		;
diff --git a/engines/mortevielle/sound.h b/engines/mortevielle/sound.h
index ee6aaff..1f9e0d9 100644
--- a/engines/mortevielle/sound.h
+++ b/engines/mortevielle/sound.h
@@ -106,7 +106,7 @@ public:
 	void playNote(int frequency, int32 length);
 
 	int decodeMusic(const byte *PSrc, byte *PDest, int size);
-	void playSong(const byte *buf, int size, int loops = 1);
+	void playSong(const byte *buf, uint usize, uint loops);
 
 	void litph(tablint &t, int typ, int tempo);
 };






More information about the Scummvm-git-logs mailing list