本文整理汇总了C++中LLAudioData::updateLoadState方法的典型用法代码示例。如果您正苦于以下问题:C++ LLAudioData::updateLoadState方法的具体用法?C++ LLAudioData::updateLoadState怎么用?C++ LLAudioData::updateLoadState使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LLAudioData
的用法示例。
在下文中一共展示了LLAudioData::updateLoadState方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: assetCallback
// static
void LLAudioEngine::assetCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType type, void *user_data, S32 result_code, LLExtStat ext_status)
{
if(!gAudiop)
return;
LLAudioData *adp = gAudiop->getAudioData(uuid);
if (result_code)
{
LL_INFOS("AudioEngine") << "Boom, error in audio file transfer: " << LLAssetStorage::getErrorString( result_code ) << " (" << result_code << ")" << LL_ENDL;
// Need to mark data as bad to avoid constant rerequests.
if (adp)
{
adp->setLoadState(LLAudioData::STATE_LOAD_ERROR);
}
}
else
{
if (!adp)
{
// Should never happen
LL_WARNS("AudioEngine") << "Got asset callback without audio data for " << uuid << LL_ENDL;
}
else
{
// LL_INFOS("AudioEngine") << "Got asset callback with good audio data for " << uuid << ", making decode request" << LL_ENDL;
adp->setLoadState(LLAudioData::STATE_LOAD_REQ_DECODE);
//Immediate decode.
adp->updateLoadState();
}
}
}
示例2: update
void LLAudioSource::update()
{
if(mCorrupted)
{
return ; //no need to update
}
// If data is queued up and we aren't playing it, shuffle it to current and try to load it.
if(isQueueSounds() && mPlayedOnce && mQueuedDatap && !mChannelp)
{
mCurrentDatap = mQueuedDatap;
mQueuedDatap = NULL;
//Make sure this source looks like its brand new again to prevent removal.
mPlayedOnce = false;
mAgeTimer.reset();
}
LLAudioData *adp = getCurrentData();
if (adp && !adp->getBuffer())
{
if(adp->getLoadState() == LLAudioData::STATE_LOAD_ERROR)
{
LL_WARNS("AudioEngine") << "Marking LLAudioSource corrupted for " << adp->getID() << LL_ENDL;
mCorrupted = true ;
}
else if(adp->getLoadState() == LLAudioData::STATE_LOAD_READY)
{
// Update the audio buffer first - load a sound if we have it.
// Note that this could potentially cause us to waste time updating buffers
// for sounds that actually aren't playing, although this should be mitigated
// by the fact that we limit the number of buffers, and we flush buffers based
// on priority.
adp->load(); //If it fails, just try again next update.
}
else
{
//The sound wasn't preloaded yet... so we must kick off the process.
adp->updateLoadState();
}
}
}