void OnDataReceived(object sender, CircStream.DataReceivedEventArgs e) { CircStream cs = (CircStream)sender; if ((cs.State == CircStream.VOXStates.Active) || (cs.State == CircStream.VOXStates.Decay)) { Output.Write(e.buffer, e.index, e.count); } else if (cs.State == CircStream.VOXStates.VOX_On) { BinaryWriter output = new BinaryWriter(Output); BinaryReader input = new BinaryReader(_stream); output.Write(input.ReadBytes((int)input.BaseStream.Length)); if (VOXStarting != null) { VOXStarting.BeginInvoke(this, EventArgs.Empty, new AsyncCallback(EndCallback), VOXStarting); } } else if (cs.State == CircStream.VOXStates.VOX_Off) { Output.Flush(); if (VOXStopping != null) { VOXStopping.BeginInvoke(this, EventArgs.Empty, new AsyncCallback(EndCallback), VOXStopping); } } }
private void DestroyBuffer() { if (_stream != null) { _stream.Close(); _stream = null; } }
public VOXFilter(int SizeInBytes) { _stream = new CircStream(); _stream.SetLength(SizeInBytes); _stream.DataReceived += new EventHandler <CircStream.DataReceivedEventArgs>(OnDataReceived); }