diff options
Diffstat (limited to 'sound/mixer.h')
-rw-r--r-- | sound/mixer.h | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/sound/mixer.h b/sound/mixer.h index 528a17c6c3..500a35e4c7 100644 --- a/sound/mixer.h +++ b/sound/mixer.h @@ -37,6 +37,7 @@ class OSystem; namespace Audio { class AudioStream; +class RewindableAudioStream; class SeekableAudioStream; class Channel; class Mixer; @@ -179,10 +180,41 @@ public: * @param type the type (voice/sfx/music) of the stream * @param handle a SoundHandle which can be used to reference and control * the stream via suitable mixer methods + * @param input the actual RewindableAudioStream to be played + * @param loopCount how often the data shall be looped (0 = infinite) + * @param id a unique id assigned to this stream + * @param volume the volume with which to play the sound, ranging from 0 to 255 + * @param balance the balance with which to play the sound, ranging from -128 to 127 + * @param autofreeStream a flag indicating whether the stream should be + * freed after playback finished + * @param permanent a flag indicating whether a plain stopAll call should + * not stop this particular stream + * @param reverseStereo a flag indicating whether left and right channels shall be swapped + */ + void playInputStreamLooping( + SoundType type, + SoundHandle *handle, + RewindableAudioStream *input, + uint loopCount, + int id = -1, byte volume = kMaxChannelVolume, int8 balance = 0, + bool autofreeStream = true, + bool permanent = false, + bool reverseStereo = false); + + /** + * Start playing the given audio input stream with looping. + * + * Note that the sound id assigned below is unique. At most one stream + * with a given id can play at any given time. Trying to play a sound + * with an id that is already in use causes the new sound to be not played. + * + * @param type the type (voice/sfx/music) of the stream + * @param handle a SoundHandle which can be used to reference and control + * the stream via suitable mixer methods * @param input the actual SeekableAudioStream to be played * @param loopCount how often the data shall be looped (0 = infinite) - * @param loopStart the (optional) time offset from which to start playback - * @param loopEnd the (optional) time offset where the loop should end + * @param loopStart the time offset from which to start playback + * @param loopEnd the time offset where the loop should end * @param id a unique id assigned to this stream * @param volume the volume with which to play the sound, ranging from 0 to 255 * @param balance the balance with which to play the sound, ranging from -128 to 127 @@ -192,16 +224,16 @@ public: * not stop this particular stream * @param reverseStereo a flag indicating whether left and right channels shall be swapped */ - virtual void playInputStreamLooping( + void playInputStreamLooping( SoundType type, SoundHandle *handle, SeekableAudioStream *input, uint loopCount, - Timestamp loopStart = Timestamp(0, 1000), Timestamp loopEnd = Timestamp(0, 1000), + Timestamp loopStart, Timestamp loopEnd, int id = -1, byte volume = kMaxChannelVolume, int8 balance = 0, bool autofreeStream = true, bool permanent = false, - bool reverseStereo = false) = 0; + bool reverseStereo = false); /** * Stop all currently playing sounds. |