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

Method writeAddingMultiplied

src/core/RingBuffer.cpp:249–268  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

247
248
249void RingBuffer::writeAddingMultiplied( sampleFrame * src, f_cnt_t offset, f_cnt_t length, float level )
250{
251 const f_cnt_t pos = ( m_position + offset ) % m_size;
252 //qDebug( "pos %d m_pos %d ofs %d siz %d", pos, m_position, offset, m_size );
253 if( length == 0 ) { length = m_fpp; }
254
255 if( pos + length <= m_size ) // we won't go over the edge so we can just memcpy here
256 {
257 MixHelpers::addMultiplied( & m_buffer[pos], src, level, length );
258 }
259 else
260 {
261 f_cnt_t first = m_size - pos;
262 f_cnt_t second = length - first;
263
264 MixHelpers::addMultiplied( & m_buffer[pos], src, level, first );
265
266 MixHelpers::addMultiplied( m_buffer, & src [first], level, second );
267 }
268}
269
270
271void RingBuffer::writeAddingMultiplied( sampleFrame * src, float offset, f_cnt_t length, float level )

Callers 1

processAudioBufferMethod · 0.80

Calls 1

addMultipliedFunction · 0.85

Tested by

no test coverage detected