Example #1
0
 private void PcmRead(float[] data)
 {
     Array.Copy(buffer, bufferPosition, data, 0, data.Length);
     bufferPosition += data.Length;
     if (bufferEndPosition - bufferPosition < buffer.Length * 0.5f)
     {
         BufferNeeded?.Invoke(this, EventArgs.Empty);
     }
 }
        public void Update()
        {
            int processedBuffers;

            AL.GetSource(sid, ALGetSourcei.BuffersProcessed, out processedBuffers);
            if (processedBuffers == 0)
            {
                return;
            }

            SoundSourceManager.Instance.Enqueue(AL.SourceUnqueueBuffers(sid, processedBuffers));
            pendingBufferCount -= processedBuffers;


            BufferNeeded?.Invoke(this, EventArgs.Empty);

            for (int i = MINIMUM_BUFFER_CHECK - pendingBufferCount; (i > 0) && BufferNeeded != null; i--)
            {
                BufferNeeded(this, EventArgs.Empty);
            }
        }