aboutsummaryrefslogtreecommitdiff
path: root/sound/mixer.h
diff options
context:
space:
mode:
Diffstat (limited to 'sound/mixer.h')
-rw-r--r--sound/mixer.h42
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.