size_t I2SDoubleBuffer::write(const void *buffer, size_t size)
{
  size_t space = availableForWrite();

  if (size > space) {
    size = space;
  }

  if (size == 0) {
    return 0;
  }

  memcpy(&_buffer[_index][_length[_index]], buffer, size);

  _length[_index] += size;

  return size;
}
示例#2
0
 void SDICameraControl::flushWrite() const {
   while (!availableForWrite()) {
     // Wait for control override bank to become ready for new data
   }
 }