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); } }