AlphaSynth.NAudio.NAudioSynthOutput.Read C# (CSharp) Method

Read() public method

public Read ( float buffer, int offset, int count ) : int
buffer float
offset int
count int
return int
        public override int Read(float[] buffer, int offset, int count)
        {
            if (_circularBuffer.Count < count)
            {
                if (_finished)
                {
                    if (Finished != null) Finished();
                    Stop();
                }
            }
            else
            {
                var read = new SampleArray(count);
                _circularBuffer.Read(read, 0, read.Length);

                for (int i = 0; i < count; i++)
                {
                    buffer[offset + i] = read[i];
                }

                var samples = count/2.0;
                _currentTime += (samples / SampleRate) * 1000 * _playbackSpeed;

            }

            if (PositionChanged != null)
            {
                PositionChanged((int)_currentTime);
            }

            if (!_finished)
            {
                RequestBuffers();
            }

            return count;
        }