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


C++ SoundSource::IsValid方法代码示例

本文整理汇总了C++中SoundSource::IsValid方法的典型用法代码示例。如果您正苦于以下问题:C++ SoundSource::IsValid方法的具体用法?C++ SoundSource::IsValid怎么用?C++ SoundSource::IsValid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SoundSource的用法示例。


在下文中一共展示了SoundSource::IsValid方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: StartThread

void CSound::StartThread(int maxSounds)
{
#if BOOST_VERSION >= 103500
	try
	{
#endif
		{
			boost::mutex::scoped_lock lck(soundMutex);

			// Generate sound sources
			for (int i = 0; i < maxSounds; i++)
			{
				SoundSource* thenewone = new SoundSource();
				if (thenewone->IsValid())
				{
					sources.push_back(thenewone);
				}
				else
				{
					maxSounds = std::max(i-1,0);
					LogObject(LOG_SOUND) << "Your hardware/driver can not handle more than " << maxSounds << " soundsources";
					delete thenewone;
					break;
				}
			}

			// Set distance model (sound attenuation)
			alDistanceModel(AL_INVERSE_DISTANCE_CLAMPED);
			//alDopplerFactor(1.0);

			alListenerf(AL_GAIN, masterVolume);
		}
		configHandler->Set("MaxSounds", maxSounds);

		soundThreadRunning = true;
		while (soundThreadRunning) {
#if BOOST_VERSION >= 103500
			boost::this_thread::sleep(boost::posix_time::millisec(50)); // sleep
#else
			SDL_Delay(50);
#endif
			boost::mutex::scoped_lock lck(soundMutex); // lock
			Update(); // call update
		}
#if BOOST_VERSION >= 103500
	}
	catch(boost::thread_interrupted const&)
	{
		// do cleanup here
	}
#endif
}
开发者ID:Dmytry,项目名称:spring,代码行数:52,代码来源:Sound.cpp

示例2: StartThread

void CSound::StartThread(int maxSounds)
{
	{
		boost::mutex::scoped_lock lck(soundMutex);

		// Generate sound sources
		for (int i = 0; i < maxSounds; i++)
		{
			SoundSource* thenewone = new SoundSource();
			if (thenewone->IsValid())
			{
				sources.push_back(thenewone);
			}
			else
			{
				maxSounds = i-1;
				LogObject(LOG_SOUND) << "Your hardware/driver can not handle more than " << maxSounds << " soundsources";
				delete thenewone;
				break;
			}
		}

		// Set distance model (sound attenuation)
		alDistanceModel(AL_INVERSE_DISTANCE_CLAMPED);
		//alDopplerFactor(1.0);

		alListenerf(AL_GAIN, masterVolume);
	}

	while (true) {
		boost::this_thread::sleep(boost::posix_time::millisec(50));
		boost::this_thread::interruption_point();

		boost::mutex::scoped_lock lck(soundMutex);

		Update();
	}
}
开发者ID:SocietalEclipse,项目名称:spring-Societal,代码行数:38,代码来源:Sound.cpp


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