当前位置: 首页>>代码示例>>C++>>正文


C++ LLAudioData::updateLoadState方法代码示例

本文整理汇总了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();
		}
	}
}
开发者ID:DamianZhaoying,项目名称:SingularityViewer,代码行数:34,代码来源:llaudioengine.cpp

示例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();
		}
	}
}
开发者ID:Apelsin,项目名称:EffervescenceViewer,代码行数:42,代码来源:llaudioengine.cpp


注:本文中的LLAudioData::updateLoadState方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。