DSPUtil.WaveReader.Next C# (CSharp) Method

Next() private method

private Next ( BinaryReader rdr, bool &more ) : ISample
rdr System.IO.BinaryReader
more bool
return ISample
        private ISample Next(BinaryReader rdr, out bool more)
        {
            try
            {
                if (_nc == 2)
                {
                    if (_pos < _max)
                    {
                        _pos++;
                        double a = NextDouble(rdr);
                        double b = NextDouble(rdr);
                        more = true;
                        _current = new Sample2(a, b);
                    }
                    else
                    {
                        more = false;
                        _current = null;
                    }
                }
                else
                {
                    if (_pos < _max)
                    {
                        _pos++;
                        ISample sample = new Sample(_nc);
                        for (int n = 0; n < _nc; n++)
                        {
                            sample[n] = NextDouble(rdr);
                        }
                        more = true;
                        _current = sample;
                    }
                    else
                    {
                        more = false;
                        _current = null;
                    }
                }
            }
            catch (EndOfStreamException)
            {
                Trace.WriteLine("End of input ({0}) at {1}.", streamName, _pos);
                more = false;
                _current = null;
            }
            catch (IOException e)
            {
                Trace.WriteLine("IO error ({0}) at {1}: {2}", streamName, _pos, e.Message);
                more = false;
                _current = null;
            }
            return _current;
        }