Beispiel #1
0
        protected void SamplesCallback(IntPtr sampleBuffer, int size)
        {
            if (size == 0)
            {
                return;
            }

            if (size > 2048)
            {
                Debug.LogError("Input buffer is larger than target size!");
            }

            SampleBuffer buffer = GetEmptyBuffer();

            //Copy samples into empty buffer.
            Marshal.Copy(sampleBuffer, buffer.GetBuffer(), 0, size);

            //Set buffer to in use.
            buffer.Consume(0, size);

            //Link the buffer.
            if (this.HeadBuffer == null)
            {
                this.HeadBuffer = buffer;
            }
            else
            {
                this.HeadBuffer.Next = buffer;
                buffer.Previous      = this.HeadBuffer;
                this.HeadBuffer      = buffer;
            }
        }