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

Method write

include/RemotePlugin.h:366–394  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

364 }
365
366 void write( const void * _buf, int _len )
367 {
368 if( isInvalid() || _len > SHM_FIFO_SIZE )
369 {
370 return;
371 }
372 lock();
373 while( _len > SHM_FIFO_SIZE - m_data->endPtr )
374 {
375 // if no space is left, try to move data to front
376 if( m_data->startPtr > 0 )
377 {
378 memmove( m_data->data,
379 m_data->data + m_data->startPtr,
380 m_data->endPtr - m_data->startPtr );
381 m_data->endPtr = m_data->endPtr -
382 m_data->startPtr;
383 m_data->startPtr = 0;
384 }
385 unlock();
386#ifndef LMMS_BUILD_WIN32
387 usleep( 5 );
388#endif
389 lock();
390 }
391 fastMemCpy( m_data->data + m_data->endPtr, _buf, _len );
392 m_data->endPtr += _len;
393 unlock();
394 }
395
396 volatile bool m_invalid;
397 bool m_master;

Callers

nothing calls this directly

Calls 3

isInvalidFunction · 0.85
lockFunction · 0.70
unlockFunction · 0.70

Tested by

no test coverage detected