From 81a94a06444fcefa8645b26ba34a5ee0e45851db Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Tue, 5 Jan 2010 23:59:28 +0000 Subject: [PATCH] - Put the new factories for MP3, Vorbis and FLAC in place. - Marked the loop factories with loop related parameters as deprecated. svn-id: r47061 --- engines/scumm/imuse_digi/dimuse_sndmgr.cpp | 6 +++--- sound/flac.cpp | 6 ++++++ sound/flac.h | 21 +++++++++++++++--- sound/mp3.cpp | 6 ++++++ sound/mp3.h | 25 +++++++++++++++++----- sound/vorbis.cpp | 5 +++++ sound/vorbis.h | 23 ++++++++++++++++---- 7 files changed, 77 insertions(+), 15 deletions(-) diff --git a/engines/scumm/imuse_digi/dimuse_sndmgr.cpp b/engines/scumm/imuse_digi/dimuse_sndmgr.cpp index 872975854a4..bd722fe6363 100644 --- a/engines/scumm/imuse_digi/dimuse_sndmgr.cpp +++ b/engines/scumm/imuse_digi/dimuse_sndmgr.cpp @@ -704,15 +704,15 @@ int32 ImuseDigiSndMgr::getDataFromRegion(SoundDesc *soundDesc, int region, byte assert(tmp); #ifdef USE_FLAC if (soundMode == 3) - soundDesc->compressedStream = Audio::makeFlacStream(tmp, true, offsetMs); + soundDesc->compressedStream = Audio::makeFlacStream(tmp, true, offsetMs, 0, 1); #endif #ifdef USE_VORBIS if (soundMode == 2) - soundDesc->compressedStream = Audio::makeVorbisStream(tmp, true, offsetMs); + soundDesc->compressedStream = Audio::makeVorbisStream(tmp, true, offsetMs, 0, 1); #endif #ifdef USE_MAD if (soundMode == 1) - soundDesc->compressedStream = Audio::makeMP3Stream(tmp, true, offsetMs); + soundDesc->compressedStream = Audio::makeMP3Stream(tmp, true, offsetMs, 0, 1); #endif assert(soundDesc->compressedStream); } diff --git a/sound/flac.cpp b/sound/flac.cpp index 0310754374c..28db39f9f39 100644 --- a/sound/flac.cpp +++ b/sound/flac.cpp @@ -793,6 +793,12 @@ SeekableAudioStream *makeFlacStream( return input; } +SeekableAudioStream *makeFlacStream( + Common::SeekableReadStream *stream, + bool disposeAfterUse) { + return makeFlacStream(stream, disposeAfterUse, 0, 0, 1); +} + } // End of namespace Audio #endif // #ifdef USE_FLAC diff --git a/sound/flac.h b/sound/flac.h index 1eab47d015b..dd1c5dd7706 100644 --- a/sound/flac.h +++ b/sound/flac.h @@ -54,6 +54,9 @@ namespace Audio { class SeekableAudioStream; /** + * TODO: This is an deprecated interface, it is only for the transition to + * SeekableAudioStream in the engines. + * * 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 @@ -69,9 +72,21 @@ class SeekableAudioStream; SeekableAudioStream *makeFlacStream( Common::SeekableReadStream *stream, bool disposeAfterUse, - uint32 startTime = 0, - uint32 duration = 0, - uint numLoops = 1); + uint32 startTime, + uint32 duration, + uint numLoops); + +/** + * Create a new SeekableAudioStream from the FLAC data in the given stream. + * Allows for seeking (which is why we require a SeekableReadStream). + * + * @param stream the SeekableReadStream from which to read the FLAC data + * @param disposeAfterUse whether to delete the stream after use + * @return a new SeekableAudioStream, or NULL, if an error occured + */ +SeekableAudioStream *makeFlacStream( + Common::SeekableReadStream *stream, + bool disposeAfterUse); } // End of namespace Audio diff --git a/sound/mp3.cpp b/sound/mp3.cpp index faebf347e14..7c590b0ef92 100644 --- a/sound/mp3.cpp +++ b/sound/mp3.cpp @@ -425,6 +425,12 @@ SeekableAudioStream *makeMP3Stream( return new MP3InputStream(stream, disposeAfterUse, start, end, numLoops); } +SeekableAudioStream *makeMP3Stream( + Common::SeekableReadStream *stream, + bool disposeAfterUse) { + return makeMP3Stream(stream, disposeAfterUse, 0, 0, 1); +} + } // End of namespace Audio #endif // #ifdef USE_MAD diff --git a/sound/mp3.h b/sound/mp3.h index 544f4861ba2..c0245636a39 100644 --- a/sound/mp3.h +++ b/sound/mp3.h @@ -54,7 +54,10 @@ namespace Audio { class SeekableAudioStream; /** - * Create a new AudioStream from the MP3 data in the given stream. + * TODO: This is an deprecated interface, it is only for the transition to + * SeekableAudioStream in the engines. + * + * Create a new SeekableAudioStream 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 * on time offsets. @@ -64,14 +67,26 @@ class SeekableAudioStream; * @param startTime the (optional) time offset in milliseconds from which to start playback * @param duration the (optional) time in milliseconds specifying how long to play * @param numLoops how often the data shall be looped (0 = infinite) - * @return a new AudioStream, or NULL, if an error occured + * @return a new SeekableAudioStream, or NULL, if an error occured */ SeekableAudioStream *makeMP3Stream( Common::SeekableReadStream *stream, bool disposeAfterUse, - uint32 startTime = 0, - uint32 duration = 0, - uint numLoops = 1); + uint32 startTime, + uint32 duration, + uint numLoops); + +/** + * Create a new SeekableAudioStream from the MP3 data in the given stream. + * Allows for seeking (which is why we require a SeekableReadStream). + * + * @param stream the SeekableReadStream from which to read the MP3 data + * @param disposeAfterUse whether to delete the stream after use + * @return a new SeekableAudioStream, or NULL, if an error occured + */ +SeekableAudioStream *makeMP3Stream( + Common::SeekableReadStream *stream, + bool disposeAfterUse); } // End of namespace Audio diff --git a/sound/vorbis.cpp b/sound/vorbis.cpp index 629c36b3db6..2fd7c978bef 100644 --- a/sound/vorbis.cpp +++ b/sound/vorbis.cpp @@ -349,6 +349,11 @@ SeekableAudioStream *makeVorbisStream( return input; } +SeekableAudioStream *makeVorbisStream( + Common::SeekableReadStream *stream, + bool disposeAfterUse) { + return makeVorbisStream(stream, disposeAfterUse, 0, 0, 1); +} } // End of namespace Audio diff --git a/sound/vorbis.h b/sound/vorbis.h index 369cd14d015..8ac7354f1fb 100644 --- a/sound/vorbis.h +++ b/sound/vorbis.h @@ -54,6 +54,9 @@ namespace Audio { class SeekableAudioStream; /** + * TODO: This is an deprecated interface, it is only for the transition to + * SeekableAudioStream in the engines. + * * 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 @@ -64,14 +67,26 @@ class SeekableAudioStream; * @param startTime the (optional) time offset in milliseconds from which to start playback * @param duration the (optional) time in milliseconds specifying how long to play * @param numLoops how often the data shall be looped (0 = infinite) - * @return a new AudioStream, or NULL, if an error occured + * @return a new SeekableAudioStream, or NULL, if an error occured */ SeekableAudioStream *makeVorbisStream( Common::SeekableReadStream *stream, bool disposeAfterUse, - uint32 startTime = 0, - uint32 duration = 0, - uint numLoops = 1); + uint32 startTime, + uint32 duration, + uint numLoops); + +/** + * Create a new SeekableAudioStream from the Ogg Vorbis data in the given stream. + * Allows for seeking (which is why we require a SeekableReadStream). + * + * @param stream the SeekableReadStream from which to read the Ogg Vorbis data + * @param disposeAfterUse whether to delete the stream after use + * @return a new SeekableAudioStream, or NULL, if an error occured + */ +SeekableAudioStream *makeVorbisStream( + Common::SeekableReadStream *stream, + bool disposeAfterUse); } // End of namespace Audio