AudioStreamer/AudioStreamer/BaseAudioOutput.cs

29 lines
642 B
C#
Raw Normal View History

2017-10-20 23:30:31 +02:00
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 });
}
}
}
}
}
}