AcoustID.Chromaprint.FFT.Consume C# (CSharp) Method

Consume() public method

public Consume ( short input, int length ) : void
input short
length int
return void
        public void Consume(short[] input, int length)
        {
            // Special case, just pre-filling the buffer
            if (m_buffer_offset + length < m_frame_size)
            {
                Array.Copy(input, 0, m_buffer, m_buffer_offset, length);
                m_buffer_offset += length;
                return;
            }

            // Apply FFT on the available data
            CombinedBuffer combined_buffer = new CombinedBuffer(m_buffer, m_buffer_offset, input, length);

            while (combined_buffer.Size >= m_frame_size)
            {
                combined_buffer.Read(m_input, 0, m_frame_size);
                m_lib.ComputeFrame(m_input, m_frame);

                m_consumer.Consume(m_frame);
                combined_buffer.Shift(m_increment);
            }

            // Copy the remaining input data to the internal buffer
            combined_buffer.Flush(m_buffer);

            m_buffer_offset = combined_buffer.Size;
        }
    }