MCPcopy Create free account
hub / github.com/LMMS/lmms / read

Method read

src/core/RingBuffer.cpp:141–159  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

139
140
141void RingBuffer::read( sampleFrame * dst, f_cnt_t offset )
142{
143 f_cnt_t pos = ( m_position + offset ) % m_size;
144 if( pos < 0 ) { pos += m_size; }
145
146 if( pos + m_fpp <= m_size ) // we won't go over the edge so we can just memcpy here
147 {
148 memcpy( dst, & m_buffer [pos], m_fpp * sizeof( sampleFrame ) );
149 }
150 else
151 {
152 f_cnt_t first = m_size - pos;
153 f_cnt_t second = m_fpp - first;
154
155 memcpy( dst, & m_buffer [pos], first * sizeof( sampleFrame ) );
156
157 memcpy( & dst [first], m_buffer, second * sizeof( sampleFrame ) );
158 }
159}
160
161
162void RingBuffer::read( sampleFrame * dst, float offset )

Callers 3

qfileReadCallbackFunction · 0.45
~MixerMethod · 0.45

Calls 1

readFunction · 0.85

Tested by

no test coverage detected