void parentSigalarm(int signo) { if(readCounter()>=maxCount) kill_exit(); if(readCounter() % 2) kill(daughterPID,SIGALRM); else kill(sonPID,SIGALRM); }
qint64 QAudioInterfaceBuffer::bytesAvailable() { m_mutex.lock(); int count = writeCounter() - readCounter(); m_mutex.unlock(); if (count >= 0) return count; return 0; }
qint64 QAudioInterfaceBuffer::writeData(const char *data, qint64 len) { if (m_size <= 0 || len <= 0) { return 0; } m_mutex.lock(); int count = len; const char *pdata = data; int increment = 0; #if QT_DEBUG_SOUNDBACKEND qDebug() << QThread::currentThreadId() << (quint64)m_elapsed.elapsed() << "wr:" << len << "+" << (writeCounter() - readCounter()); #endif while (count > 0) { bool wrap = (m_writePos + count) >= m_size; if (wrap) { int block = m_size - m_writePos; memcpy(m_buffer + m_writePos, pdata, block); increment = block; count -= block; pdata += block; m_writeWrap++; m_writePos = 0; } else { memcpy(m_buffer + m_writePos, pdata, count); increment = count; count -= count; pdata += count; m_writePos = (m_writePos + increment) % m_size; } } m_mutex.unlock(); return len; }
int incrementFile() { return writeCounter(addOneTotInt(readCounter())); }