예제 #1
0
void LLMuteList::loadUserVolumes()
{
	// call once, after LLDir::setLindenUserDir() has been called
	if (mUserVolumesLoaded)
		return;
	mUserVolumesLoaded = TRUE;
	
	// load per-resident voice volume information
	// conceptually, this is part of the mute list information, although it is only stored locally
	std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "volume_settings.xml");

	LLSD settings_llsd;
	llifstream file;
	file.open(filename);
	if (file.is_open())
	{
		LLSDSerialize::fromXML(settings_llsd, file);
	}

	for (LLSD::map_const_iterator iter = settings_llsd.beginMap();
		 iter != settings_llsd.endMap(); ++iter)
	{
		mUserVolumeSettings.insert(std::make_pair(LLUUID(iter->first), (F32)iter->second.asReal()));
	}

	LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLMuteList::checkNewRegion, this));
	checkNewRegion();
}
예제 #2
0
//-----------------------------------------------------------------------------
// LLMuteList()
//-----------------------------------------------------------------------------
LLMuteList::LLMuteList() :
	mIsLoaded(FALSE)
{
	gGenericDispatcher.addHandler("emptymutelist", &sDispatchEmptyMuteList);

	checkNewRegion();
	LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLMuteList::checkNewRegion, this));
}