private void RaiseDataAvailable(WaveInBuffer buffer) { var handler = DataAvailable; if (handler != null) { handler(this, new WaveInEventArgs(buffer.Data, buffer.BytesRecorded)); } }
private void CreateBuffers() { // Default to three buffers of 100ms each int bufferSize = BufferMilliseconds * WaveFormat.AverageBytesPerSecond / 1000; buffers = new WaveInBuffer[NumberOfBuffers]; for (int n = 0; n < buffers.Length; n++) { buffers[n] = new WaveInBuffer(waveInHandle, bufferSize); } }
private void RaiseDataAvailable(WaveInBuffer buffer) { DataAvailable?.Invoke(this, new WaveInEventArgs(buffer.Data, buffer.BytesRecorded)); }
private void AllocateBuffers(int bufferSize, int bufferCount) { FreeBuffers(); if (bufferCount > 0) { buffers = new WaveInBuffer(waveIn, bufferSize); var Prev = buffers; try { for (var i = 1; i < bufferCount; i++) { var Buf = new WaveInBuffer(waveIn, bufferSize); Prev.NextBuffer = Buf; Prev = Buf; } } finally { Prev.NextBuffer = buffers; } } }
private void SelectNextBuffer() { currentBuffer = currentBuffer == null ? buffers : currentBuffer.NextBuffer; }
private void FreeBuffers() { currentBuffer = null; if (buffers != null) { var First = buffers; buffers = null; var Current = First; do { var Next = Current.NextBuffer; Current.Dispose(); Current = Next; } while(Current != First); } }