XnStatus XnSensorAudioStream::NewData() { // check how many buffers we have XnInt32 nAvailbalePackets = m_buffer.nAudioWriteIndex - m_buffer.nAudioReadIndex; if (nAvailbalePackets < 0) nAvailbalePackets += m_buffer.nAudioBufferNumOfPackets; if ((XnUInt32)nAvailbalePackets * m_buffer.nAudioPacketSize >= GetReadChunkSize()) { // update last write index (the last written byte) m_pSharedHeader->nWritePacketIndex = m_buffer.nAudioWriteIndex; // take first packet timestamp NewDataAvailable(m_buffer.pAudioPacketsTimestamps[m_buffer.nAudioReadIndex], 0); } return XN_STATUS_OK; }
XnStatus XnSensorAudioStream::NewData() { XnStatus nRetVal = XN_STATUS_OK; XnDevicePrivateData* pDevicePrivateData = m_Helper.GetPrivateData(); // check how many buffers we have XnInt32 nAvailbalePackets = pDevicePrivateData->nAudioWriteIndex - pDevicePrivateData->nAudioReadIndex; if (nAvailbalePackets < 0) nAvailbalePackets += pDevicePrivateData->nAudioBufferNumOfPackets; if ((XnUInt32)nAvailbalePackets * pDevicePrivateData->nAudioPacketSize >= GetReadChunkSize()) { // update last write index (the last written byte) m_pSharedHeader->nWritePacketIndex = pDevicePrivateData->nAudioWriteIndex; // take first packet timestamp NewDataAvailable(pDevicePrivateData->pAudioPacketsTimestamps[pDevicePrivateData->nAudioReadIndex], 0); } return XN_STATUS_OK; }