diff options
| -rw-r--r-- | engines/kyra/sound.cpp | 4 | ||||
| -rw-r--r-- | engines/kyra/sound.h | 7 | ||||
| -rw-r--r-- | engines/touche/resource.cpp | 11 | ||||
| -rw-r--r-- | sound/flac.cpp | 22 | ||||
| -rw-r--r-- | sound/flac.h | 9 | ||||
| -rw-r--r-- | sound/mp3.cpp | 17 | ||||
| -rw-r--r-- | sound/mp3.h | 9 | ||||
| -rw-r--r-- | sound/vorbis.cpp | 17 | ||||
| -rw-r--r-- | sound/vorbis.h | 9 | 
9 files changed, 18 insertions, 87 deletions
| diff --git a/engines/kyra/sound.cpp b/engines/kyra/sound.cpp index 8deed22091..1d2ff2e512 100644 --- a/engines/kyra/sound.cpp +++ b/engines/kyra/sound.cpp @@ -61,7 +61,9 @@ void Sound::voicePlay(const char *file) {  		if (!_compressHandle.isOpen())  			continue; -		_currentVocFile = _supportedCodes[i].streamFunc(&_compressHandle, fileSize); +		Common::MemoryReadStream *tmp = _compressHandle.readStream(fileSize); +		assert(tmp); +		_currentVocFile = _supportedCodes[i].streamFunc(tmp, true, 0, 0, 1);  		found = true;  		break;  	} diff --git a/engines/kyra/sound.h b/engines/kyra/sound.h index 28a9521112..b6c06b493b 100644 --- a/engines/kyra/sound.h +++ b/engines/kyra/sound.h @@ -109,7 +109,12 @@ private:  	struct SpeechCodecs {  		const char *fileext; -		Audio::AudioStream *(*streamFunc)(Common::File*, uint32); +		Audio::AudioStream *(*streamFunc)( +			Common::SeekableReadStream *stream, +			bool disposeAfterUse, +			uint32 startTime, +			uint32 duration, +			uint numLoops);  	};  	static const SpeechCodecs _supportedCodes[]; diff --git a/engines/touche/resource.cpp b/engines/touche/resource.cpp index 585e70c534..f9f2938502 100644 --- a/engines/touche/resource.cpp +++ b/engines/touche/resource.cpp @@ -44,7 +44,12 @@ enum {  struct CompressedSpeechFile {  	const char *filename; -	Audio::AudioStream *(*makeStream)(Common::File *file, uint32 size); +	Audio::AudioStream *(*makeStream)( +			Common::SeekableReadStream *stream, +			bool disposeAfterUse, +			uint32 startTime, +			uint32 duration, +			uint numLoops);  };  static const CompressedSpeechFile compressedSpeechFilesTable[] = { @@ -656,7 +661,9 @@ void ToucheEngine::res_loadSpeechSegment(int num) {  				return;  			}  			_fSpeech[0].seek(offs); -			stream = (compressedSpeechFilesTable[_compressedSpeechData].makeStream)(&_fSpeech[0], size); +			Common::MemoryReadStream *tmp = _fSpeech[0].readStream(size); +			assert(tmp); +			stream = (compressedSpeechFilesTable[_compressedSpeechData].makeStream)(tmp, true, 0, 0, 1);  		}  		if (stream) {  			_speechPlaying = true; diff --git a/sound/flac.cpp b/sound/flac.cpp index 2093108fb8..6080509a0f 100644 --- a/sound/flac.cpp +++ b/sound/flac.cpp @@ -734,28 +734,6 @@ void FlacInputStream::callWrapError(const ::FLAC__SeekableStreamDecoder *decoder  #pragma mark - -AudioStream *makeFlacStream(File *file, uint32 size) { -	assert(file); - -	// FIXME: For now, just read the whole data into memory, and be done -	// with it. Of course this is in general *not* a nice thing to do... - -	// If no size was specified, read the whole remainder of the file -	if (!size) -		size = file->size() - file->pos(); - -	// Read 'size' bytes of data into a MemoryReadStream -	Common::MemoryReadStream *stream = file->readStream(size); - -	// .. and create an MP3InputStream from all this -	FlacInputStream *input = new FlacInputStream(stream, true); -	if (!input->isStreamDecoderReady()) { -		delete input; -		return 0; -	} -	return input; -} -  AudioStream *makeFlacStream(  	Common::SeekableReadStream *stream,  	bool disposeAfterUse, diff --git a/sound/flac.h b/sound/flac.h index a949ffdf6a..b95f41d007 100644 --- a/sound/flac.h +++ b/sound/flac.h @@ -41,15 +41,6 @@ namespace Audio {  class AudioStream;  /** - * Create a new AudioStream from the FLAC data in the given - * file. If you only want to play part of that file, then seek - * to the start position in file before passing it to this - * factory function, and specify the appropriate size. - */ -AudioStream *makeFlacStream(Common::File *file, uint32 size); - - -/**   * Create a new AudioStream from the FLAC data in the given stream.   * Allows for looping (which is why we require a SeekableReadStream),   * and specifying only a portion of the data to be played, based  diff --git a/sound/mp3.cpp b/sound/mp3.cpp index 642c2ba90a..16ea2d2834 100644 --- a/sound/mp3.cpp +++ b/sound/mp3.cpp @@ -302,23 +302,6 @@ int MP3InputStream::readBuffer(int16 *buffer, const int numSamples) {  #pragma mark - -AudioStream *makeMP3Stream(Common::File *file, uint32 size) { -	assert(file); - -	// FIXME: For now, just read the whole data into memory, and be done -	// with it. Of course this is in general *not* a nice thing to do... - -	// If no size was specified, read the whole remainder of the file -	if (!size) -		size = file->size() - file->pos(); - -	// Read 'size' bytes of data into a MemoryReadStream -	Common::MemoryReadStream *stream = file->readStream(size); - -	// .. and create an MP3InputStream from all this -	return new MP3InputStream(stream, true); -} -  AudioStream *makeMP3Stream(  	Common::SeekableReadStream *stream,  	bool disposeAfterUse, diff --git a/sound/mp3.h b/sound/mp3.h index 17c521ef37..ad66666b00 100644 --- a/sound/mp3.h +++ b/sound/mp3.h @@ -41,15 +41,6 @@ namespace Audio {  class AudioStream;  /** - * Create a new AudioStream from the MP3 data in the given - * file. If you only want to play part of that file, then seek - * to the start position in file before passing it to this - * factory function, and specify the appropriate size. - */ -AudioStream *makeMP3Stream(Common::File *file, uint32 size); - - -/**   * Create a new AudioStream from the MP3 data in the given stream.   * Allows for looping (which is why we require a SeekableReadStream),   * and specifying only a portion of the data to be played, based  diff --git a/sound/vorbis.cpp b/sound/vorbis.cpp index be15039aca..668cdf4fc7 100644 --- a/sound/vorbis.cpp +++ b/sound/vorbis.cpp @@ -266,23 +266,6 @@ void VorbisInputStream::refill() {  #pragma mark - -AudioStream *makeVorbisStream(Common::File *file, uint32 size) { -	assert(file); - -	// FIXME: For now, just read the whole data into memory, and be done -	// with it. Of course this is in general *not* a nice thing to do... - -	// If no size was specified, read the whole remainder of the file -	if (!size) -		size = file->size() - file->pos(); - -	// Read 'size' bytes of data into a MemoryReadStream -	Common::MemoryReadStream *stream = file->readStream(size); - -	// .. and create a VorbisInputStream from all this -	return new VorbisInputStream(stream, true); -} -  AudioStream *makeVorbisStream(  	Common::SeekableReadStream *stream,  	bool disposeAfterUse, diff --git a/sound/vorbis.h b/sound/vorbis.h index 03d2496fe8..98430e6aaa 100644 --- a/sound/vorbis.h +++ b/sound/vorbis.h @@ -41,15 +41,6 @@ namespace Audio {  class AudioStream;  /** - * Create a new AudioStream from the Ogg Vorbis data in the given - * file. If you only want to play part of that file, then seek - * to the start position in file before passing it to this - * factory function, and specify the appropriate size. - */ -AudioStream *makeVorbisStream(Common::File *file, uint32 size); - - -/**   * Create a new AudioStream from the Ogg Vorbis data in the given stream.   * Allows for looping (which is why we require a SeekableReadStream),   * and specifying only a portion of the data to be played, based  | 
