using System; namespace AudioStreamer { public abstract class BaseAudioOutput : AudioOutput { public BaseAudioOutput() { } public event NewAudioAvailable NewAudioAvailable; protected void pumpAudio(Int16[] samples) { if (NewAudioAvailable != null) { if (NewAudioAvailable.GetInvocationList().Length == 1){ NewAudioAvailable.Invoke(this, samples); } else { foreach (Delegate d in NewAudioAvailable.GetInvocationList()){ Int16[] copy = new Int16[samples.Length]; Array.Copy(samples,copy,samples.Length); d.Method.Invoke(d.Target, new object[] { copy }); } } } } } }