ModelViewer.Sound.SoundManager.FillBuffer C# (CSharp) 메소드

FillBuffer() 개인적인 메소드

private FillBuffer ( int bufferIdx, IPlayableStream stream ) : bool
bufferIdx int
stream IPlayableStream
리턴 bool
        private bool FillBuffer(int bufferIdx, IPlayableStream stream)
        {
            AudioBuffer buffer = this.streamBuffers[bufferIdx];
            byte[] byteBuffer = this.byteBuffers[bufferIdx];

            bool isDone;
            var dataRead = stream.GetWaveData(byteBuffer, StreamingBufferSize);
            if (dataRead > 0)
            {
                streamBuffered += dataRead;
                isDone = (streamBuffered >= streamLength);
                buffer.Flags = isDone ? BufferFlags.EndOfStream : BufferFlags.None;
                buffer.AudioBytes = dataRead;
                buffer.Context = (IntPtr)bufferIdx;
                sourceVoice.SubmitSourceBuffer(buffer);
                bufferStatus.Set(bufferIdx, true);
            } else {
                isDone = true;
            }

            return isDone;
        }