Exemple #1
0
        private void RaiseDataAvailable(WaveInBuffer buffer)
        {
            var handler = DataAvailable;

            if (handler != null)
            {
                handler(this, new WaveInEventArgs(buffer.Data, buffer.BytesRecorded));
            }
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
 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);
            }
        }