class AudioManager { private AudioEngine engine; private WaveBank waveBank; private SoundBank soundBank; private Cue cue = null; private List cueList = new List(); public AudioManager(AudioEngine engine, WaveBank waveBank, SoundBank soundBank) { this.engine = engine; this.waveBank = waveBank; this.soundBank = soundBank; } public void playSound(string name) { cue = soundBank.GetCue(name); cue.Play(); cueList.Add(cue); cue = null; } public void pauseSound(string name) { cue = soundBank.GetCue(name); if (!cue.IsPaused) cue.Pause(); cue = null; } public void stopAllSound() { foreach (Cue c in cueList) { c.Stop(AudioStopOptions.AsAuthored); } } public void stopOneSound(string name) { cue = soundBank.GetCue(name); if (!cue.IsStopped || !cue.IsStopping) { cue.Stop(AudioStopOptions.AsAuthored); for (int i = cueList.Count - 1; i >= 0; i--) { if (cue.Name.ToString() == name) { cueList.RemoveAt(i); return; } } } cue = null; } public void increaseSpeed(string name, float increment) { } public void increaseAllSpeed(float increment) { } public void decreaseSpeed(string name, float decrement) { } public void decreaseAllSpeed(float decrement) { } public void Update() { engine.Update(); } }