diff options
| author | Strangerke | 2011-09-06 21:58:41 +0200 | 
|---|---|---|
| committer | Strangerke | 2011-09-06 21:58:41 +0200 | 
| commit | 85d10fe6c7fb249bdb0e349fba5f4d46dce464e4 (patch) | |
| tree | 95e4467c2d634ebef1f3bfe3f7e22211d49b692a | |
| parent | e46c613e9a06828ede0001b8e4e7db1bef65d433 (diff) | |
| download | scummvm-rg350-85d10fe6c7fb249bdb0e349fba5f4d46dce464e4.tar.gz scummvm-rg350-85d10fe6c7fb249bdb0e349fba5f4d46dce464e4.tar.bz2 scummvm-rg350-85d10fe6c7fb249bdb0e349fba5f4d46dce464e4.zip | |
CGE: Handle properly looping samples
| -rw-r--r-- | engines/cge/snddrv.h | 2 | ||||
| -rw-r--r-- | engines/cge/sound.cpp | 6 | 
2 files changed, 5 insertions, 3 deletions
| diff --git a/engines/cge/snddrv.h b/engines/cge/snddrv.h index 987582190c..93793de2fe 100644 --- a/engines/cge/snddrv.h +++ b/engines/cge/snddrv.h @@ -39,7 +39,7 @@ struct SmpInfo {  	const uint8  *_saddr;                              // address  	uint16  _slen;                                     // length  	uint16  _span;                                     // left/right pan (0-15) -	int     _sflag;                                    // flag +	int     _counter;                                  // number of time the sample should be played  };  // ****************************************************** diff --git a/engines/cge/sound.cpp b/engines/cge/sound.cpp index 340a6c644c..fb0549ac22 100644 --- a/engines/cge/sound.cpp +++ b/engines/cge/sound.cpp @@ -32,6 +32,7 @@  #include "common/config-manager.h"  #include "common/memstream.h"  #include "audio/decoders/raw.h" +#include "audio/audiostream.h"  namespace CGE { @@ -68,7 +69,7 @@ void Sound::play(DataCk *wav, int pan) {  		_smpinf._saddr = &*(wav->addr());  		_smpinf._slen = (uint16)wav->size();  		_smpinf._span = pan; -		_smpinf._sflag = getRepeat(); +		_smpinf._counter = getRepeat();  		sndDigiStart(&_smpinf);  	}  } @@ -80,7 +81,8 @@ void Sound::sndDigiStart(SmpInfo *PSmpInfo) {  	_audioStream = Audio::makeWAVStream(stream, DisposeAfterUse::YES);  	// Start the new sound -	_vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &_soundHandle, _audioStream); +	_vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &_soundHandle,  +		Audio::makeLoopingAudioStream(_audioStream, (uint)PSmpInfo->_counter));  }  void Sound::stop() { | 
