bool LLAudioChannel::updateBuffer() { if (!mCurrentSourcep) { // This channel isn't associated with any source, nothing // to be updated return false; } // Initialize the channel's gain setting for this sound. if(gAudiop) { setSecondaryGain(gAudiop->getSecondaryGain(mCurrentSourcep->getType())); } LLAudioBuffer *bufferp = mCurrentSourcep->getCurrentBuffer(); //This buffer is still in use, so mark it as such, and reset the use timer. if (bufferp) { bufferp->mLastUseTimer.reset(); bufferp->mInUse = true; } //Return true if the buffer changed and is not null. return bufferp != mCurrentBufferp && !!(mCurrentBufferp = bufferp); }
bool LLAudioChannel::updateBuffer() { if (!mCurrentSourcep) { // This channel isn't associated with any source, nothing // to be updated return false; } // Initialize the channel's gain setting for this sound. if(gAudiop) { setSecondaryGain(gAudiop->getSecondaryGain(mCurrentSourcep->getType())); } LLAudioBuffer *bufferp = mCurrentSourcep->getCurrentBuffer(); if (bufferp == mCurrentBufferp) { if (bufferp) { // The source hasn't changed what buffer it's playing bufferp->mLastUseTimer.reset(); bufferp->mInUse = true; } return false; } // // The source changed what buffer it's playing. We need to clean up // the existing channel // LLAudioSource* source = mCurrentSourcep; cleanup(); mCurrentSourcep = source; mCurrentSourcep->setChannel(this); llassert(mCurrentBufferp == NULL); mCurrentBufferp = bufferp; if (bufferp) { bufferp->mLastUseTimer.reset(); bufferp->mInUse = true; } if (!mCurrentBufferp) { // There's no new buffer to be played, so we just abort. return false; } return true; }
bool LLAudioChannel::updateBuffer() { if (!gAudiop) { LL_WARNS("AudioEngine") << "LLAudioEngine instance doesn't exist!" << LL_ENDL; return false; } if (!mCurrentSourcep) { // This channel isn't associated with any source, nothing // to be updated return false; } // Initialize the channel's gain setting for this sound. setSecondaryGain(gAudiop->getSecondaryGain(mCurrentSourcep->getType())); LLAudioBuffer *bufferp = mCurrentSourcep->getCurrentBuffer(); if (bufferp == mCurrentBufferp) { if (bufferp) { // The source hasn't changed what buffer it's playing bufferp->mLastUseTimer.reset(); bufferp->mInUse = true; } return false; } // // The source changed what buffer it's playing. We need to clean up // the existing channel // cleanup(); mCurrentBufferp = bufferp; if (bufferp) { bufferp->mLastUseTimer.reset(); bufferp->mInUse = true; } if (!mCurrentBufferp) { // There's no new buffer to be played, so we just abort. return false; } return true; }