- Put the new factories for MP3, Vorbis and FLAC in place.

- Marked the loop factories with loop related parameters as deprecated.

svn-id: r47061
This commit is contained in:
Johannes Schickel 2010-01-05 23:59:28 +00:00
parent 79ee2b0895
commit 81a94a0644
7 changed files with 77 additions and 15 deletions

View File

@ -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);
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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