diff options
Diffstat (limited to 'indra/newview')
107 files changed, 725 insertions, 899 deletions
| diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp index 92a3026096..0b4b848014 100644 --- a/indra/newview/llagentcamera.cpp +++ b/indra/newview/llagentcamera.cpp @@ -1140,7 +1140,7 @@ void LLAgentCamera::updateCamera()  		mCameraUpVector = mCameraUpVector * gAgentAvatarp->getRenderRotation();  	} -	if (cameraThirdPerson() && (mFocusOnAvatar || mAllowChangeToFollow) && LLFollowCamMgr::getActiveFollowCamParams()) +	if (cameraThirdPerson() && (mFocusOnAvatar || mAllowChangeToFollow) && LLFollowCamMgr::getInstance()->getActiveFollowCamParams())  	{  		mAllowChangeToFollow = FALSE;  		mFocusOnAvatar = TRUE; @@ -1240,7 +1240,7 @@ void LLAgentCamera::updateCamera()  			// *TODO: use combined rotation of frameagent and sit object  			LLQuaternion avatarRotationForFollowCam = gAgentAvatarp->isSitting() ? gAgentAvatarp->getRenderRotation() : gAgent.getFrameAgent().getQuaternion(); -			LLFollowCamParams* current_cam = LLFollowCamMgr::getActiveFollowCamParams(); +			LLFollowCamParams* current_cam = LLFollowCamMgr::getInstance()->getActiveFollowCamParams();  			if (current_cam)  			{  				mFollowCam.copyParams(*current_cam); @@ -2046,7 +2046,7 @@ void LLAgentCamera::changeCameraToMouselook(BOOL animate)  	// Menus should not remain open on switching to mouselook...  	LLMenuGL::sMenuContainer->hideMenus(); -	LLUI::clearPopups(); +	LLUI::getInstance()->clearPopups();  	// unpause avatar animation  	gAgent.unpauseAnimation(); @@ -2100,7 +2100,7 @@ void LLAgentCamera::changeCameraToDefault()  		return;  	} -	if (LLFollowCamMgr::getActiveFollowCamParams()) +	if (LLFollowCamMgr::getInstance()->getActiveFollowCamParams())  	{  		changeCameraToFollow();  	} diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 22bcbad7da..7325ec598a 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -148,7 +148,7 @@ public:  	{  		// support secondlife:///app/appearance/show, but for now we just  		// make all secondlife:///app/appearance SLapps behave this way -		if (!LLUI::sSettingGroups["config"]->getBOOL("EnableAppearance")) +		if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableAppearance"))  		{  			LLNotificationsUtil::add("NoAppearance", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));  			return true; diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 56e8cc8ff4..de70712627 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -100,7 +100,6 @@  #include "llscenemonitor.h"  #include "llavatarrenderinfoaccountant.h"  #include "lllocalbitmaps.h" -#include "llskinningutil.h"  // Linden library includes  #include "llavatarnamecache.h" @@ -798,9 +797,6 @@ bool LLAppViewer::init()  	LL_INFOS("InitInfo") << "Configuration initialized." << LL_ENDL ; -	// initialize skinning util -	LLSkinningUtil::initClass(); -  	//set the max heap size.  	initMaxHeapSize() ;  	LLCoros::instance().setStackSize(gSavedSettings.getS32("CoroutineStackSize")); @@ -848,11 +844,10 @@ bool LLAppViewer::init()  	settings_map["floater"] = &gSavedSettings; // *TODO: New settings file  	settings_map["account"] = &gSavedPerAccountSettings; -	LLUI::initClass(settings_map, +	LLUI::initParamSingleton(settings_map,  		LLUIImageList::getInstance(),  		ui_audio_callback, -		deferred_ui_audio_callback, -		&LLUI::getScaleFactor()); +		deferred_ui_audio_callback);  	LL_INFOS("InitInfo") << "UI initialized." << LL_ENDL ;  	// NOW LLUI::getLanguage() should work. gDirUtilp must know the language @@ -896,8 +891,6 @@ bool LLAppViewer::init()  	// LLKeyboard relies on LLUI to know what some accelerator keys are called.  	LLKeyboard::setStringTranslatorFunc( LLTrans::getKeyboardString ); -	LLWeb::initClass();			  // do this after LLUI -  	// Provide the text fields with callbacks for opening Urls  	LLUrlAction::setOpenURLCallback(boost::bind(&LLWeb::loadURL, _1, LLStringUtil::null, LLStringUtil::null));  	LLUrlAction::setOpenURLInternalCallback(boost::bind(&LLWeb::loadURLInternal, _1, LLStringUtil::null, LLStringUtil::null, false)); @@ -905,7 +898,7 @@ bool LLAppViewer::init()  	LLUrlAction::setExecuteSLURLCallback(&LLURLDispatcher::dispatchFromTextEditor);  	// Let code in llui access the viewer help floater -	LLUI::sHelpImpl = LLViewerHelp::getInstance(); +	LLUI::getInstance()->mHelpImpl = LLViewerHelp::getInstance();  	LL_INFOS("InitInfo") << "UI initialization is done." << LL_ENDL ; @@ -1211,9 +1204,6 @@ bool LLAppViewer::init()  							 << LL_ENDL;  	} -	LLViewerMedia::initClass(); -	LL_INFOS("InitInfo") << "Viewer media initialized." << LL_ENDL ; -  	LLTextUtil::TextHelpers::iconCallbackCreationFunction = create_text_segment_icon_from_url_match;  	//EXT-7013 - On windows for some locale (Japanese) standard @@ -1750,8 +1740,6 @@ bool LLAppViewer::cleanup()  	gTransferManager.cleanup();  #endif -	SUBSYSTEM_CLEANUP(LLLocalBitmapMgr); -  	// Note: this is where gWorldMap used to be deleted.  	// Note: this is where gHUDManager used to be deleted. @@ -1894,12 +1882,9 @@ bool LLAppViewer::cleanup()   	//end_messaging_system(); -	SUBSYSTEM_CLEANUP(LLFollowCamMgr); -	//SUBSYSTEM_CLEANUP(LLVolumeMgr);  	LLPrimitive::cleanupVolumeManager();  	SUBSYSTEM_CLEANUP(LLWorldMapView);  	SUBSYSTEM_CLEANUP(LLFolderViewItem); -	SUBSYSTEM_CLEANUP(LLUI);  	//  	// Shut down the VFS's AFTER the decode manager cleans up (since it cleans up vfiles). @@ -2049,13 +2034,10 @@ bool LLAppViewer::cleanup()  	//Note:  	//SUBSYSTEM_CLEANUP(LLViewerMedia) has to be put before gTextureList.shutdown()  	//because some new image might be generated during cleaning up media. --bao -	SUBSYSTEM_CLEANUP(LLViewerMedia); -	SUBSYSTEM_CLEANUP(LLViewerParcelMedia);  	gTextureList.shutdown(); // shutdown again in case a callback added something  	LLUIImageList::getInstance()->cleanUp();  	// This should eventually be done in LLAppViewer -	SUBSYSTEM_CLEANUP(LLImage);  	SUBSYSTEM_CLEANUP(LLVFSThread);  	SUBSYSTEM_CLEANUP(LLLFSThread); @@ -2163,7 +2145,7 @@ bool LLAppViewer::initThreads()  {  	static const bool enable_threads = true; -	LLImage::initClass(gSavedSettings.getBOOL("TextureNewByteRange"),gSavedSettings.getS32("TextureReverseByteRange")); +	LLImage::initParamSingleton(gSavedSettings.getBOOL("TextureNewByteRange"),gSavedSettings.getS32("TextureReverseByteRange"));  	LLVFSThread::initClass(enable_threads && false);  	LLLFSThread::initClass(enable_threads && false); @@ -3051,7 +3033,7 @@ bool LLAppViewer::initWindow()  		gViewerWindow->getWindow()->maximize();  	} -	LLUI::sWindow = gViewerWindow->getWindow(); +	LLUI::getInstance()->mWindow = gViewerWindow->getWindow();  	// Show watch cursor  	gViewerWindow->setCursor(UI_CURSOR_WAIT); @@ -4518,7 +4500,7 @@ void LLAppViewer::loadNameCache()  	llifstream name_cache_stream(filename.c_str());  	if(name_cache_stream.is_open())  	{ -		if ( ! LLAvatarNameCache::importFile(name_cache_stream)) +		if ( ! LLAvatarNameCache::getInstance()->importFile(name_cache_stream))          {              LL_WARNS("AppInit") << "removing invalid '" << filename << "'" << LL_ENDL;              name_cache_stream.close(); @@ -4545,7 +4527,7 @@ void LLAppViewer::saveNameCache()  	llofstream name_cache_stream(filename.c_str());  	if(name_cache_stream.is_open())  	{ -		LLAvatarNameCache::exportFile(name_cache_stream); +		LLAvatarNameCache::getInstance()->exportFile(name_cache_stream);      }      // real names cache @@ -5152,7 +5134,8 @@ void LLAppViewer::idleNameCache()  	// granted to neighbor regions before the main agent gets there.  Can't  	// do it in the move-into-region code because cap not guaranteed to be  	// granted yet, for example on teleport. -	bool had_capability = LLAvatarNameCache::hasNameLookupURL(); +	LLAvatarNameCache *name_cache = LLAvatarNameCache::getInstance(); +	bool had_capability = LLAvatarNameCache::getInstance()->hasNameLookupURL();  	std::string name_lookup_url;  	name_lookup_url.reserve(128); // avoid a memory allocation below  	name_lookup_url = region->getCapability("GetDisplayNames"); @@ -5169,12 +5152,12 @@ void LLAppViewer::idleNameCache()  	    {  		    name_lookup_url += '/';  	    } -		LLAvatarNameCache::setNameLookupURL(name_lookup_url); +		name_cache->setNameLookupURL(name_lookup_url);  	}  	else  	{  		// Display names not available on this region -		LLAvatarNameCache::setNameLookupURL( std::string() ); +		name_cache->setNameLookupURL( std::string() );  	}  	// Error recovery - did we change state? @@ -5184,7 +5167,7 @@ void LLAppViewer::idleNameCache()  		LLVOAvatar::invalidateNameTags();  	} -	LLAvatarNameCache::idle(); +	name_cache->idle();  }  // diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp index 513f25e301..b0715a3afd 100644 --- a/indra/newview/llavatarlist.cpp +++ b/indra/newview/llavatarlist.cpp @@ -154,7 +154,7 @@ LLAvatarList::LLAvatarList(const Params& p)  		mLITUpdateTimer->start();  	} -	LLAvatarNameCache::addUseDisplayNamesCallback(boost::bind(&LLAvatarList::handleDisplayNamesOptionChanged, this)); +	LLAvatarNameCache::getInstance()->addUseDisplayNamesCallback(boost::bind(&LLAvatarList::handleDisplayNamesOptionChanged, this));  } diff --git a/indra/newview/llbrowsernotification.cpp b/indra/newview/llbrowsernotification.cpp index 19747757db..0460bff1b4 100644 --- a/indra/newview/llbrowsernotification.cpp +++ b/indra/newview/llbrowsernotification.cpp @@ -50,7 +50,7 @@ bool LLBrowserNotification::processNotification(const LLNotificationPtr& notific  	}  	else if (LLViewerMediaFocus::instance().getControlsMediaID() == media_id)  	{ -		LLViewerMediaImpl* impl = LLViewerMedia::getMediaImplFromTextureID(media_id); +		LLViewerMediaImpl* impl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(media_id);  		if (impl)  		{  			impl->showNotification(notification); diff --git a/indra/newview/llconversationlog.h b/indra/newview/llconversationlog.h index 035cbcb945..f241276abb 100644 --- a/indra/newview/llconversationlog.h +++ b/indra/newview/llconversationlog.h @@ -107,11 +107,10 @@ private:   * To distinguish two conversations with the same sessionID it's also needed to compare their creation date.   */ -class LLConversationLog : public LLSingleton<LLConversationLog>, LLIMSessionObserver +class LLConversationLog : public LLParamSingleton<LLConversationLog>, LLIMSessionObserver  {  	LLSINGLETON(LLConversationLog);  public: -  	void removeConversation(const LLConversation& conversation);  	/** diff --git a/indra/newview/llexpandabletextbox.cpp b/indra/newview/llexpandabletextbox.cpp index d657f04457..3395777aab 100644 --- a/indra/newview/llexpandabletextbox.cpp +++ b/indra/newview/llexpandabletextbox.cpp @@ -97,7 +97,7 @@ public:  	/*virtual*/ BOOL	handleMouseUp(S32 x, S32 y, MASK mask) { mEditor.onCommit(); return TRUE; }  	/*virtual*/ BOOL	handleHover(S32 x, S32 y, MASK mask)   	{ -		LLUI::getWindow()->setCursor(UI_CURSOR_HAND); +		LLUI::getInstance()->getWindow()->setCursor(UI_CURSOR_HAND);  		return TRUE;   	}  private: diff --git a/indra/newview/llexternaleditor.cpp b/indra/newview/llexternaleditor.cpp index 776bbf78c2..b66eb754a4 100644 --- a/indra/newview/llexternaleditor.cpp +++ b/indra/newview/llexternaleditor.cpp @@ -184,9 +184,9 @@ std::string LLExternalEditor::findCommand(  		cmd = override;  		LL_INFOS() << "Using override" << LL_ENDL;  	} -	else if (!LLUI::sSettingGroups["config"]->getString(sSetting).empty()) +	else if (!LLUI::getInstance()->mSettingGroups["config"]->getString(sSetting).empty())  	{ -		cmd = LLUI::sSettingGroups["config"]->getString(sSetting); +		cmd = LLUI::getInstance()->mSettingGroups["config"]->getString(sSetting);  		LL_INFOS() << "Using setting" << LL_ENDL;  	}  	else                    // otherwise use the path specified by the environment variable diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index b2da5bb9f8..004e4a6262 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -228,12 +228,6 @@ void LLFace::destroy()  	mVObjp = NULL;  } - -// static -void LLFace::initClass() -{ -} -  void LLFace::setWorldMatrix(const LLMatrix4 &mat)  {  	LL_ERRS() << "Faces on this drawable are not independently modifiable\n" << LL_ENDL; diff --git a/indra/newview/llface.h b/indra/newview/llface.h index 736d45b7ad..83547c75e8 100644 --- a/indra/newview/llface.h +++ b/indra/newview/llface.h @@ -80,8 +80,6 @@ public:  		PARTICLE		= 0x0080,  	}; -	static void initClass(); -  	static void cacheFaceInVRAM(const LLVolumeFace& vf);  public: diff --git a/indra/newview/llfirstuse.cpp b/indra/newview/llfirstuse.cpp index 2e1afc68b4..1ce9fe3a7a 100644 --- a/indra/newview/llfirstuse.cpp +++ b/indra/newview/llfirstuse.cpp @@ -41,37 +41,6 @@  // static -std::set<std::string> LLFirstUse::sConfigVariables; - -// static -void LLFirstUse::addConfigVariable(const std::string& var) -{ -	sConfigVariables.insert(var); -} - -// static -void LLFirstUse::disableFirstUse() -{ -	// Set all first-use warnings to disabled -	for (std::set<std::string>::iterator iter = sConfigVariables.begin(); -		 iter != sConfigVariables.end(); ++iter) -	{ -		gWarningSettings.setBOOL(*iter, FALSE); -	} -} - -// static -void LLFirstUse::resetFirstUse() -{ -	// Set all first-use warnings to disabled -	for (std::set<std::string>::iterator iter = sConfigVariables.begin(); -		 iter != sConfigVariables.end(); ++iter) -	{ -		gWarningSettings.setBOOL(*iter, TRUE); -	} -} - -// static  void LLFirstUse::otherAvatarChatFirst(bool enable)  {  	firstUseNotification("FirstOtherChatBeforeUser", enable, "HintChat", LLSD(), LLSD().with("target", "nearby_chat").with("direction", "top_right").with("distance", 24)); diff --git a/indra/newview/llfirstuse.h b/indra/newview/llfirstuse.h index 4c8c9d3cde..80b83580b3 100644 --- a/indra/newview/llfirstuse.h +++ b/indra/newview/llfirstuse.h @@ -78,14 +78,6 @@ class LLNotification;  class LLFirstUse  {  public: - -	// Add a config variable to be reset on resetFirstUse() -	static void addConfigVariable(const std::string& var); -	 -	// Sets all controls back to show the dialogs. -	static void disableFirstUse(); -	static void resetFirstUse(); -  	static void otherAvatarChatFirst(bool enable = true);  	static void speak(bool enable = true);  	static void sit(bool enable = true); @@ -100,7 +92,6 @@ public:  protected:  	static void firstUseNotification(const std::string& control_var, bool enable, const std::string& notification_name, LLSD args = LLSD(), LLSD payload = LLSD()); -	static std::set<std::string> sConfigVariables;  	static void init();  	static bool processNotification(const LLSD& notify); diff --git a/indra/newview/llfloaterbvhpreview.cpp b/indra/newview/llfloaterbvhpreview.cpp index 080d0ed8ea..ee7e6f8562 100644 --- a/indra/newview/llfloaterbvhpreview.cpp +++ b/indra/newview/llfloaterbvhpreview.cpp @@ -527,7 +527,7 @@ BOOL LLFloaterBvhPreview::handleHover(S32 x, S32 y, MASK mask)  		mAnimPreview->requestUpdate(); -		LLUI::setMousePositionLocal(this, mLastMouseX, mLastMouseY); +		LLUI::getInstance()->setMousePositionLocal(this, mLastMouseX, mLastMouseY);  	}  	if (!mPreviewRect.pointInRect(x, y) || !mAnimPreview) diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp index 20d650fa37..f3406d93bb 100644 --- a/indra/newview/llfloatercamera.cpp +++ b/indra/newview/llfloatercamera.cpp @@ -351,7 +351,7 @@ LLFloaterCamera::LLFloaterCamera(const LLSD& val)  	mCurrMode(CAMERA_CTRL_MODE_PAN),  	mPrevMode(CAMERA_CTRL_MODE_PAN)  { -	LLHints::registerHintTarget("view_popup", getHandle()); +	LLHints::getInstance()->registerHintTarget("view_popup", getHandle());  	mCommitCallbackRegistrar.add("CameraPresets.ChangeView", boost::bind(&LLFloaterCamera::onClickCameraItem, _2));  } diff --git a/indra/newview/llfloaterchatvoicevolume.cpp b/indra/newview/llfloaterchatvoicevolume.cpp index 3c76a3a43c..45aea00a49 100644 --- a/indra/newview/llfloaterchatvoicevolume.cpp +++ b/indra/newview/llfloaterchatvoicevolume.cpp @@ -35,7 +35,7 @@ LLFloaterChatVoiceVolume::LLFloaterChatVoiceVolume(const LLSD& key)  void LLFloaterChatVoiceVolume::onOpen(const LLSD& key)  {  	LLInspect::onOpen(key); -	LLUI::positionViewNearMouse(this); +	LLUI::getInstance()->positionViewNearMouse(this);  }  LLFloaterChatVoiceVolume::~LLFloaterChatVoiceVolume() diff --git a/indra/newview/llfloaterconversationpreview.cpp b/indra/newview/llfloaterconversationpreview.cpp index 66198b3bf6..4905ce5fc2 100644 --- a/indra/newview/llfloaterconversationpreview.cpp +++ b/indra/newview/llfloaterconversationpreview.cpp @@ -221,7 +221,7 @@ void LLFloaterConversationPreview::showHistory()  		else   		{  			std::string legacy_name = gCacheName->buildLegacyName(from); -			from_id = LLAvatarNameCache::findIdByName(legacy_name); +			from_id = LLAvatarNameCache::getInstance()->findIdByName(legacy_name);   		}  		LLChat chat; diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp index 3c428a70f3..d4b0fa85ab 100644 --- a/indra/newview/llfloaterimagepreview.cpp +++ b/indra/newview/llfloaterimagepreview.cpp @@ -503,7 +503,7 @@ BOOL LLFloaterImagePreview::handleHover(S32 x, S32 y, MASK mask)  			mSculptedPreview->refresh();  		} -		LLUI::setMousePositionLocal(this, mLastMouseX, mLastMouseY); +		LLUI::getInstance()->setMousePositionLocal(this, mLastMouseX, mLastMouseY);  	}  	if (!mPreviewRect.pointInRect(x, y) || !mAvatarPreview || !mSculptedPreview) diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp index 30d05ae287..21420b122b 100644 --- a/indra/newview/llfloaterimcontainer.cpp +++ b/indra/newview/llfloaterimcontainer.cpp @@ -237,7 +237,7 @@ BOOL LLFloaterIMContainer::postBuild()  	collapseMessagesPane(gSavedPerAccountSettings.getBOOL("ConversationsMessagePaneCollapsed"));  	collapseConversationsPane(gSavedPerAccountSettings.getBOOL("ConversationsListPaneCollapsed"), false); -	LLAvatarNameCache::addUseDisplayNamesCallback(boost::bind(&LLFloaterIMSessionTab::processChatHistoryStyleUpdate, false)); +	LLAvatarNameCache::getInstance()->addUseDisplayNamesCallback(boost::bind(&LLFloaterIMSessionTab::processChatHistoryStyleUpdate, false));  	mMicroChangedSignal = LLVoiceClient::getInstance()->MicroChangedCallback(boost::bind(&LLFloaterIMContainer::updateSpeakBtnState, this));  	if (! mMessagesPane->isCollapsed() && ! mConversationsPane->isCollapsed()) @@ -267,7 +267,7 @@ BOOL LLFloaterIMContainer::postBuild()  	// We'll take care of view updates on idle  	gIdleCallbacks.addFunction(idle, this);  	// When display name option change, we need to reload all participant names -	LLAvatarNameCache::addUseDisplayNamesCallback(boost::bind(&LLFloaterIMContainer::processParticipantsStyleUpdate, this)); +	LLAvatarNameCache::getInstance()->addUseDisplayNamesCallback(boost::bind(&LLFloaterIMContainer::processParticipantsStyleUpdate, this));      mParticipantRefreshTimer.setTimerExpirySec(0);      mParticipantRefreshTimer.start(); diff --git a/indra/newview/llfloaterimnearbychat.cpp b/indra/newview/llfloaterimnearbychat.cpp index f9efd13608..a6531ed7e1 100644 --- a/indra/newview/llfloaterimnearbychat.cpp +++ b/indra/newview/llfloaterimnearbychat.cpp @@ -228,7 +228,7 @@ void LLFloaterIMNearbyChat::loadHistory()  		else   		{  			std::string legacy_name = gCacheName->buildLegacyName(from); -			from_id = LLAvatarNameCache::findIdByName(legacy_name); +			from_id = LLAvatarNameCache::getInstance()->findIdByName(legacy_name);   		}  		LLChat chat; diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index 4f1ea4a89e..5a27f3c325 100644 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -794,7 +794,7 @@ BOOL LLFloaterModelPreview::handleHover	(S32 x, S32 y, MASK mask)  		mModelPreview->refresh(); -		LLUI::setMousePositionLocal(this, mLastMouseX, mLastMouseY); +		LLUI::getInstance()->setMousePositionLocal(this, mLastMouseX, mLastMouseY);  	}  	if (!mPreviewRect.pointInRect(x, y) || !mModelPreview) diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 64961fc99c..5e8b7556e2 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -254,8 +254,8 @@ bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response  	if ( option == 0 ) // YES  	{  		// clean web -		LLViewerMedia::clearAllCaches(); -		LLViewerMedia::clearAllCookies(); +		LLViewerMedia::getInstance()->clearAllCaches(); +		LLViewerMedia::getInstance()->clearAllCookies();  		// clean nav bar history  		LLNavigationBar::getInstance()->clearHistoryCache(); @@ -278,13 +278,13 @@ bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response  void handleNameTagOptionChanged(const LLSD& newvalue)  { -	LLAvatarNameCache::setUseUsernames(gSavedSettings.getBOOL("NameTagShowUsernames")); +	LLAvatarNameCache::getInstance()->setUseUsernames(gSavedSettings.getBOOL("NameTagShowUsernames"));  	LLVOAvatar::invalidateNameTags();  }  void handleDisplayNamesOptionChanged(const LLSD& newvalue)  { -	LLAvatarNameCache::setUseDisplayNames(newvalue.asBoolean()); +	LLAvatarNameCache::getInstance()->setUseDisplayNames(newvalue.asBoolean());  	LLVOAvatar::invalidateNameTags();  } @@ -635,14 +635,14 @@ void LLFloaterPreference::apply()  	std::string cache_location = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, "");  	setCacheLocation(cache_location); -	LLViewerMedia::setCookiesEnabled(getChild<LLUICtrl>("cookies_enabled")->getValue()); +	LLViewerMedia::getInstance()->setCookiesEnabled(getChild<LLUICtrl>("cookies_enabled")->getValue());  	if (hasChild("web_proxy_enabled", TRUE) &&hasChild("web_proxy_editor", TRUE) && hasChild("web_proxy_port", TRUE))  	{  		bool proxy_enable = getChild<LLUICtrl>("web_proxy_enabled")->getValue();  		std::string proxy_address = getChild<LLUICtrl>("web_proxy_editor")->getValue();  		int proxy_port = getChild<LLUICtrl>("web_proxy_port")->getValue(); -		LLViewerMedia::setProxyConfig(proxy_enable, proxy_address, proxy_port); +		LLViewerMedia::getInstance()->setProxyConfig(proxy_enable, proxy_address, proxy_port);  	}  	if (mGotPersonalInfo) @@ -1234,7 +1234,7 @@ void LLFloaterPreference::buildPopupLists()  		{  			if (ignore == LLNotificationForm::IGNORE_WITH_LAST_RESPONSE)  			{ -				LLSD last_response = LLUI::sSettingGroups["config"]->getLLSD("Default" + templatep->mName); +				LLSD last_response = LLUI::getInstance()->mSettingGroups["config"]->getLLSD("Default" + templatep->mName);  				if (!last_response.isUndefined())  				{  					for (LLSD::map_const_iterator it = last_response.beginMap(); @@ -1739,7 +1739,7 @@ void LLFloaterPreference::onClickEnablePopup()  		LLNotificationTemplatePtr templatep = LLNotifications::instance().getTemplate(*(std::string*)((*itor)->getUserdata()));  		//gSavedSettings.setWarning(templatep->mName, TRUE);  		std::string notification_name = templatep->mName; -		LLUI::sSettingGroups["ignores"]->setBOOL(notification_name, TRUE); +		LLUI::getInstance()->mSettingGroups["ignores"]->setBOOL(notification_name, TRUE);  	}  	buildPopupLists(); diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp index 66e832111b..f52aebc1ad 100644 --- a/indra/newview/llfloatersearch.cpp +++ b/indra/newview/llfloatersearch.cpp @@ -48,7 +48,7 @@ public:  	LLSearchHandler() : LLCommandHandler("search", UNTRUSTED_THROTTLE) { }  	bool handle(const LLSD& tokens, const LLSD& query_map, LLMediaCtrl* web)  	{ -		if (!LLUI::sSettingGroups["config"]->getBOOL("EnableSearch")) +		if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableSearch"))  		{  			LLNotificationsUtil::add("NoSearch", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));  			return true; diff --git a/indra/newview/llfloaterspellchecksettings.cpp b/indra/newview/llfloaterspellchecksettings.cpp index b87044ef5a..de5d59f484 100644 --- a/indra/newview/llfloaterspellchecksettings.cpp +++ b/indra/newview/llfloaterspellchecksettings.cpp @@ -56,7 +56,7 @@ void LLFloaterSpellCheckerSettings::draw()  	bool enable_remove = !sel_items.empty();  	for (std::vector<LLScrollListItem*>::const_iterator sel_it = sel_items.begin(); sel_it != sel_items.end(); ++sel_it)  	{ -		enable_remove &= LLSpellChecker::canRemoveDictionary((*sel_it)->getValue().asString()); +		enable_remove &= LLSpellChecker::getInstance()->canRemoveDictionary((*sel_it)->getValue().asString());  	}  	getChild<LLUICtrl>("spellcheck_remove_btn")->setEnabled(enable_remove);  } @@ -121,7 +121,7 @@ void LLFloaterSpellCheckerSettings::onClose(bool app_quitting)  		for (std::vector<LLScrollListItem*>::const_iterator item_it = list_items.begin(); item_it != list_items.end(); ++item_it)  		{  			const std::string language = (*item_it)->getValue().asString(); -			if (LLSpellChecker::hasDictionary(language, true)) +			if (LLSpellChecker::getInstance()->hasDictionary(language, true))  			{  				list_dict.push_back(language);  			} @@ -164,7 +164,7 @@ void LLFloaterSpellCheckerSettings::refreshDictionaries(bool from_settings)  	}  	dict_combo->clearRows(); -	const LLSD& dict_map = LLSpellChecker::getDictionaryMap(); +	const LLSD& dict_map = LLSpellChecker::getInstance()->getDictionaryMap();  	if (dict_map.size())  	{  		for (LLSD::array_const_iterator dict_it = dict_map.beginArray(); dict_it != dict_map.endArray(); ++dict_it) @@ -216,7 +216,7 @@ void LLFloaterSpellCheckerSettings::refreshDictionaries(bool from_settings)  	for (LLSpellChecker::dict_list_t::const_iterator it = active_list.begin(); it != active_list.end(); ++it)  	{  		const std::string language = *it; -		const LLSD dict = LLSpellChecker::getDictionaryData(language); +		const LLSD dict = LLSpellChecker::getInstance()->getDictionaryData(language);  		row["value"] = language;  		row["columns"][0]["value"] = (!dict["user_installed"].asBoolean()) ? language : language + " " + LLTrans::getString("UserDictionary");  		active_ctrl->addElement(row); @@ -380,7 +380,7 @@ void LLFloaterSpellCheckerImport::onBtnOK()  			custom_file_out.close();  		} -		LLSpellChecker::refreshDictionaryMap(); +		LLSpellChecker::getInstance()->refreshDictionaryMap();  	}  	closeFloater(false); diff --git a/indra/newview/llfloateruipreview.cpp b/indra/newview/llfloateruipreview.cpp index db5a192287..e67c79a3a0 100644 --- a/indra/newview/llfloateruipreview.cpp +++ b/indra/newview/llfloateruipreview.cpp @@ -291,8 +291,8 @@ bool LLPreviewedFloater::sShowRectangles = false;  // Changes are made here  LLLocalizationResetForcer::LLLocalizationResetForcer(LLFloaterUIPreview* floater, S32 ID)  { -	mSavedLocalization = LLUI::sSettingGroups["config"]->getString("Language");				// save current localization setting -	LLUI::sSettingGroups["config"]->setString("Language", floater->getLocStr(ID));// hack language to be the one we want to preview floaters in +	mSavedLocalization = LLUI::getInstance()->mSettingGroups["config"]->getString("Language");				// save current localization setting +	LLUI::getInstance()->mSettingGroups["config"]->setString("Language", floater->getLocStr(ID));// hack language to be the one we want to preview floaters in  	// forcibly reset XUI paths with this new language  	gDirUtilp->setSkinFolder(gDirUtilp->getSkinFolder(), floater->getLocStr(ID));  } @@ -301,7 +301,7 @@ LLLocalizationResetForcer::LLLocalizationResetForcer(LLFloaterUIPreview* floater  // Changes are reversed here  LLLocalizationResetForcer::~LLLocalizationResetForcer()  { -	LLUI::sSettingGroups["config"]->setString("Language", mSavedLocalization);	// reset language to what it was before we changed it +	LLUI::getInstance()->mSettingGroups["config"]->setString("Language", mSavedLocalization);	// reset language to what it was before we changed it  	// forcibly reset XUI paths with this new language  	gDirUtilp->setSkinFolder(gDirUtilp->getSkinFolder(), mSavedLocalization);  } diff --git a/indra/newview/llfloatervoicevolume.cpp b/indra/newview/llfloatervoicevolume.cpp index 38446e46df..59e1f49f81 100644 --- a/indra/newview/llfloatervoicevolume.cpp +++ b/indra/newview/llfloatervoicevolume.cpp @@ -127,7 +127,7 @@ void LLFloaterVoiceVolume::onOpen(const LLSD& data)  	// Extract appropriate avatar id  	mAvatarID = data["avatar_id"]; -	LLUI::positionViewNearMouse(this); +	LLUI::getInstance()->positionViewNearMouse(this);  	getChild<LLUICtrl>("avatar_name")->setValue("");  	updateVolumeControls(); diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp index 3b17368445..224e30f7de 100644 --- a/indra/newview/llfloaterwebcontent.cpp +++ b/indra/newview/llfloaterwebcontent.cpp @@ -235,7 +235,7 @@ void LLFloaterWebContent::preCreate(LLFloaterWebContent::Params& p)  void LLFloaterWebContent::open_media(const Params& p)  { -	LLViewerMedia::proxyWindowOpened(p.target(), p.id()); +	LLViewerMedia::getInstance()->proxyWindowOpened(p.target(), p.id());  	mWebBrowser->setHomePageUrl(p.url);  	mWebBrowser->setTarget(p.target);  	mWebBrowser->navigateTo(p.url); @@ -319,7 +319,7 @@ void LLFloaterWebContent::onClose(bool app_quitting)              LLTwitterConnect::instance().setConnectionState(LLTwitterConnect::TWITTER_CONNECTION_FAILED);          }      } -	LLViewerMedia::proxyWindowClosed(mUUID); +	LLViewerMedia::getInstance()->proxyWindowClosed(mUUID);  	destroy();  } diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp index 1e9c9ce5e0..27197f0b06 100644 --- a/indra/newview/llfloaterworldmap.cpp +++ b/indra/newview/llfloaterworldmap.cpp @@ -122,7 +122,7 @@ public:  	bool handle(const LLSD& params, const LLSD& query_map,  				LLMediaCtrl* web)  	{ -		if (!LLUI::sSettingGroups["config"]->getBOOL("EnableWorldMap")) +		if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableWorldMap"))  		{  			LLNotificationsUtil::add("NoWorldMap", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));  			return true; @@ -160,7 +160,7 @@ public:  	bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web)  	{ -		if (!LLUI::sSettingGroups["config"]->getBOOL("EnableWorldMap")) +		if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableWorldMap"))  		{  			LLNotificationsUtil::add("NoWorldMap", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));  			return true; diff --git a/indra/newview/llfollowcam.cpp b/indra/newview/llfollowcam.cpp index 612afc0d18..c2ea3b07c1 100644 --- a/indra/newview/llfollowcam.cpp +++ b/indra/newview/llfollowcam.cpp @@ -30,12 +30,6 @@  #include "llagent.h"  //------------------------------------------------------- -// class statics -//------------------------------------------------------- -std::map<LLUUID, LLFollowCamParams*> LLFollowCamMgr::sParamMap; -std::vector<LLFollowCamParams*> LLFollowCamMgr::sParamStack; - -//-------------------------------------------------------  // constants  //-------------------------------------------------------  const F32 FOLLOW_CAM_ZOOM_FACTOR			= 0.1f; @@ -668,18 +662,20 @@ LLFollowCam::~LLFollowCam()  //-------------------------------------------------------  // LLFollowCamMgr  //------------------------------------------------------- -//static -void LLFollowCamMgr::cleanupClass() +LLFollowCamMgr::LLFollowCamMgr()  { -	for (param_map_t::iterator iter = sParamMap.begin(); iter != sParamMap.end(); ++iter) -	{ -		LLFollowCamParams* params = iter->second; -		delete params; -	} -	sParamMap.clear();  } -//static +LLFollowCamMgr::~LLFollowCamMgr() +{ +    for (param_map_t::iterator iter = mParamMap.begin(); iter != mParamMap.end(); ++iter) +    { +        LLFollowCamParams* params = iter->second; +        delete params; +    } +    mParamMap.clear(); +} +  void LLFollowCamMgr::setPositionLag( const LLUUID& source, F32 lag)  {  	LLFollowCamParams* paramsp = getParamsForID(source); @@ -689,7 +685,6 @@ void LLFollowCamMgr::setPositionLag( const LLUUID& source, F32 lag)  	}  } -//static  void LLFollowCamMgr::setFocusLag( const LLUUID& source, F32 lag)  {  	LLFollowCamParams* paramsp = getParamsForID(source); @@ -699,7 +694,6 @@ void LLFollowCamMgr::setFocusLag( const LLUUID& source, F32 lag)  	}  } -//static  void LLFollowCamMgr::setFocusThreshold( const LLUUID& source, F32 threshold)  {  	LLFollowCamParams* paramsp = getParamsForID(source); @@ -710,7 +704,6 @@ void LLFollowCamMgr::setFocusThreshold( const LLUUID& source, F32 threshold)  } -//static  void LLFollowCamMgr::setPositionThreshold( const LLUUID& source, F32 threshold)  {  	LLFollowCamParams* paramsp = getParamsForID(source); @@ -720,7 +713,6 @@ void LLFollowCamMgr::setPositionThreshold( const LLUUID& source, F32 threshold)  	}  } -//static  void LLFollowCamMgr::setDistance( const LLUUID& source, F32 distance)  {  	LLFollowCamParams* paramsp = getParamsForID(source); @@ -730,7 +722,6 @@ void LLFollowCamMgr::setDistance( const LLUUID& source, F32 distance)  	}  } -//static  void LLFollowCamMgr::setPitch( const LLUUID& source, F32 pitch)  {  	LLFollowCamParams* paramsp = getParamsForID(source); @@ -740,7 +731,6 @@ void LLFollowCamMgr::setPitch( const LLUUID& source, F32 pitch)  	}  } -//static  void LLFollowCamMgr::setFocusOffset( const LLUUID& source, const LLVector3& offset)  {  	LLFollowCamParams* paramsp = getParamsForID(source); @@ -750,7 +740,6 @@ void LLFollowCamMgr::setFocusOffset( const LLUUID& source, const LLVector3& offs  	}  } -//static  void LLFollowCamMgr::setBehindnessAngle( const LLUUID& source, F32 angle)  {  	LLFollowCamParams* paramsp = getParamsForID(source); @@ -760,7 +749,6 @@ void LLFollowCamMgr::setBehindnessAngle( const LLUUID& source, F32 angle)  	}  } -//static  void LLFollowCamMgr::setBehindnessLag( const LLUUID& source, F32 force)  {  	LLFollowCamParams* paramsp = getParamsForID(source); @@ -770,7 +758,6 @@ void LLFollowCamMgr::setBehindnessLag( const LLUUID& source, F32 force)  	}  } -//static  void LLFollowCamMgr::setPosition( const LLUUID& source, const LLVector3 position)  {  	LLFollowCamParams* paramsp = getParamsForID(source); @@ -780,7 +767,6 @@ void LLFollowCamMgr::setPosition( const LLUUID& source, const LLVector3 position  	}  } -//static  void LLFollowCamMgr::setFocus( const LLUUID& source, const LLVector3 focus)  {  	LLFollowCamParams* paramsp = getParamsForID(source); @@ -790,7 +776,6 @@ void LLFollowCamMgr::setFocus( const LLUUID& source, const LLVector3 focus)  	}  } -//static  void LLFollowCamMgr::setPositionLocked( const LLUUID& source, bool locked)  {  	LLFollowCamParams* paramsp = getParamsForID(source); @@ -800,7 +785,6 @@ void LLFollowCamMgr::setPositionLocked( const LLUUID& source, bool locked)  	}  } -//static  void LLFollowCamMgr::setFocusLocked( const LLUUID& source, bool locked )  {  	LLFollowCamParams* paramsp = getParamsForID(source); @@ -810,16 +794,15 @@ void LLFollowCamMgr::setFocusLocked( const LLUUID& source, bool locked )  	}  } -//static   LLFollowCamParams* LLFollowCamMgr::getParamsForID(const LLUUID& source)  {  	LLFollowCamParams* params = NULL; -	param_map_t::iterator found_it = sParamMap.find(source); -	if (found_it == sParamMap.end()) // didn't find it? +	param_map_t::iterator found_it = mParamMap.find(source); +	if (found_it == mParamMap.end()) // didn't find it?  	{  		params = new LLFollowCamParams(); -		sParamMap[source] = params; +		mParamMap[source] = params;  	}  	else  	{ @@ -829,56 +812,51 @@ LLFollowCamParams* LLFollowCamMgr::getParamsForID(const LLUUID& source)  	return params;  } -//static  LLFollowCamParams* LLFollowCamMgr::getActiveFollowCamParams()  { -	if (sParamStack.empty()) +	if (mParamStack.empty())  	{  		return NULL;  	} -	return sParamStack.back(); +	return mParamStack.back();  } -//static   void LLFollowCamMgr::setCameraActive( const LLUUID& source, bool active )  {  	LLFollowCamParams* params = getParamsForID(source); -	param_stack_t::iterator found_it = std::find(sParamStack.begin(), sParamStack.end(), params); -	if (found_it != sParamStack.end()) +	param_stack_t::iterator found_it = std::find(mParamStack.begin(), mParamStack.end(), params); +	if (found_it != mParamStack.end())  	{ -		sParamStack.erase(found_it); +		mParamStack.erase(found_it);  	}  	// put on top of stack  	if(active)  	{ -		sParamStack.push_back(params); +		mParamStack.push_back(params);  	}  } -//static  void LLFollowCamMgr::removeFollowCamParams(const LLUUID& source)  {  	setCameraActive(source, FALSE);  	LLFollowCamParams* params = getParamsForID(source); -	sParamMap.erase(source); +	mParamMap.erase(source);  	delete params;  } -//static  bool LLFollowCamMgr::isScriptedCameraSource(const LLUUID& source)  { -	param_map_t::iterator found_it = sParamMap.find(source); -	return (found_it != sParamMap.end()); +	param_map_t::iterator found_it = mParamMap.find(source); +	return (found_it != mParamMap.end());  } -//static   void LLFollowCamMgr::dump()  {  	S32 param_count = 0;  	LL_INFOS() << "Scripted camera active stack" << LL_ENDL; -	for (param_stack_t::iterator param_it = sParamStack.begin(); -		param_it != sParamStack.end(); +	for (param_stack_t::iterator param_it = mParamStack.begin(); +		param_it != mParamStack.end();  		++param_it)  	{  		LL_INFOS() << param_count++ <<  diff --git a/indra/newview/llfollowcam.h b/indra/newview/llfollowcam.h index f4b7b2723a..7995848160 100644 --- a/indra/newview/llfollowcam.h +++ b/indra/newview/llfollowcam.h @@ -193,40 +193,40 @@ protected:  };// end of FollowCam class -class LLFollowCamMgr +class LLFollowCamMgr : public LLSingleton<LLFollowCamMgr>  { -public: -	static void cleanupClass			( ); -	 -	static void setPositionLag			( const LLUUID& source, F32 lag); -	static void setFocusLag				( const LLUUID& source, F32 lag); -	static void setFocusThreshold		( const LLUUID& source, F32 threshold); -	static void setPositionThreshold	( const LLUUID& source, F32 threshold); -	static void setDistance				( const LLUUID& source, F32 distance); -	static void setPitch				( const LLUUID& source, F32 pitch); -	static void setFocusOffset			( const LLUUID& source, const LLVector3& offset); -	static void setBehindnessAngle		( const LLUUID& source, F32 angle); -	static void setBehindnessLag		( const LLUUID& source, F32 lag); -	static void setPosition				( const LLUUID& source, const LLVector3 position); -	static void setFocus				( const LLUUID& source, const LLVector3 focus); -	static void setPositionLocked		( const LLUUID& source, bool locked); -	static void setFocusLocked			( const LLUUID& source, bool locked ); - -	static void setCameraActive			( const LLUUID& source, bool active ); - -	static LLFollowCamParams* getActiveFollowCamParams(); -	static LLFollowCamParams* getParamsForID(const LLUUID& source); -	static void removeFollowCamParams(const LLUUID& source); -	static bool isScriptedCameraSource(const LLUUID& source); -	static void dump(); +    LLSINGLETON(LLFollowCamMgr); +    ~LLFollowCamMgr(); +public:	 +	void setPositionLag			( const LLUUID& source, F32 lag); +	void setFocusLag				( const LLUUID& source, F32 lag); +	void setFocusThreshold		( const LLUUID& source, F32 threshold); +	void setPositionThreshold	( const LLUUID& source, F32 threshold); +	void setDistance				( const LLUUID& source, F32 distance); +	void setPitch				( const LLUUID& source, F32 pitch); +	void setFocusOffset			( const LLUUID& source, const LLVector3& offset); +	void setBehindnessAngle		( const LLUUID& source, F32 angle); +	void setBehindnessLag		( const LLUUID& source, F32 lag); +	void setPosition				( const LLUUID& source, const LLVector3 position); +	void setFocus				( const LLUUID& source, const LLVector3 focus); +	void setPositionLocked		( const LLUUID& source, bool locked); +	void setFocusLocked			( const LLUUID& source, bool locked ); + +	void setCameraActive			( const LLUUID& source, bool active ); + +	LLFollowCamParams* getActiveFollowCamParams(); +	LLFollowCamParams* getParamsForID(const LLUUID& source); +	void removeFollowCamParams(const LLUUID& source); +	bool isScriptedCameraSource(const LLUUID& source); +	void dump();  protected:  	typedef std::map<LLUUID, LLFollowCamParams*> param_map_t; -	static param_map_t sParamMap; +	param_map_t mParamMap;  	typedef std::vector<LLFollowCamParams*> param_stack_t; -	static param_stack_t sParamStack; +	param_stack_t mParamStack;  };  #endif //LL_FOLLOWCAM_H diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp index 913efd6434..599790d2bb 100644 --- a/indra/newview/llgroupactions.cpp +++ b/indra/newview/llgroupactions.cpp @@ -55,7 +55,7 @@ public:  	bool handle(const LLSD& tokens, const LLSD& query_map,  				LLMediaCtrl* web)  	{ -		if (!LLUI::sSettingGroups["config"]->getBOOL("EnableGroupInfo")) +		if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableGroupInfo"))  		{  			LLNotificationsUtil::add("NoGroupInfo", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));  			return true; diff --git a/indra/newview/llhints.cpp b/indra/newview/llhints.cpp index 197408b40e..7271376a3c 100644 --- a/indra/newview/llhints.cpp +++ b/indra/newview/llhints.cpp @@ -240,7 +240,7 @@ void LLHintPopup::draw()  		}  		else   		{ -			LLView* targetp = LLHints::getHintTarget(mTarget).get(); +			LLView* targetp = LLHints::getInstance()->getHintTarget(mTarget).get();  			if (!targetp)  			{  				// target widget is no longer valid, go away @@ -349,10 +349,20 @@ void LLHintPopup::draw()  } -LLRegistry<std::string, LLHandle<LLView> > LLHints::sTargetRegistry; -std::map<LLNotificationPtr, class LLHintPopup*> LLHints::sHints; +/// LLHints + +LLHints::LLHints() +{ +    LLControlVariablePtr control = gSavedSettings.getControl("EnableUIHints"); +    mControlConnection = control->getSignal()->connect(boost::bind(&LLHints::showHints, this, _2)); +    gViewerWindow->getHintHolder()->setVisible(control->getValue().asBoolean()); +} + +LLHints::~LLHints() +{ +    mControlConnection.disconnect(); +} -//static  void LLHints::show(LLNotificationPtr hint)  {  	LLHintPopup::Params p(LLUICtrlFactory::getDefaultParams<LLHintPopup>()); @@ -365,7 +375,7 @@ void LLHints::show(LLNotificationPtr hint)  	{  		LLHintPopup* popup = new LLHintPopup(p); -		sHints[hint] = popup; +		mHints[hint] = popup;  		LLView* hint_holder = gViewerWindow->getHintHolder();  		if (hint_holder) @@ -376,27 +386,24 @@ void LLHints::show(LLNotificationPtr hint)  	}  } -//static  void LLHints::hide(LLNotificationPtr hint)  { -	hint_map_t::iterator found_it = sHints.find(hint); -	if (found_it != sHints.end()) +	hint_map_t::iterator found_it = mHints.find(hint); +	if (found_it != mHints.end())  	{  		found_it->second->hide(); -		sHints.erase(found_it); +		mHints.erase(found_it);  	}  } -//static  void LLHints::registerHintTarget(const std::string& name, LLHandle<LLView> target)  { -	sTargetRegistry.defaultRegistrar().replace(name, target); +	mTargetRegistry.defaultRegistrar().replace(name, target);  } -//static   LLHandle<LLView> LLHints::getHintTarget(const std::string& name)  { -	LLHandle<LLView>* handlep = sTargetRegistry.getValue(name); +	LLHandle<LLView>* handlep = mTargetRegistry.getValue(name);  	if (handlep)   	{  		return *handlep; @@ -407,18 +414,6 @@ LLHandle<LLView> LLHints::getHintTarget(const std::string& name)  	}  } -//static -void LLHints::initClass() -{ -	sRegister.reference(); - -	LLControlVariablePtr control = gSavedSettings.getControl("EnableUIHints"); -	control->getSignal()->connect(boost::bind(&showHints, _2)); -	gViewerWindow->getHintHolder()->setVisible(control->getValue().asBoolean()); - -} - -//staic  void LLHints::showHints(const LLSD& show)  {  	bool visible = show.asBoolean(); diff --git a/indra/newview/llhints.h b/indra/newview/llhints.h index dd6195a9ce..1f730734d0 100644 --- a/indra/newview/llhints.h +++ b/indra/newview/llhints.h @@ -32,19 +32,22 @@  #include "llinitdestroyclass.h" -class LLHints :  public LLInitClass<LLHints> +class LLHints :  public LLSingleton<LLHints>  { +	LLSINGLETON(LLHints); +	~LLHints();  public: -	static void show(LLNotificationPtr hint); -	static void hide(LLNotificationPtr hint); -	static void registerHintTarget(const std::string& name, LLHandle<LLView> target); -	static LLHandle<LLView> getHintTarget(const std::string& name); -	static void initClass(); +	void show(LLNotificationPtr hint); +	void hide(LLNotificationPtr hint); +	void registerHintTarget(const std::string& name, LLHandle<LLView> target); +	LLHandle<LLView> getHintTarget(const std::string& name);  private: -	static LLRegistry<std::string, LLHandle<LLView> > sTargetRegistry; +	LLRegistry<std::string, LLHandle<LLView> > mTargetRegistry;  	typedef std::map<LLNotificationPtr, class LLHintPopup*> hint_map_t; -	static hint_map_t sHints; -	static void showHints(const LLSD& show); +	hint_map_t mHints; +	void showHints(const LLSD& show); + +	boost::signals2::connection mControlConnection;  }; diff --git a/indra/newview/llimprocessing.cpp b/indra/newview/llimprocessing.cpp index d59c301210..3606a439a6 100644 --- a/indra/newview/llimprocessing.cpp +++ b/indra/newview/llimprocessing.cpp @@ -695,7 +695,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id,                  // The group notice packet does not have an AgentID.  Obtain one from the name cache.                  // If last name is "Resident" strip it out so the cache name lookup works.                  std::string legacy_name = gCacheName->buildLegacyName(original_name); -                agent_id = LLAvatarNameCache::findIdByName(legacy_name); +                agent_id = LLAvatarNameCache::getInstance()->findIdByName(legacy_name);                  if (agent_id.isNull())                  { diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 0f5d514660..e331a51bda 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -83,11 +83,6 @@ void startConfrenceCoro(std::string url, LLUUID tempSessionId, LLUUID creatorId,  void chatterBoxInvitationCoro(std::string url, LLUUID sessionId, LLIMMgr::EInvitationType invitationType);  void start_deprecated_conference_chat(const LLUUID& temp_session_id, const LLUUID& creator_id, const LLUUID& other_participant_id, const LLSD& agents_to_invite); -std::string LLCallDialogManager::sPreviousSessionlName = ""; -LLIMModel::LLIMSession::SType LLCallDialogManager::sPreviousSessionType = LLIMModel::LLIMSession::P2P_SESSION; -std::string LLCallDialogManager::sCurrentSessionlName = ""; -LLIMModel::LLIMSession* LLCallDialogManager::sSession = NULL; -LLVoiceChannel::EState LLCallDialogManager::sOldState = LLVoiceChannel::STATE_READY;  const LLUUID LLOutgoingCallDialog::OCD_KEY = LLUUID("7CF78E11-0CFE-498D-ADB9-1417BF03DDB4");  //  // Globals @@ -811,7 +806,7 @@ void LLIMModel::LLIMSession::addMessagesFromHistory(const std::list<LLSD>& histo  		{  			// convert it to a legacy name if we have a complete name  			std::string legacy_name = gCacheName->buildLegacyName(from); -			from_id = LLAvatarNameCache::findIdByName(legacy_name); +			from_id = LLAvatarNameCache::getInstance()->findIdByName(legacy_name);  		}  		std::string timestamp = msg[LL_IM_TIME]; @@ -1786,7 +1781,12 @@ LLIMMgr::onConfirmForceCloseError(  // Class LLCallDialogManager  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -LLCallDialogManager::LLCallDialogManager() +LLCallDialogManager::LLCallDialogManager(): +mPreviousSessionlName(""), +mPreviousSessionType(LLIMModel::LLIMSession::P2P_SESSION), +mCurrentSessionlName(""), +mSession(NULL), +mOldState(LLVoiceChannel::STATE_READY)  {  } @@ -1794,39 +1794,45 @@ LLCallDialogManager::~LLCallDialogManager()  {  } -void LLCallDialogManager::initClass() +void LLCallDialogManager::initSingleton()  {  	LLVoiceChannel::setCurrentVoiceChannelChangedCallback(LLCallDialogManager::onVoiceChannelChanged);  } +// static  void LLCallDialogManager::onVoiceChannelChanged(const LLUUID &session_id)  { +    LLCallDialogManager::getInstance()->onVoiceChannelChangedInt(session_id); +} + +void LLCallDialogManager::onVoiceChannelChangedInt(const LLUUID &session_id) +{  	LLIMModel::LLIMSession* session = LLIMModel::getInstance()->findIMSession(session_id);  	if(!session)  	{		 -		sPreviousSessionlName = sCurrentSessionlName; -		sCurrentSessionlName = ""; // Empty string results in "Nearby Voice Chat" after substitution +		mPreviousSessionlName = mCurrentSessionlName; +		mCurrentSessionlName = ""; // Empty string results in "Nearby Voice Chat" after substitution  		return;  	} -	if (sSession) +	if (mSession)  	{  		// store previous session type to process Avaline calls in dialogs -		sPreviousSessionType = sSession->mSessionType; +		mPreviousSessionType = mSession->mSessionType;  	} -	sSession = session; +	mSession = session;  	static boost::signals2::connection prev_channel_state_changed_connection;  	// disconnect previously connected callback to avoid have invalid sSession in onVoiceChannelStateChanged()  	prev_channel_state_changed_connection.disconnect();  	prev_channel_state_changed_connection = -		sSession->mVoiceChannel->setStateChangedCallback(boost::bind(LLCallDialogManager::onVoiceChannelStateChanged, _1, _2, _3, _4)); +		mSession->mVoiceChannel->setStateChangedCallback(boost::bind(LLCallDialogManager::onVoiceChannelStateChanged, _1, _2, _3, _4)); -	if(sCurrentSessionlName != session->mName) +	if(mCurrentSessionlName != session->mName)  	{ -		sPreviousSessionlName = sCurrentSessionlName; -		sCurrentSessionlName = session->mName; +		mPreviousSessionlName = mCurrentSessionlName; +		mCurrentSessionlName = session->mName;  	}  	if (LLVoiceChannel::getCurrentVoiceChannel()->getState() == LLVoiceChannel::STATE_CALL_STARTED && @@ -1835,14 +1841,14 @@ void LLCallDialogManager::onVoiceChannelChanged(const LLUUID &session_id)  		//*TODO get rid of duplicated code  		LLSD mCallDialogPayload; -		mCallDialogPayload["session_id"] = sSession->mSessionID; -		mCallDialogPayload["session_name"] = sSession->mName; -		mCallDialogPayload["other_user_id"] = sSession->mOtherParticipantID; -		mCallDialogPayload["old_channel_name"] = sPreviousSessionlName; -		mCallDialogPayload["old_session_type"] = sPreviousSessionType; +		mCallDialogPayload["session_id"] = mSession->mSessionID; +		mCallDialogPayload["session_name"] = mSession->mName; +		mCallDialogPayload["other_user_id"] = mSession->mOtherParticipantID; +		mCallDialogPayload["old_channel_name"] = mPreviousSessionlName; +		mCallDialogPayload["old_session_type"] = mPreviousSessionType;  		mCallDialogPayload["state"] = LLVoiceChannel::STATE_CALL_STARTED; -		mCallDialogPayload["disconnected_channel_name"] = sSession->mName; -		mCallDialogPayload["session_type"] = sSession->mSessionType; +		mCallDialogPayload["disconnected_channel_name"] = mSession->mName; +		mCallDialogPayload["session_type"] = mSession->mSessionType;  		LLOutgoingCallDialog* ocd = LLFloaterReg::getTypedInstance<LLOutgoingCallDialog>("outgoing_call", LLOutgoingCallDialog::OCD_KEY);  		if(ocd) @@ -1853,26 +1859,32 @@ void LLCallDialogManager::onVoiceChannelChanged(const LLUUID &session_id)  } +// static  void LLCallDialogManager::onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state, const LLVoiceChannel::EDirection& direction, bool ended_by_agent)  { +    LLCallDialogManager::getInstance()->onVoiceChannelStateChangedInt(old_state, new_state, direction, ended_by_agent); +} + +void LLCallDialogManager::onVoiceChannelStateChangedInt(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state, const LLVoiceChannel::EDirection& direction, bool ended_by_agent) +{  	LLSD mCallDialogPayload;  	LLOutgoingCallDialog* ocd = NULL; -	if(sOldState == new_state) +	if(mOldState == new_state)  	{  		return;  	} -	sOldState = new_state; +	mOldState = new_state; -	mCallDialogPayload["session_id"] = sSession->mSessionID; -	mCallDialogPayload["session_name"] = sSession->mName; -	mCallDialogPayload["other_user_id"] = sSession->mOtherParticipantID; -	mCallDialogPayload["old_channel_name"] = sPreviousSessionlName; -	mCallDialogPayload["old_session_type"] = sPreviousSessionType; +	mCallDialogPayload["session_id"] = mSession->mSessionID; +	mCallDialogPayload["session_name"] = mSession->mName; +	mCallDialogPayload["other_user_id"] = mSession->mOtherParticipantID; +	mCallDialogPayload["old_channel_name"] = mPreviousSessionlName; +	mCallDialogPayload["old_session_type"] = mPreviousSessionType;  	mCallDialogPayload["state"] = new_state; -	mCallDialogPayload["disconnected_channel_name"] = sSession->mName; -	mCallDialogPayload["session_type"] = sSession->mSessionType; +	mCallDialogPayload["disconnected_channel_name"] = mSession->mName; +	mCallDialogPayload["session_type"] = mSession->mSessionType;  	mCallDialogPayload["ended_by_agent"] = ended_by_agent;  	switch(new_state) @@ -1887,7 +1899,7 @@ void LLCallDialogManager::onVoiceChannelStateChanged(const LLVoiceChannel::EStat  	case LLVoiceChannel::STATE_HUNG_UP:  		// this state is coming before session is changed, so, put it into payload map -		mCallDialogPayload["old_session_type"] = sSession->mSessionType; +		mCallDialogPayload["old_session_type"] = mSession->mSessionType;  		break;  	case LLVoiceChannel::STATE_CONNECTED : @@ -1925,7 +1937,7 @@ LLCallDialog::LLCallDialog(const LLSD& payload)  LLCallDialog::~LLCallDialog()  { -	LLUI::removePopup(this); +	LLUI::getInstance()->removePopup(this);  }  BOOL LLCallDialog::postBuild() @@ -2002,7 +2014,7 @@ void LLCallDialog::onOpen(const LLSD& key)  	LLDockableFloater::onOpen(key);  	// it should be over the all floaters. EXT-5116 -	LLUI::addPopup(this); +	LLUI::getInstance()->addPopup(this);  }  void LLCallDialog::setIcon(const LLSD& session_id, const LLSD& participant_id) diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h index 81d3ffa1a6..2a9e4679a8 100644 --- a/indra/newview/llimview.h +++ b/indra/newview/llimview.h @@ -499,22 +499,26 @@ private:  	LLSD mPendingAgentListUpdates;  }; -class LLCallDialogManager : public LLInitClass<LLCallDialogManager> +class LLCallDialogManager : public LLSingleton<LLCallDialogManager>  { -public: -	LLCallDialogManager(); +	LLSINGLETON(LLCallDialogManager);  	~LLCallDialogManager(); - -	static void initClass(); +public: +	// static for convinience  	static void onVoiceChannelChanged(const LLUUID &session_id);  	static void onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state, const LLVoiceChannel::EDirection& direction, bool ended_by_agent); +private: +	void initSingleton(); +	void onVoiceChannelChangedInt(const LLUUID &session_id); +	void onVoiceChannelStateChangedInt(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state, const LLVoiceChannel::EDirection& direction, bool ended_by_agent); +  protected: -	static std::string sPreviousSessionlName; -	static LLIMModel::LLIMSession::SType sPreviousSessionType; -	static std::string sCurrentSessionlName; -	static LLIMModel::LLIMSession* sSession; -	static LLVoiceChannel::EState sOldState; +	std::string mPreviousSessionlName; +	LLIMModel::LLIMSession::SType mPreviousSessionType; +	std::string mCurrentSessionlName; +	LLIMModel::LLIMSession* mSession; +	LLVoiceChannel::EState mOldState;  };  class LLCallDialog : public LLDockableFloater diff --git a/indra/newview/llinspect.cpp b/indra/newview/llinspect.cpp index e6cb068613..479e8f9abf 100644 --- a/indra/newview/llinspect.cpp +++ b/indra/newview/llinspect.cpp @@ -28,7 +28,7 @@  #include "lltooltip.h"  #include "llcontrol.h"	// LLCachedControl -#include "llui.h"		// LLUI::sSettingsGroups +#include "llui.h"		// LLUI::getInstance()->mSettingsGroups  #include "llviewermenu.h"  LLInspect::LLInspect(const LLSD& key) @@ -45,8 +45,8 @@ LLInspect::~LLInspect()  // virtual  void LLInspect::draw()  { -	static LLCachedControl<F32> FADE_TIME(*LLUI::sSettingGroups["config"], "InspectorFadeTime", 1.f); -	static LLCachedControl<F32> STAY_TIME(*LLUI::sSettingGroups["config"], "InspectorShowTime", 1.f); +	static LLCachedControl<F32> FADE_TIME(*LLUI::getInstance()->mSettingGroups["config"], "InspectorFadeTime", 1.f); +	static LLCachedControl<F32> STAY_TIME(*LLUI::getInstance()->mSettingGroups["config"], "InspectorShowTime", 1.f);  	if (mOpenTimer.getStarted())  	{  		LLFloater::draw(); @@ -113,7 +113,7 @@ BOOL LLInspect::handleToolTip(S32 x, S32 y, MASK mask)  		params.fillFrom(LLUICtrlFactory::instance().getDefaultParams<LLInspector>());  		params.message = child_handler->getToolTip();  		//set up delay if there is no visible tooltip at this moment -		params.delay_time =  LLToolTipMgr::instance().toolTipVisible() ? 0.f : LLUI::sSettingGroups["config"]->getF32( "ToolTipDelay" ); +		params.delay_time =  LLToolTipMgr::instance().toolTipVisible() ? 0.f : LLUI::getInstance()->mSettingGroups["config"]->getF32( "ToolTipDelay" );  		LLToolTipMgr::instance().show(params);  		handled = TRUE;  	} @@ -137,7 +137,7 @@ bool LLInspect::childHasVisiblePopupMenu()  		LLRect floater_rc = calcScreenRect();  		LLRect menu_screen_rc = child_menu->calcScreenRect();  		S32 mx, my; -		LLUI::getMousePositionScreen(&mx, &my); +		LLUI::getInstance()->getMousePositionScreen(&mx, &my);  		// This works wrong if we spawn a menu near Inspector and menu overlaps Inspector.  		if(floater_rc.overlaps(menu_screen_rc) && menu_screen_rc.pointInRect(mx, my)) diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp index 88e7ad1b71..10814ac076 100644 --- a/indra/newview/llinspectavatar.cpp +++ b/indra/newview/llinspectavatar.cpp @@ -207,11 +207,11 @@ void LLInspectAvatar::onOpen(const LLSD& data)  	// See LLToolTipMgr::createToolTip  	if (data.has("pos"))  	{ -		LLUI::positionViewNearMouse(this, data["pos"]["x"].asInteger(), data["pos"]["y"].asInteger()); +		LLUI::getInstance()->positionViewNearMouse(this, data["pos"]["x"].asInteger(), data["pos"]["y"].asInteger());  	}  	else  	{ -		LLUI::positionViewNearMouse(this); +		LLUI::getInstance()->positionViewNearMouse(this);  	}  	// Generate link to avatar profile. diff --git a/indra/newview/llinspectgroup.cpp b/indra/newview/llinspectgroup.cpp index 8332443162..fa8a53c546 100644 --- a/indra/newview/llinspectgroup.cpp +++ b/indra/newview/llinspectgroup.cpp @@ -129,11 +129,11 @@ void LLInspectGroup::onOpen(const LLSD& data)  	// See LLToolTipMgr::createToolTip  	if (data.has("pos"))  	{ -		LLUI::positionViewNearMouse(this, data["pos"]["x"].asInteger(), data["pos"]["y"].asInteger()); +		LLUI::getInstance()->positionViewNearMouse(this, data["pos"]["x"].asInteger(), data["pos"]["y"].asInteger());  	}  	else  	{ -		LLUI::positionViewNearMouse(this); +		LLUI::getInstance()->positionViewNearMouse(this);  	}  	// can't call from constructor as widgets are not built yet diff --git a/indra/newview/llinspectobject.cpp b/indra/newview/llinspectobject.cpp index 46019557f8..f78a5cc64e 100644 --- a/indra/newview/llinspectobject.cpp +++ b/indra/newview/llinspectobject.cpp @@ -202,11 +202,11 @@ void LLInspectObject::onOpen(const LLSD& data)  	// See LLToolTipMgr::createToolTip  	if (data.has("pos"))  	{ -		LLUI::positionViewNearMouse(this, data["pos"]["x"].asInteger(), data["pos"]["y"].asInteger()); +		LLUI::getInstance()->positionViewNearMouse(this, data["pos"]["x"].asInteger(), data["pos"]["y"].asInteger());  	}  	else  	{ -		LLUI::positionViewNearMouse(this); +		LLUI::getInstance()->positionViewNearMouse(this);  	}  	// Promote hovered object to a complete selection, which will also force @@ -241,7 +241,7 @@ void LLInspectObject::onOpen(const LLSD& data)  		if(!mMediaEntry)  			return; -		mMediaImpl = LLViewerMedia::getMediaImplFromTextureID(mMediaEntry->getMediaID()); +		mMediaImpl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mMediaEntry->getMediaID());  	}  } @@ -300,7 +300,7 @@ void LLInspectObject::update()  	if(!mMediaEntry)  		return; -	mMediaImpl = LLViewerMedia::getMediaImplFromTextureID(mMediaEntry->getMediaID()); +	mMediaImpl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mMediaEntry->getMediaID());  	updateMediaCurrentURL();  	updateSecureBrowsing(); diff --git a/indra/newview/llinspectremoteobject.cpp b/indra/newview/llinspectremoteobject.cpp index b64df2bd47..272c8acbd5 100644 --- a/indra/newview/llinspectremoteobject.cpp +++ b/indra/newview/llinspectremoteobject.cpp @@ -116,11 +116,11 @@ void LLInspectRemoteObject::onOpen(const LLSD& data)  	// See LLToolTipMgr::createToolTip  	if (data.has("pos"))  	{ -		LLUI::positionViewNearMouse(this, data["pos"]["x"].asInteger(), data["pos"]["y"].asInteger()); +		LLUI::getInstance()->positionViewNearMouse(this, data["pos"]["x"].asInteger(), data["pos"]["y"].asInteger());  	}  	else  	{ -		LLUI::positionViewNearMouse(this); +		LLUI::getInstance()->positionViewNearMouse(this);  	}  } diff --git a/indra/newview/llinspecttoast.cpp b/indra/newview/llinspecttoast.cpp index 47560341e7..d0034eff13 100644 --- a/indra/newview/llinspecttoast.cpp +++ b/indra/newview/llinspecttoast.cpp @@ -110,7 +110,7 @@ void LLInspectToast::onOpen(const LLSD& notification_id)  	panel_rect = panel->getRect();  	reshape(panel_rect.getWidth(), panel_rect.getHeight()); -	LLUI::positionViewNearMouse(this); +	LLUI::getInstance()->positionViewNearMouse(this);  }  // virtual diff --git a/indra/newview/lllocalbitmaps.cpp b/indra/newview/lllocalbitmaps.cpp index 760325b652..5e378f0980 100644 --- a/indra/newview/lllocalbitmaps.cpp +++ b/indra/newview/lllocalbitmaps.cpp @@ -69,9 +69,6 @@  /*=======================================*/  /*  Formal declarations, constants, etc. */  /*=======================================*/  -std::list<LLLocalBitmap*>   LLLocalBitmapMgr::sBitmapList; -LLLocalBitmapTimer          LLLocalBitmapMgr::sTimer; -bool                        LLLocalBitmapMgr::sNeedsRebake;  static const F32 LL_LOCAL_TIMER_HEARTBEAT   = 3.0;  static const BOOL LL_LOCAL_USE_MIPMAPS      = true; @@ -131,7 +128,7 @@ LLLocalBitmap::~LLLocalBitmap()  	if(LL_LOCAL_REPLACE_ON_DEL && mValid && gAgentAvatarp) // fix for STORM-1837  	{  		replaceIDs(mWorldID, IMG_DEFAULT); -		LLLocalBitmapMgr::doRebake(); +		LLLocalBitmapMgr::getInstance()->doRebake();  	}  	// delete self from gimagelist @@ -570,7 +567,7 @@ void LLLocalBitmap::updateUserLayers(LLUUID old_id, LLUUID new_id, LLWearableTyp  							gAgentAvatarp->setLocalTexture(reg_texind, gTextureList.getImage(new_id), FALSE, index);  							gAgentAvatarp->wearableUpdated(type);  							/* telling the manager to rebake once update cycle is fully done */ -							LLLocalBitmapMgr::setNeedsRebake(); +							LLLocalBitmapMgr::getInstance()->setNeedsRebake();  						}  					} @@ -835,7 +832,7 @@ bool LLLocalBitmapTimer::isRunning()  BOOL LLLocalBitmapTimer::tick()  { -	LLLocalBitmapMgr::doUpdates(); +	LLLocalBitmapMgr::getInstance()->doUpdates();  	return FALSE;  } @@ -844,17 +841,12 @@ BOOL LLLocalBitmapTimer::tick()  /*=======================================*/   LLLocalBitmapMgr::LLLocalBitmapMgr()  { -	// The class is all made of static members, should i even bother instantiating?  }  LLLocalBitmapMgr::~LLLocalBitmapMgr()  { -} - -void LLLocalBitmapMgr::cleanupClass() -{ -	std::for_each(sBitmapList.begin(), sBitmapList.end(), DeletePointer()); -	sBitmapList.clear(); +    std::for_each(mBitmapList.begin(), mBitmapList.end(), DeletePointer()); +    mBitmapList.clear();  }  bool LLLocalBitmapMgr::addUnit() @@ -864,7 +856,7 @@ bool LLLocalBitmapMgr::addUnit()  	LLFilePicker& picker = LLFilePicker::instance();  	if (picker.getMultipleOpenFiles(LLFilePicker::FFLOAD_IMAGE))  	{ -		sTimer.stopTimer(); +		mTimer.stopTimer();  		std::string filename = picker.getFirstFile();  		while(!filename.empty()) @@ -879,7 +871,7 @@ bool LLLocalBitmapMgr::addUnit()  			if (unit->getValid())  			{ -				sBitmapList.push_back(unit); +				mBitmapList.push_back(unit);  				add_successful = true;  			}  			else @@ -898,7 +890,7 @@ bool LLLocalBitmapMgr::addUnit()  			filename = picker.getNextFile();  		} -		sTimer.startTimer(); +		mTimer.startTimer();  	}  	return add_successful; @@ -937,10 +929,10 @@ bool LLLocalBitmapMgr::checkTextureDimensions(std::string filename)  void LLLocalBitmapMgr::delUnit(LLUUID tracking_id)  { -	if (!sBitmapList.empty()) +	if (!mBitmapList.empty())  	{	  		std::vector<LLLocalBitmap*> to_delete; -		for (local_list_iter iter = sBitmapList.begin(); iter != sBitmapList.end(); iter++) +		for (local_list_iter iter = mBitmapList.begin(); iter != mBitmapList.end(); iter++)  		{   /* finding which ones we want deleted and making a separate list */  			LLLocalBitmap* unit = *iter;  			if (unit->getTrackingID() == tracking_id) @@ -953,7 +945,7 @@ void LLLocalBitmapMgr::delUnit(LLUUID tracking_id)  			del_iter != to_delete.end(); del_iter++)  		{   /* iterating over a temporary list, hence preserving the iterator validity while deleting. */  			LLLocalBitmap* unit = *del_iter; -			sBitmapList.remove(unit); +			mBitmapList.remove(unit);  			delete unit;  			unit = NULL;  		} @@ -964,7 +956,7 @@ LLUUID LLLocalBitmapMgr::getWorldID(LLUUID tracking_id)  {  	LLUUID world_id = LLUUID::null; -	for (local_list_iter iter = sBitmapList.begin(); iter != sBitmapList.end(); iter++) +	for (local_list_iter iter = mBitmapList.begin(); iter != mBitmapList.end(); iter++)  	{  		LLLocalBitmap* unit = *iter;  		if (unit->getTrackingID() == tracking_id) @@ -980,7 +972,7 @@ std::string LLLocalBitmapMgr::getFilename(LLUUID tracking_id)  {  	std::string filename = ""; -	for (local_list_iter iter = sBitmapList.begin(); iter != sBitmapList.end(); iter++) +	for (local_list_iter iter = mBitmapList.begin(); iter != mBitmapList.end(); iter++)  	{  		LLLocalBitmap* unit = *iter;  		if (unit->getTrackingID() == tracking_id) @@ -998,10 +990,10 @@ void LLLocalBitmapMgr::feedScrollList(LLScrollListCtrl* ctrl)  	{  		ctrl->clearRows(); -		if (!sBitmapList.empty()) +		if (!mBitmapList.empty())  		{ -			for (local_list_iter iter = sBitmapList.begin(); -				 iter != sBitmapList.end(); iter++) +			for (local_list_iter iter = mBitmapList.begin(); +				 iter != mBitmapList.end(); iter++)  			{  				LLSD element;  				element["columns"][0]["column"] = "unit_name"; @@ -1022,29 +1014,29 @@ void LLLocalBitmapMgr::feedScrollList(LLScrollListCtrl* ctrl)  void LLLocalBitmapMgr::doUpdates()  {  	// preventing theoretical overlap in cases with huge number of loaded images. -	sTimer.stopTimer(); -	sNeedsRebake = false; +	mTimer.stopTimer(); +	mNeedsRebake = false; -	for (local_list_iter iter = sBitmapList.begin(); iter != sBitmapList.end(); iter++) +	for (local_list_iter iter = mBitmapList.begin(); iter != mBitmapList.end(); iter++)  	{  		(*iter)->updateSelf();  	}  	doRebake(); -	sTimer.startTimer(); +	mTimer.startTimer();  }  void LLLocalBitmapMgr::setNeedsRebake()  { -	sNeedsRebake = true; +	mNeedsRebake = true;  }  void LLLocalBitmapMgr::doRebake()  { /* separated that from doUpdates to insure a rebake can be called separately during deletion */ -	if (sNeedsRebake) +	if (mNeedsRebake)  	{  		gAgentAvatarp->forceBakeAllTextures(LL_LOCAL_SLAM_FOR_DEBUG); -		sNeedsRebake = false; +		mNeedsRebake = false;  	}  } diff --git a/indra/newview/lllocalbitmaps.h b/indra/newview/lllocalbitmaps.h index ee4161fb45..f6cc1e919e 100644 --- a/indra/newview/lllocalbitmaps.h +++ b/indra/newview/lllocalbitmaps.h @@ -110,31 +110,28 @@ class LLLocalBitmapTimer : public LLEventTimer  }; -class LLLocalBitmapMgr +class LLLocalBitmapMgr : public LLSingleton<LLLocalBitmapMgr>  { -	public: -		LLLocalBitmapMgr(); -		~LLLocalBitmapMgr(); - -	public: -		static void			cleanupClass(); -		static bool         addUnit(); -		static void         delUnit(LLUUID tracking_id); -		static bool 		checkTextureDimensions(std::string filename); - -		static LLUUID       getWorldID(LLUUID tracking_id); -		static std::string  getFilename(LLUUID tracking_id); -		 -		static void         feedScrollList(LLScrollListCtrl* ctrl); -		static void         doUpdates(); -		static void         setNeedsRebake(); -		static void         doRebake(); -		 -	private: -		static std::list<LLLocalBitmap*>    sBitmapList; -		static LLLocalBitmapTimer           sTimer; -		static bool                         sNeedsRebake; -		typedef std::list<LLLocalBitmap*>::iterator local_list_iter; +	LLSINGLETON(LLLocalBitmapMgr); +	~LLLocalBitmapMgr(); +public: +	bool         addUnit(); +	void         delUnit(LLUUID tracking_id); +	bool 		checkTextureDimensions(std::string filename); + +	LLUUID       getWorldID(LLUUID tracking_id); +	std::string  getFilename(LLUUID tracking_id); + +	void         feedScrollList(LLScrollListCtrl* ctrl); +	void         doUpdates(); +	void         setNeedsRebake(); +	void         doRebake(); +	 +private: +	std::list<LLLocalBitmap*>    mBitmapList; +	LLLocalBitmapTimer           mTimer; +	bool                         mNeedsRebake; +	typedef std::list<LLLocalBitmap*>::iterator local_list_iter;  };  #endif diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index 11bc1425f9..42b5ff3890 100644 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -666,7 +666,7 @@ void LLLocationInputCtrl::onAgentParcelChange()  void LLLocationInputCtrl::onMaturityButtonClicked()  { -	LLUI::sHelpImpl->showTopic(mMaturityHelpTopic); +	LLUI::getInstance()->mHelpImpl->showTopic(mMaturityHelpTopic);  }  void LLLocationInputCtrl::onRegionBoundaryCrossed() diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp index 92a09357c8..9248c160c6 100644 --- a/indra/newview/llmaniptranslate.cpp +++ b/indra/newview/llmaniptranslate.cpp @@ -386,7 +386,7 @@ BOOL LLManipTranslate::handleMouseDownOnPart( S32 x, S32 y, MASK mask )  		}  		else if (gSavedSettings.getBOOL("SnapToMouseCursor"))  		{ -			LLUI::setMousePositionScreen(mouse_pos.mX, mouse_pos.mY); +			LLUI::getInstance()->setMousePositionScreen(mouse_pos.mX, mouse_pos.mY);  			x = mouse_pos.mX;  			y = mouse_pos.mY;  		} diff --git a/indra/newview/llmarketplacefunctions.cpp b/indra/newview/llmarketplacefunctions.cpp index a0e19f2d19..805c25508f 100644 --- a/indra/newview/llmarketplacefunctions.cpp +++ b/indra/newview/llmarketplacefunctions.cpp @@ -219,7 +219,7 @@ namespace LLMarketplaceImport          httpHeaders->append(HTTP_OUT_HEADER_CONNECTION, "Keep-Alive");          httpHeaders->append(HTTP_OUT_HEADER_COOKIE, sMarketplaceCookie);          httpHeaders->append(HTTP_OUT_HEADER_CONTENT_TYPE, HTTP_CONTENT_XML); -        httpHeaders->append(HTTP_OUT_HEADER_USER_AGENT, LLViewerMedia::getCurrentUserAgent()); +        httpHeaders->append(HTTP_OUT_HEADER_USER_AGENT, LLViewerMedia::getInstance()->getCurrentUserAgent());          LLSD result = httpAdapter->postAndSuspend(httpRequest, url, LLSD(), httpOpts, httpHeaders); @@ -283,11 +283,11 @@ namespace LLMarketplaceImport              httpHeaders->append(HTTP_OUT_HEADER_ACCEPT, "*/*");              httpHeaders->append(HTTP_OUT_HEADER_COOKIE, sMarketplaceCookie);              httpHeaders->append(HTTP_OUT_HEADER_CONTENT_TYPE, HTTP_CONTENT_LLSD_XML); -            httpHeaders->append(HTTP_OUT_HEADER_USER_AGENT, LLViewerMedia::getCurrentUserAgent()); +            httpHeaders->append(HTTP_OUT_HEADER_USER_AGENT, LLViewerMedia::getInstance()->getCurrentUserAgent());          }          else          { -            httpHeaders = LLViewerMedia::getHttpHeaders(); +            httpHeaders = LLViewerMedia::getInstance()->getHttpHeaders();          }          LLSD result = httpAdapter->getAndSuspend(httpRequest, url, httpOpts, httpHeaders); diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 7f6955d08c..b399ab9bc4 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -691,7 +691,7 @@ bool LLMediaCtrl::ensureMediaSourceExists()  	if(mMediaSource.isNull())  	{  		// If we don't already have a media source, try to create one. -		mMediaSource = LLViewerMedia::newMediaImpl(mMediaTextureID, mTextureWidth, mTextureHeight); +		mMediaSource = LLViewerMedia::getInstance()->newMediaImpl(mMediaTextureID, mTextureWidth, mTextureHeight);  		if ( mMediaSource )  		{  			mMediaSource->setUsedInUI(true); @@ -1098,7 +1098,7 @@ void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event)  			auth_request_params.substitutions = args;  			auth_request_params.payload = LLSD().with("media_id", mMediaTextureID); -			auth_request_params.functor.function = boost::bind(&LLViewerMedia::onAuthSubmit, _1, _2); +			auth_request_params.functor.function = boost::bind(&LLViewerMedia::authSubmitCallback, _1, _2);  			LLNotifications::instance().add(auth_request_params);  		};  		break; @@ -1144,7 +1144,7 @@ void LLMediaCtrl::onPopup(const LLSD& notification, const LLSD& response)  	else  	{  		// Make sure the opening instance knows its window open request was denied, so it can clean things up. -		LLViewerMedia::proxyWindowClosed(notification["payload"]["uuid"]); +		LLViewerMedia::getInstance()->proxyWindowClosed(notification["payload"]["uuid"]);  	}  } diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp index 19f238d99a..8fc356c928 100644 --- a/indra/newview/llmoveview.cpp +++ b/indra/newview/llmoveview.cpp @@ -568,7 +568,7 @@ BOOL LLPanelStandStopFlying::postBuild()  	mStandButton->setCommitCallback(boost::bind(&LLPanelStandStopFlying::onStandButtonClick, this));  	mStandButton->setCommitCallback(boost::bind(&LLFloaterMove::enableInstance));  	mStandButton->setVisible(FALSE); -	LLHints::registerHintTarget("stand_btn", mStandButton->getHandle()); +	LLHints::getInstance()->registerHintTarget("stand_btn", mStandButton->getHandle());  	mStopFlyingButton = getChild<LLButton>("stop_fly_btn");  	//mStopFlyingButton->setCommitCallback(boost::bind(&LLFloaterMove::setFlyingMode, FALSE)); @@ -670,7 +670,7 @@ LLPanelStandStopFlying* LLPanelStandStopFlying::getStandStopFlyingPanel()  	panel->buildFromFile("panel_stand_stop_flying.xml");  	panel->setVisible(FALSE); -	//LLUI::getRootView()->addChild(panel); +	//LLUI::getInstance()->getRootView()->addChild(panel);  	LL_INFOS() << "Build LLPanelStandStopFlying panel" << LL_ENDL; diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp index 62e0e2d077..909936d989 100644 --- a/indra/newview/llnamelistctrl.cpp +++ b/indra/newview/llnamelistctrl.cpp @@ -153,7 +153,7 @@ void	LLNameListCtrl::mouseOverHighlightNthItem( S32 target_index )  		bool is_mouse_over_name_cell = false;  		S32 mouse_x, mouse_y; -		LLUI::getMousePositionLocal(this, &mouse_x, &mouse_y); +		LLUI::getInstance()->getMousePositionLocal(this, &mouse_x, &mouse_y);  		S32 column_index = getColumnIndexFromOffset(mouse_x);  		LLScrollListItem* hit_item = hitItem(mouse_x, mouse_y); diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp index cfe2e6bf6a..179c64b5c5 100644 --- a/indra/newview/llnavigationbar.cpp +++ b/indra/newview/llnavigationbar.cpp @@ -320,7 +320,7 @@ BOOL LLNavigationBar::postBuild()  	LLTeleportHistory::getInstance()->setHistoryChangedCallback(  			boost::bind(&LLNavigationBar::onTeleportHistoryChanged, this)); -	LLHints::registerHintTarget("nav_bar", getHandle()); +	LLHints::getInstance()->registerHintTarget("nav_bar", getHandle());  	mNavigationPanel = getChild<LLLayoutPanel>("navigation_layout_panel");  	mFavoritePanel = getChild<LLLayoutPanel>("favorites_layout_panel"); diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp index 248c361ca4..fc1039b372 100644 --- a/indra/newview/llnetmap.cpp +++ b/indra/newview/llnetmap.cpp @@ -329,7 +329,7 @@ void LLNetMap::draw()  		S32 local_mouse_x;  		S32 local_mouse_y;  		//localMouse(&local_mouse_x, &local_mouse_y); -		LLUI::getMousePositionLocal(this, &local_mouse_x, &local_mouse_y); +		LLUI::getInstance()->getMousePositionLocal(this, &local_mouse_x, &local_mouse_y);  		mClosestAgentToCursor.setNull();  		F32 closest_dist_squared = F32_MAX; // value will be overridden in the loop  		F32 min_pick_dist_squared = (mDotRadius * MIN_PICK_SCALE) * (mDotRadius * MIN_PICK_SCALE); @@ -835,7 +835,7 @@ BOOL LLNetMap::handleMouseUp( S32 x, S32 y, MASK mask )  			LLRect clip_rect = getRect();  			clip_rect.stretch(-8);  			clip_rect.clipPointToRect(mMouseDown.mX, mMouseDown.mY, local_x, local_y); -			LLUI::setMousePositionLocal(this, local_x, local_y); +			LLUI::getInstance()->setMousePositionLocal(this, local_x, local_y);  			// finish the pan  			mPanning = false; diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp index 6a58196760..9a3f1a853a 100644 --- a/indra/newview/llnotificationhandlerutil.cpp +++ b/indra/newview/llnotificationhandlerutil.cpp @@ -177,7 +177,7 @@ void LLHandlerUtil::logGroupNoticeToIMGroup(  	{  		// Legacy support and fallback method  		// if we can't retrieve sender id from group notice system message, try to lookup it from cache -		sender_id = LLAvatarNameCache::findIdByName(sender_name); +		sender_id = LLAvatarNameCache::getInstance()->findIdByName(sender_name);  	}  	logToIM(IM_SESSION_GROUP_START, group_name, sender_name, payload["message"], diff --git a/indra/newview/llnotificationhinthandler.cpp b/indra/newview/llnotificationhinthandler.cpp index f40369a2e0..f1226c53ff 100644 --- a/indra/newview/llnotificationhinthandler.cpp +++ b/indra/newview/llnotificationhinthandler.cpp @@ -40,17 +40,17 @@ LLHintHandler::LLHintHandler()  void LLHintHandler::onAdd(LLNotificationPtr p)  { -	LLHints::show(p); +	LLHints::getInstance()->show(p);  }  void LLHintHandler::onLoad(LLNotificationPtr p)  { -	LLHints::show(p); +	LLHints::getInstance()->show(p);  }  void LLHintHandler::onDelete(LLNotificationPtr p)  { -	LLHints::hide(p); +	LLHints::getInstance()->hide(p);  }  bool LLHintHandler::processNotification(const LLNotificationPtr& p) diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp index 392bacb8d9..67bac9a597 100644 --- a/indra/newview/llpanelface.cpp +++ b/indra/newview/llpanelface.cpp @@ -886,7 +886,7 @@ void LLPanelFace::updateUI(bool force_set_values /*false*/)                 break;  				} -			if(LLViewerMedia::textureHasMedia(id)) +			if(LLViewerMedia::getInstance()->textureHasMedia(id))  			{  				getChildView("button align")->setEnabled(editable);  			} @@ -2367,13 +2367,13 @@ struct LLPanelFaceSetMediaFunctor : public LLSelectedTEFunctor  		const LLMediaEntry* mep = tep->hasMedia() ? tep->getMediaData() : NULL;  		if ( mep )  		{ -			pMediaImpl = LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()); +			pMediaImpl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mep->getMediaID());  		}  		if ( pMediaImpl.isNull())  		{  			// If we didn't find face media for this face, check whether this face is showing parcel media. -			pMediaImpl = LLViewerMedia::getMediaImplFromTextureID(tep->getID()); +			pMediaImpl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(tep->getID());  		}  		if ( pMediaImpl.notNull()) @@ -2526,7 +2526,7 @@ void LLPanelFace::LLSelectedTE::getTexId(LLUUID& id, bool& identical)  				id = image->getID();  			} -			if (!id.isNull() && LLViewerMedia::textureHasMedia(id)) +			if (!id.isNull() && LLViewerMedia::getInstance()->textureHasMedia(id))  			{  				LLTextureEntry *te = object->getTE(te_index);  				if (te) diff --git a/indra/newview/llpanelmediasettingsgeneral.cpp b/indra/newview/llpanelmediasettingsgeneral.cpp index 3522189842..9730f0f16d 100644 --- a/indra/newview/llpanelmediasettingsgeneral.cpp +++ b/indra/newview/llpanelmediasettingsgeneral.cpp @@ -457,7 +457,7 @@ bool LLPanelMediaSettingsGeneral::navigateHomeSelectedFace(bool only_if_current_  					if (!only_if_current_is_empty || (media_data->getCurrentURL().empty() && media_data->getAutoPlay()))  					{  						viewer_media_t media_impl = -							LLViewerMedia::getMediaImplFromTextureID(object->getTE(face)->getMediaData()->getMediaID()); +							LLViewerMedia::getInstance()->getMediaImplFromTextureID(object->getTE(face)->getMediaData()->getMediaID());  						if(media_impl)  						{  							media_impl->navigateHome(); diff --git a/indra/newview/llpanelnearbymedia.cpp b/indra/newview/llpanelnearbymedia.cpp index f3a2ed9408..2dca55514d 100644 --- a/indra/newview/llpanelnearbymedia.cpp +++ b/indra/newview/llpanelnearbymedia.cpp @@ -543,9 +543,10 @@ void LLPanelNearByMedia::refreshParcelItems()  	// Only show "special parcel items" if "All" or "Within" filter  	// (and if media is "enabled")  	bool should_include = (choice == MEDIA_CLASS_ALL || choice == MEDIA_CLASS_WITHIN_PARCEL); -	 +	LLViewerMedia* media_inst = LLViewerMedia::getInstance(); +  	// First Parcel Media: add or remove it as necessary -	if (gSavedSettings.getBOOL("AudioStreamingMedia") &&should_include && LLViewerMedia::hasParcelMedia()) +	if (gSavedSettings.getBOOL("AudioStreamingMedia") && should_include && media_inst->hasParcelMedia())  	{  		// Yes, there is parcel media.  		if (NULL == mParcelMediaItem) @@ -566,7 +567,7 @@ void LLPanelNearByMedia::refreshParcelItems()  	if (NULL != mParcelMediaItem)  	{  		std::string name, url, tooltip; -		getNameAndUrlHelper(LLViewerParcelMedia::getParcelMedia(), name, url, ""); +		getNameAndUrlHelper(LLViewerParcelMedia::getInstance()->getParcelMedia(), name, url, "");  		if (name.empty() || name == url)  		{  			tooltip = url; @@ -575,20 +576,20 @@ void LLPanelNearByMedia::refreshParcelItems()  		{  			tooltip = name + " : " + url;  		} -		LLViewerMediaImpl *impl = LLViewerParcelMedia::getParcelMedia(); +		LLViewerMediaImpl *impl = LLViewerParcelMedia::getInstance()->getParcelMedia();  		updateListItem(mParcelMediaItem,  					   mParcelMediaName,  					   tooltip,  					   -2, // Proximity closer than anything else, before Parcel Audio  					   impl == NULL || impl->isMediaDisabled(), -					   impl != NULL && !LLViewerParcelMedia::getURL().empty(), +					   impl != NULL && !LLViewerParcelMedia::getInstance()->getURL().empty(),  					   impl != NULL && impl->isMediaTimeBased() &&	impl->isMediaPlaying(),  					   MEDIA_CLASS_ALL,  					   "parcel media");  	}  	// Next Parcel Audio: add or remove it as necessary (don't show if disabled in prefs) -	if (should_include && LLViewerMedia::hasParcelAudio() && gSavedSettings.getBOOL("AudioStreamingMusic")) +	if (should_include && media_inst->hasParcelAudio() && gSavedSettings.getBOOL("AudioStreamingMusic"))  	{  		// Yes, there is parcel audio.  		if (NULL == mParcelAudioItem) @@ -608,10 +609,10 @@ void LLPanelNearByMedia::refreshParcelItems()  	// ... then update it  	if (NULL != mParcelAudioItem)  	{ -		bool is_playing = LLViewerMedia::isParcelAudioPlaying(); +		bool is_playing = media_inst->isParcelAudioPlaying();  		std::string url; -        url = LLViewerMedia::getParcelAudioURL(); +		url = media_inst->getParcelAudioURL();  		updateListItem(mParcelAudioItem,  					   mParcelAudioName, @@ -653,7 +654,8 @@ void LLPanelNearByMedia::refreshList()  	refreshParcelItems();  	// Get the canonical list from LLViewerMedia -	LLViewerMedia::impl_list impls = LLViewerMedia::getPriorityList(); +	LLViewerMedia* media_inst = LLViewerMedia::getInstance(); +	LLViewerMedia::impl_list impls = media_inst->getPriorityList();  	LLViewerMedia::impl_list::iterator priority_iter;  	U32 enabled_count = 0; @@ -706,17 +708,17 @@ void LLPanelNearByMedia::refreshList()  	}	  	mDisableAllCtrl->setEnabled((gSavedSettings.getBOOL("AudioStreamingMusic") ||   		                         gSavedSettings.getBOOL("AudioStreamingMedia")) && -								(LLViewerMedia::isAnyMediaShowing() ||  -								 LLViewerMedia::isParcelMediaPlaying() || -								 LLViewerMedia::isParcelAudioPlaying())); +								(media_inst->isAnyMediaShowing() ||  +								 media_inst->isParcelMediaPlaying() || +								 media_inst->isParcelAudioPlaying()));  	mEnableAllCtrl->setEnabled( (gSavedSettings.getBOOL("AudioStreamingMusic") ||  								gSavedSettings.getBOOL("AudioStreamingMedia")) &&  							   (disabled_count > 0 ||  								// parcel media (if we have it, and it isn't playing, enable "start") -								(LLViewerMedia::hasParcelMedia() && ! LLViewerMedia::isParcelMediaPlaying()) || +								(media_inst->hasParcelMedia() && ! media_inst->isParcelMediaPlaying()) ||  								// parcel audio (if we have it, and it isn't playing, enable "start") -								(LLViewerMedia::hasParcelAudio() && ! LLViewerMedia::isParcelAudioPlaying()))); +								(media_inst->hasParcelAudio() && ! media_inst->isParcelAudioPlaying())));  	// Iterate over the rows in the control, updating ones whose impl exists, and deleting ones whose impl has gone away.  	std::vector<LLScrollListItem*> items = mMediaList->getAllData(); @@ -731,7 +733,7 @@ void LLPanelNearByMedia::refreshList()  		if (row_id != PARCEL_MEDIA_LIST_ITEM_UUID &&  			row_id != PARCEL_AUDIO_LIST_ITEM_UUID)  		{ -			LLViewerMediaImpl* impl = LLViewerMedia::getMediaImplFromTextureID(row_id); +			LLViewerMediaImpl* impl = media_inst->getMediaImplFromTextureID(row_id);  			if(impl)  			{  				updateListItem(item, impl); @@ -776,26 +778,26 @@ void LLPanelNearByMedia::updateColumns()  void LLPanelNearByMedia::onClickEnableAll()  { -	LLViewerMedia::setAllMediaEnabled(true); +	LLViewerMedia::getInstance()->setAllMediaEnabled(true);  }  void LLPanelNearByMedia::onClickDisableAll()  { -	LLViewerMedia::setAllMediaEnabled(false); +	LLViewerMedia::getInstance()->setAllMediaEnabled(false);  }  void LLPanelNearByMedia::onClickEnableParcelMedia()  {	 -	if ( ! LLViewerMedia::isParcelMediaPlaying() ) +	if ( ! LLViewerMedia::getInstance()->isParcelMediaPlaying() )  	{ -		LLViewerParcelMedia::play(LLViewerParcelMgr::getInstance()->getAgentParcel()); +		LLViewerParcelMedia::getInstance()->play(LLViewerParcelMgr::getInstance()->getAgentParcel());  	}  }  void LLPanelNearByMedia::onClickDisableParcelMedia()  {	  	// This actually unloads the impl, as opposed to "stop"ping the media -	LLViewerParcelMedia::stop(); +	LLViewerParcelMedia::getInstance()->stop();  }  void LLPanelNearByMedia::onCheckItem(LLUICtrl* ctrl, const LLUUID &row_id) @@ -832,7 +834,7 @@ bool LLPanelNearByMedia::setDisabled(const LLUUID &row_id, bool disabled)  		return true;  	}  	else { -		LLViewerMediaImpl* impl = LLViewerMedia::getMediaImplFromTextureID(row_id); +		LLViewerMediaImpl* impl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(row_id);  		if(impl)  		{  			impl->setDisabled(disabled, true); @@ -853,22 +855,22 @@ void LLPanelNearByMedia::onZoomMedia(void* user_data)  void LLPanelNearByMedia::onClickParcelMediaPlay()  { -	LLViewerParcelMedia::play(LLViewerParcelMgr::getInstance()->getAgentParcel()); +	LLViewerParcelMedia::getInstance()->play(LLViewerParcelMgr::getInstance()->getAgentParcel());  }  void LLPanelNearByMedia::onClickParcelMediaStop()  {	 -	if (LLViewerParcelMedia::getParcelMedia()) +	if (LLViewerParcelMedia::getInstance()->getParcelMedia())  	{  		// This stops the media playing, as opposed to unloading it like  		// LLViewerParcelMedia::stop() does -		LLViewerParcelMedia::getParcelMedia()->stop(); +		LLViewerParcelMedia::getInstance()->getParcelMedia()->stop();  	}  }  void LLPanelNearByMedia::onClickParcelMediaPause()  { -	LLViewerParcelMedia::pause(); +	LLViewerParcelMedia::getInstance()->pause();  }  void LLPanelNearByMedia::onClickParcelAudioPlay() @@ -889,7 +891,7 @@ void LLPanelNearByMedia::onClickParcelAudioPlay()  	}  	else  	{ -		LLViewerAudio::getInstance()->startInternetStreamWithAutoFade(LLViewerMedia::getParcelAudioURL()); +		LLViewerAudio::getInstance()->startInternetStreamWithAutoFade(LLViewerMedia::getInstance()->getParcelAudioURL());  	}  } @@ -981,16 +983,17 @@ void LLPanelNearByMedia::onMoreLess()  void LLPanelNearByMedia::updateControls()  {  	LLUUID selected_media_id = mMediaList->getValue().asUUID(); +	LLViewerMedia* media_inst = LLViewerMedia::getInstance();  	if (selected_media_id == PARCEL_AUDIO_LIST_ITEM_UUID)  	{ -		if (!LLViewerMedia::hasParcelAudio() || !gSavedSettings.getBOOL("AudioStreamingMusic")) +		if (!media_inst->getInstance()->hasParcelAudio() || !gSavedSettings.getBOOL("AudioStreamingMusic"))  		{  			// disable controls if audio streaming music is disabled from preference  			showDisabledControls();  		}  		else { -			showTimeBasedControls(LLViewerMedia::isParcelAudioPlaying(), +			showTimeBasedControls(media_inst->isParcelAudioPlaying(),  							  false, // include_zoom  							  false, // is_zoomed  							  gSavedSettings.getBOOL("MuteMusic"),  @@ -999,13 +1002,13 @@ void LLPanelNearByMedia::updateControls()  	}  	else if (selected_media_id == PARCEL_MEDIA_LIST_ITEM_UUID)  	{ -		if (!LLViewerMedia::hasParcelMedia() || !gSavedSettings.getBOOL("AudioStreamingMedia")) +		if (!media_inst->hasParcelMedia() || !gSavedSettings.getBOOL("AudioStreamingMedia"))  		{  			// disable controls if audio streaming media is disabled from preference  			showDisabledControls();  		}  		else { -			LLViewerMediaImpl* impl = LLViewerParcelMedia::getParcelMedia(); +			LLViewerMediaImpl* impl = LLViewerParcelMedia::getInstance()->getParcelMedia();  			if (NULL == impl)  			{  				// Just means it hasn't started yet @@ -1021,7 +1024,7 @@ void LLPanelNearByMedia::updateControls()  			}  			else {  				// non-time-based parcel media -				showBasicControls(LLViewerMedia::isParcelMediaPlaying(),  +				showBasicControls(media_inst->isParcelMediaPlaying(),   							      false,   								  false,   								  impl->getVolume() == 0.0,  @@ -1030,7 +1033,7 @@ void LLPanelNearByMedia::updateControls()  		}  	}  	else { -		LLViewerMediaImpl* impl = LLViewerMedia::getMediaImplFromTextureID(selected_media_id); +		LLViewerMediaImpl* impl = media_inst->getMediaImplFromTextureID(selected_media_id);  		if (NULL == impl || !gSavedSettings.getBOOL("AudioStreamingMedia"))  		{ @@ -1116,7 +1119,7 @@ void LLPanelNearByMedia::onClickSelectedMediaPlay()  	if (selected_media_id != PARCEL_AUDIO_LIST_ITEM_UUID)  	{  		LLViewerMediaImpl *impl = (selected_media_id == PARCEL_MEDIA_LIST_ITEM_UUID) ? -			((LLViewerMediaImpl*)LLViewerParcelMedia::getParcelMedia()) : LLViewerMedia::getMediaImplFromTextureID(selected_media_id); +			((LLViewerMediaImpl*)LLViewerParcelMedia::getInstance()->getParcelMedia()) : LLViewerMedia::getInstance()->getMediaImplFromTextureID(selected_media_id);  		if (NULL != impl)  		{  			if (impl->isMediaTimeBased() && impl->isMediaPaused()) @@ -1127,7 +1130,7 @@ void LLPanelNearByMedia::onClickSelectedMediaPlay()  			}  			else if (impl->isParcelMedia())  			{ -				LLViewerParcelMedia::play(LLViewerParcelMgr::getInstance()->getAgentParcel()); +				LLViewerParcelMedia::getInstance()->play(LLViewerParcelMgr::getInstance()->getAgentParcel());  			}  		}  	}	 @@ -1145,7 +1148,7 @@ void LLPanelNearByMedia::onClickSelectedMediaPause()  		onClickParcelMediaPause();  	}  	else { -		LLViewerMediaImpl* impl = LLViewerMedia::getMediaImplFromTextureID(selected_media_id); +		LLViewerMediaImpl* impl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(selected_media_id);  		if (NULL != impl && impl->isMediaTimeBased() && impl->isMediaPlaying())  		{  			impl->pause(); @@ -1162,7 +1165,7 @@ void LLPanelNearByMedia::onClickSelectedMediaMute()  	}  	else {  		LLViewerMediaImpl* impl = (selected_media_id == PARCEL_MEDIA_LIST_ITEM_UUID) ? -			((LLViewerMediaImpl*)LLViewerParcelMedia::getParcelMedia()) : LLViewerMedia::getMediaImplFromTextureID(selected_media_id); +			((LLViewerMediaImpl*)LLViewerParcelMedia::getInstance()->getParcelMedia()) : LLViewerMedia::getInstance()->getMediaImplFromTextureID(selected_media_id);  		if (NULL != impl)  		{  			F32 volume = impl->getVolume(); @@ -1193,7 +1196,7 @@ void LLPanelNearByMedia::onCommitSelectedMediaVolume()  	}  	else {  		LLViewerMediaImpl* impl = (selected_media_id == PARCEL_MEDIA_LIST_ITEM_UUID) ? -			((LLViewerMediaImpl*)LLViewerParcelMedia::getParcelMedia()) : LLViewerMedia::getMediaImplFromTextureID(selected_media_id); +			((LLViewerMediaImpl*)LLViewerParcelMedia::getInstance()->getParcelMedia()) : LLViewerMedia::getInstance()->getMediaImplFromTextureID(selected_media_id);  		if (NULL != impl)  		{  			impl->setVolume(mVolumeSlider->getValueF32()); diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp index 77bc99da83..c39df3fe8b 100644 --- a/indra/newview/llpanelpicks.cpp +++ b/indra/newview/llpanelpicks.cpp @@ -84,7 +84,7 @@ public:  	bool handle(const LLSD& params, const LLSD& query_map,  		LLMediaCtrl* web)  	{ -		if (!LLUI::sSettingGroups["config"]->getBOOL("EnablePicks")) +		if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnablePicks"))  		{  			LLNotificationsUtil::add("NoPicks", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));  			return true; @@ -198,7 +198,7 @@ public:  	bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web)  	{ -		if (!LLUI::sSettingGroups["config"]->getBOOL("EnableClassifieds")) +		if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableClassifieds"))  		{  			LLNotificationsUtil::add("NoClassifieds", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));  			return true; diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp index 48dd45480e..961e259947 100644 --- a/indra/newview/llpanelplaces.cpp +++ b/indra/newview/llpanelplaces.cpp @@ -97,7 +97,7 @@ public:  			return false;  		} -		if (!LLUI::sSettingGroups["config"]->getBOOL("EnablePlaceProfile")) +		if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnablePlaceProfile"))  		{  			LLNotificationsUtil::add("NoPlaceInfo", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));  			return true; diff --git a/indra/newview/llpanelprimmediacontrols.cpp b/indra/newview/llpanelprimmediacontrols.cpp index 5f413fc3c0..8105beae1b 100644 --- a/indra/newview/llpanelprimmediacontrols.cpp +++ b/indra/newview/llpanelprimmediacontrols.cpp @@ -267,7 +267,7 @@ void LLPanelPrimMediaControls::focusOnTarget()  LLViewerMediaImpl* LLPanelPrimMediaControls::getTargetMediaImpl()  { -	return LLViewerMedia::getMediaImplFromTextureID(mTargetImplID); +	return LLViewerMedia::getInstance()->getMediaImplFromTextureID(mTargetImplID);  }  LLViewerObject* LLPanelPrimMediaControls::getTargetObject() diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp index 8afa35efa0..5f13b223fb 100644 --- a/indra/newview/llpanelprofile.cpp +++ b/indra/newview/llpanelprofile.cpp @@ -110,7 +110,7 @@ public:  		if (verb == "pay")  		{ -			if (!LLUI::sSettingGroups["config"]->getBOOL("EnableAvatarPay")) +			if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableAvatarPay"))  			{  				LLNotificationsUtil::add("NoAvatarPay", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));  				return true; diff --git a/indra/newview/llpopupview.cpp b/indra/newview/llpopupview.cpp index 153f0930c2..d1a9ca229f 100644 --- a/indra/newview/llpopupview.cpp +++ b/indra/newview/llpopupview.cpp @@ -44,13 +44,13 @@ LLPopupView::LLPopupView(const LLPopupView::Params& p)  : LLPanel(p)  {  	// register ourself as handler of UI popups -	LLUI::setPopupFuncs(boost::bind(&LLPopupView::addPopup, this, _1), boost::bind(&LLPopupView::removePopup, this, _1), boost::bind(&LLPopupView::clearPopups, this)); +	LLUI::getInstance()->setPopupFuncs(boost::bind(&LLPopupView::addPopup, this, _1), boost::bind(&LLPopupView::removePopup, this, _1), boost::bind(&LLPopupView::clearPopups, this));  }  LLPopupView::~LLPopupView()  {  	// set empty callback function so we can't handle popups anymore -	LLUI::setPopupFuncs(LLUI::add_popup_t(), LLUI::remove_popup_t(), LLUI::clear_popups_t()); +	LLUI::getInstance()->setPopupFuncs(LLUI::add_popup_t(), LLUI::remove_popup_t(), LLUI::clear_popups_t());  }  void LLPopupView::draw() diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index 9431914ba3..60099b08b7 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -902,7 +902,7 @@ bool LLScriptEdCore::handleSaveChangesDialog(const LLSD& notification, const LLS  void LLScriptEdCore::onBtnHelp()  { -	LLUI::sHelpImpl->showTopic(HELP_LSL_PORTAL_TOPIC); +	LLUI::getInstance()->mHelpImpl->showTopic(HELP_LSL_PORTAL_TOPIC);  }  void LLScriptEdCore::onBtnDynamicHelp() diff --git a/indra/newview/llprogressview.cpp b/indra/newview/llprogressview.cpp index c17b86783d..083a913ef8 100644 --- a/indra/newview/llprogressview.cpp +++ b/indra/newview/llprogressview.cpp @@ -86,7 +86,7 @@ BOOL LLProgressView::postBuild()  	mMediaCtrl->setVisible( false );		// hidden initially  	mMediaCtrl->addObserver( this );		// watch events -	LLViewerMedia::setOnlyAudibleMediaTextureID(mMediaCtrl->getTextureID()); +	LLViewerMedia::getInstance()->setOnlyAudibleMediaTextureID(mMediaCtrl->getTextureID());  	mCancelBtn = getChild<LLButton>("cancel_btn");  	mCancelBtn->setClickedCallback(  LLProgressView::onCancelButtonClicked, NULL ); @@ -263,7 +263,7 @@ void LLProgressView::draw()  		{  			mFadeToWorldTimer.stop(); -			LLViewerMedia::setOnlyAudibleMediaTextureID(LLUUID::null); +			LLViewerMedia::getInstance()->setOnlyAudibleMediaTextureID(LLUUID::null);  			// Fade is complete, release focus  			gFocusMgr.releaseFocusIfNeeded( this ); diff --git a/indra/newview/llsaveoutfitcombobtn.cpp b/indra/newview/llsaveoutfitcombobtn.cpp index 32295cd96f..b1cb6d08d0 100644 --- a/indra/newview/llsaveoutfitcombobtn.cpp +++ b/indra/newview/llsaveoutfitcombobtn.cpp @@ -56,7 +56,7 @@ LLSaveOutfitComboBtn::LLSaveOutfitComboBtn(LLPanel* parent, bool saveAsDefaultAc  void LLSaveOutfitComboBtn::showSaveMenu()  {  	S32 x, y; -	LLUI::getMousePositionLocal(mParent, &x, &y); +	LLUI::getInstance()->getMousePositionLocal(mParent, &x, &y);  	mSaveMenu->updateParent(LLMenuGL::sMenuContainer);  	LLMenuGL::showPopup(mParent, mSaveMenu, x, y); diff --git a/indra/newview/llshareavatarhandler.cpp b/indra/newview/llshareavatarhandler.cpp index 6b4f1d3dc6..142e00c3f7 100644 --- a/indra/newview/llshareavatarhandler.cpp +++ b/indra/newview/llshareavatarhandler.cpp @@ -40,7 +40,7 @@ public:  	bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web)  	{ -		if (!LLUI::sSettingGroups["config"]->getBOOL("EnableAvatarShare")) +		if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableAvatarShare"))  		{  			LLNotificationsUtil::add("NoAvatarShare", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));  			return true; diff --git a/indra/newview/llskinningutil.cpp b/indra/newview/llskinningutil.cpp index 0fa4c2b114..8e1f80abfc 100644 --- a/indra/newview/llskinningutil.cpp +++ b/indra/newview/llskinningutil.cpp @@ -83,10 +83,6 @@ void dump_avatar_and_skin_state(const std::string& reason, LLVOAvatar *avatar, c      }  } -void LLSkinningUtil::initClass() -{ -} -  U32 LLSkinningUtil::getMaxJointCount()  {      U32 result = LL_MAX_JOINTS_PER_MESH_OBJECT; diff --git a/indra/newview/llskinningutil.h b/indra/newview/llskinningutil.h index ccc501adc0..2c77e030aa 100644 --- a/indra/newview/llskinningutil.h +++ b/indra/newview/llskinningutil.h @@ -34,7 +34,6 @@ class LLVolumeFace;  namespace LLSkinningUtil  { -    void initClass();      U32 getMaxJointCount();      U32 getMeshJointCount(const LLMeshSkinInfo *skin);      void scrubInvalidJoints(LLVOAvatar *avatar, LLMeshSkinInfo* skin); diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 0d99b35aee..82e1d6be4a 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -1226,8 +1226,6 @@ bool idle_startup()  		LLSurface::initClasses();  		display_startup(); - -		LLFace::initClass();  		display_startup();  		LLDrawable::initClass(); @@ -1291,7 +1289,7 @@ bool idle_startup()  		display_startup();  		LLStartUp::setStartupState( STATE_MULTIMEDIA_INIT ); -		LLConversationLog::getInstance(); +		LLConversationLog::initParamSingleton();  		return FALSE;  	} @@ -2806,9 +2804,6 @@ void LLStartUp::multimediaInit()  	std::string msg = LLTrans::getString("LoginInitializingMultimedia");  	set_startup_status(0.42f, msg.c_str(), gAgent.mMOTD.c_str());  	display_startup(); - -	// LLViewerMedia::initClass(); -	LLViewerParcelMedia::initClass();  }  void LLStartUp::fontInit() @@ -2836,9 +2831,10 @@ void LLStartUp::initNameCache()  	// Start cache in not-running state until we figure out if we have  	// capabilities for display name lookup -	LLAvatarNameCache::initClass(false,gSavedSettings.getBOOL("UsePeopleAPI")); -	LLAvatarNameCache::setUseDisplayNames(gSavedSettings.getBOOL("UseDisplayNames")); -	LLAvatarNameCache::setUseUsernames(gSavedSettings.getBOOL("NameTagShowUsernames")); +	LLAvatarNameCache* cache_inst = LLAvatarNameCache::getInstance(); +	cache_inst->setUsePeopleAPI(gSavedSettings.getBOOL("UsePeopleAPI")); +	cache_inst->setUseDisplayNames(gSavedSettings.getBOOL("UseDisplayNames")); +	cache_inst->setUseUsernames(gSavedSettings.getBOOL("NameTagShowUsernames"));  } @@ -2853,8 +2849,6 @@ void LLStartUp::initExperiences()  void LLStartUp::cleanupNameCache()  { -	SUBSYSTEM_CLEANUP(LLAvatarNameCache); -  	delete gCacheName;  	gCacheName = NULL;  } @@ -3543,7 +3537,7 @@ bool process_login_success_response()  	if(!openid_url.empty())  	{  		std::string openid_token = response["openid_token"]; -		LLViewerMedia::openIDSetup(openid_url, openid_token); +		LLViewerMedia::getInstance()->openIDSetup(openid_url, openid_token);  	}  	gMaxAgentGroups = DEFAULT_MAX_AGENT_GROUPS; diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index f3c270a97b..9eda33d3d2 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -183,7 +183,7 @@ BOOL LLStatusBar::postBuild()  	mMediaToggle->setClickedCallback( &LLStatusBar::onClickMediaToggle, this );  	mMediaToggle->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterNearbyMedia, this)); -	LLHints::registerHintTarget("linden_balance", getChild<LLView>("balance_bg")->getHandle()); +	LLHints::getInstance()->registerHintTarget("linden_balance", getChild<LLView>("balance_bg")->getHandle());  	gSavedSettings.getControl("MuteAudio")->getSignal()->connect(boost::bind(&LLStatusBar::onVolumeChanged, this, _2)); @@ -310,16 +310,18 @@ void LLStatusBar::refresh()  	// update the master volume button state  	bool mute_audio = LLAppViewer::instance()->getMasterSystemAudioMute();  	mBtnVolume->setToggleState(mute_audio); -	 + +	LLViewerMedia* media_inst = LLViewerMedia::getInstance(); +  	// Disable media toggle if there's no media, parcel media, and no parcel audio  	// (or if media is disabled)  	bool button_enabled = (gSavedSettings.getBOOL("AudioStreamingMusic")||gSavedSettings.getBOOL("AudioStreamingMedia")) &&  -						  (LLViewerMedia::hasInWorldMedia() || LLViewerMedia::hasParcelMedia() || LLViewerMedia::hasParcelAudio()); +						  (media_inst->hasInWorldMedia() || media_inst->hasParcelMedia() || media_inst->hasParcelAudio());  	mMediaToggle->setEnabled(button_enabled);  	// Note the "sense" of the toggle is opposite whether media is playing or not -	bool any_media_playing = (LLViewerMedia::isAnyMediaPlaying() ||  -							  LLViewerMedia::isParcelMediaPlaying() || -							  LLViewerMedia::isParcelAudioPlaying()); +	bool any_media_playing = (media_inst->isAnyMediaPlaying() ||  +							  media_inst->isParcelMediaPlaying() || +							  media_inst->isParcelAudioPlaying());  	mMediaToggle->setValue(!any_media_playing);  } @@ -501,8 +503,8 @@ void LLStatusBar::onMouseEnterPresets()  	mPanelPresetsPulldown->setShape(pulldown_rect);  	// show the master presets pull-down -	LLUI::clearPopups(); -	LLUI::addPopup(mPanelPresetsPulldown); +	LLUI::getInstance()->clearPopups(); +	LLUI::getInstance()->addPopup(mPanelPresetsPulldown);  	mPanelNearByMedia->setVisible(FALSE);  	mPanelVolumePulldown->setVisible(FALSE);  	mPanelPresetsPulldown->setVisible(TRUE); @@ -525,8 +527,8 @@ void LLStatusBar::onMouseEnterVolume()  	// show the master volume pull-down -	LLUI::clearPopups(); -	LLUI::addPopup(mPanelVolumePulldown); +	LLUI::getInstance()->clearPopups(); +	LLUI::getInstance()->addPopup(mPanelVolumePulldown);  	mPanelPresetsPulldown->setVisible(FALSE);  	mPanelNearByMedia->setVisible(FALSE);  	mPanelVolumePulldown->setVisible(TRUE); @@ -548,8 +550,8 @@ void LLStatusBar::onMouseEnterNearbyMedia()  	// show the master volume pull-down  	mPanelNearByMedia->setShape(nearby_media_rect); -	LLUI::clearPopups(); -	LLUI::addPopup(mPanelNearByMedia); +	LLUI::getInstance()->clearPopups(); +	LLUI::getInstance()->addPopup(mPanelNearByMedia);  	mPanelPresetsPulldown->setVisible(FALSE);  	mPanelVolumePulldown->setVisible(FALSE); @@ -578,7 +580,7 @@ void LLStatusBar::onClickMediaToggle(void* data)  	LLStatusBar *status_bar = (LLStatusBar*)data;  	// "Selected" means it was showing the "play" icon (so media was playing), and now it shows "pause", so turn off media  	bool pause = status_bar->mMediaToggle->getValue(); -	LLViewerMedia::setAllMediaPaused(pause); +	LLViewerMedia::getInstance()->setAllMediaPaused(pause);  }  BOOL can_afford_transaction(S32 cost) diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index 1396a8546d..4db597909c 100644 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -382,7 +382,7 @@ BOOL LLFloaterTexturePicker::postBuild()  	mLocalScrollCtrl = getChild<LLScrollListCtrl>("l_name_list");  	mLocalScrollCtrl->setCommitCallback(onLocalScrollCommit, this); -	LLLocalBitmapMgr::feedScrollList(mLocalScrollCtrl); +	LLLocalBitmapMgr::getInstance()->feedScrollList(mLocalScrollCtrl);  	mNoCopyTextureSelected = FALSE; @@ -694,7 +694,7 @@ void LLFloaterTexturePicker::onBtnSelect(void* userdata)  		if (self->mLocalScrollCtrl->getVisible() && !self->mLocalScrollCtrl->getAllSelected().empty())  		{  			LLUUID temp_id = self->mLocalScrollCtrl->getFirstSelected()->getColumn(LOCAL_TRACKING_ID_COLUMN)->getValue().asUUID(); -			local_id = LLLocalBitmapMgr::getWorldID(temp_id); +			local_id = LLLocalBitmapMgr::getInstance()->getWorldID(temp_id);  		}  	}  	if (self->mOnFloaterCommitCallback) @@ -781,10 +781,10 @@ void LLFloaterTexturePicker::onModeSelect(LLUICtrl* ctrl, void *userdata)  // static  void LLFloaterTexturePicker::onBtnAdd(void* userdata)  { -	if (LLLocalBitmapMgr::addUnit() == true) +	if (LLLocalBitmapMgr::getInstance()->addUnit() == true)  	{  		LLFloaterTexturePicker* self = (LLFloaterTexturePicker*) userdata; -		LLLocalBitmapMgr::feedScrollList(self->mLocalScrollCtrl); +		LLLocalBitmapMgr::getInstance()->feedScrollList(self->mLocalScrollCtrl);  	}  } @@ -803,13 +803,13 @@ void LLFloaterTexturePicker::onBtnRemove(void* userdata)  			if (list_item)  			{  				LLUUID tracking_id = list_item->getColumn(LOCAL_TRACKING_ID_COLUMN)->getValue().asUUID(); -				LLLocalBitmapMgr::delUnit(tracking_id); +				LLLocalBitmapMgr::getInstance()->delUnit(tracking_id);  			}  		}  		self->getChild<LLButton>("l_rem_btn")->setEnabled(false);  		self->getChild<LLButton>("l_upl_btn")->setEnabled(false); -		LLLocalBitmapMgr::feedScrollList(self->mLocalScrollCtrl); +		LLLocalBitmapMgr::getInstance()->feedScrollList(self->mLocalScrollCtrl);  	}  } @@ -829,7 +829,7 @@ void LLFloaterTexturePicker::onBtnUpload(void* userdata)  	   in the future, it might be a good idea to check the vector size and if more than one units is selected - opt for multi-image upload. */  	LLUUID tracking_id = (LLUUID)self->mLocalScrollCtrl->getSelectedItemLabel(LOCAL_TRACKING_ID_COLUMN); -	std::string filename = LLLocalBitmapMgr::getFilename(tracking_id); +	std::string filename = LLLocalBitmapMgr::getInstance()->getFilename(tracking_id);  	if (!filename.empty())  	{ @@ -852,7 +852,7 @@ void LLFloaterTexturePicker::onLocalScrollCommit(LLUICtrl* ctrl, void* userdata)  	if (has_selection)  	{  		LLUUID tracking_id = (LLUUID)self->mLocalScrollCtrl->getSelectedItemLabel(LOCAL_TRACKING_ID_COLUMN);  -		LLUUID inworld_id = LLLocalBitmapMgr::getWorldID(tracking_id); +		LLUUID inworld_id = LLLocalBitmapMgr::getInstance()->getWorldID(tracking_id);  		if (self->mSetImageAssetIDCallback)  		{  			self->mSetImageAssetIDCallback(inworld_id); diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp index b9b05966bc..870e0d94f0 100644 --- a/indra/newview/lltoast.cpp +++ b/indra/newview/lltoast.cpp @@ -430,7 +430,7 @@ void LLToast::setVisible(BOOL show)  void LLToast::updateHoveredState()  {  	S32 x, y; -	LLUI::getMousePositionScreen(&x, &y); +	LLUI::getInstance()->getMousePositionScreen(&x, &y);  	LLRect panel_rc = mWrapperPanel->calcScreenRect();  	LLRect button_rc; diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp index 495c9c1f44..941cb410fc 100644 --- a/indra/newview/lltoastalertpanel.cpp +++ b/indra/newview/lltoastalertpanel.cpp @@ -45,6 +45,7 @@  #include "llrootview.h"  #include "lltransientfloatermgr.h"  #include "llviewercontrol.h" // for gSavedSettings +#include "llweb.h"  #include <boost/algorithm/string.hpp> @@ -52,7 +53,6 @@ const S32 MAX_ALLOWED_MSG_WIDTH = 400;  const F32 DEFAULT_BUTTON_DELAY = 0.5f;  /*static*/ LLControlGroup* LLToastAlertPanel::sSettings = NULL; -/*static*/ LLToastAlertPanel::URLLoader* LLToastAlertPanel::sURLLoader;  //-----------------------------------------------------------------------------  // Private methods @@ -555,9 +555,16 @@ void LLToastAlertPanel::onButtonPressed( const LLSD& data, S32 button )  	response[button_data->mButton->getName()] = true;  	// If we declared a URL and chose the URL option, go to the url -	if (!button_data->mURL.empty() && sURLLoader != NULL) +	if (!button_data->mURL.empty())  	{ -		sURLLoader->load(button_data->mURL, button_data->mURLExternal); +		if (button_data->mURLExternal) +		{ +			LLWeb::loadURLExternal(button_data->mURL); +		} +		else +		{ +			LLWeb::loadURL(button_data->mURL); +		}  	}  	mNotification->respond(response); // new notification reponse diff --git a/indra/newview/lltoastalertpanel.h b/indra/newview/lltoastalertpanel.h index d1be5e018e..15bf11d42c 100644 --- a/indra/newview/lltoastalertpanel.h +++ b/indra/newview/lltoastalertpanel.h @@ -52,20 +52,6 @@ class LLToastAlertPanel  public:  	typedef bool (*display_callback_t)(S32 modal); -	class URLLoader -	{ -	public: -		virtual void load(const std::string& url, bool force_open_externally = 0) = 0; -		virtual ~URLLoader() -		{ -		} -	}; - -	static void setURLLoader(URLLoader* loader) -	{ -		sURLLoader = loader; -	} -	  public:  	// User's responsibility to call show() after creating these.  	LLToastAlertPanel( LLNotificationPtr notep, bool is_modal ); @@ -94,7 +80,6 @@ private:  	BOOL hasTitleBar() const;  private: -	static URLLoader* sURLLoader;  	static LLControlGroup* sSettings;  	struct ButtonData diff --git a/indra/newview/lltoolfocus.cpp b/indra/newview/lltoolfocus.cpp index 596951fdfb..07f46c5fbe 100644 --- a/indra/newview/lltoolfocus.cpp +++ b/indra/newview/lltoolfocus.cpp @@ -293,12 +293,12 @@ BOOL LLToolCamera::handleMouseUp(S32 x, S32 y, MASK mask)  				BOOL success = LLViewerCamera::getInstance()->projectPosAgentToScreen(focus_pos, mouse_pos);  				if (success)  				{ -					LLUI::setMousePositionScreen(mouse_pos.mX, mouse_pos.mY); +					LLUI::getInstance()->setMousePositionScreen(mouse_pos.mX, mouse_pos.mY);  				}  			}  			else if (mMouseSteering)  			{ -				LLUI::setMousePositionScreen(mMouseDownX, mMouseDownY); +				LLUI::getInstance()->setMousePositionScreen(mMouseDownX, mMouseDownY);  			}  			else  			{ @@ -308,7 +308,7 @@ BOOL LLToolCamera::handleMouseUp(S32 x, S32 y, MASK mask)  		else  		{  			// not a valid zoomable object -			LLUI::setMousePositionScreen(mMouseDownX, mMouseDownY); +			LLUI::getInstance()->setMousePositionScreen(mMouseDownX, mMouseDownY);  		}  		// calls releaseMouse() internally diff --git a/indra/newview/lltoolgrab.cpp b/indra/newview/lltoolgrab.cpp index f3e661e71a..3831f7d67d 100644 --- a/indra/newview/lltoolgrab.cpp +++ b/indra/newview/lltoolgrab.cpp @@ -1001,7 +1001,7 @@ void LLToolGrabBase::onMouseCaptureLost()  			// ...move cursor "naturally", as if it had moved when hidden  			S32 x = mGrabPick.mMousePt.mX + mAccumDeltaX;  			S32 y = mGrabPick.mMousePt.mY + mAccumDeltaY; -			LLUI::setMousePositionScreen(x, y); +			LLUI::getInstance()->setMousePositionScreen(x, y);  		}  		else if (mHasMoved)  		{ @@ -1011,13 +1011,13 @@ void LLToolGrabBase::onMouseCaptureLost()  			LLCoordGL gl_point;  			if (LLViewerCamera::getInstance()->projectPosAgentToScreen(grab_point_agent, gl_point))  			{ -				LLUI::setMousePositionScreen(gl_point.mX, gl_point.mY); +				LLUI::getInstance()->setMousePositionScreen(gl_point.mX, gl_point.mY);  			}  		}  		else  		{  			// ...move cursor back to click position -			LLUI::setMousePositionScreen(mGrabPick.mMousePt.mX, mGrabPick.mMousePt.mY); +			LLUI::getInstance()->setMousePositionScreen(mGrabPick.mMousePt.mX, mGrabPick.mMousePt.mY);  		}  		gViewerWindow->showCursor(); diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index f184b22ccb..276d24e9ed 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -1130,7 +1130,7 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l  				const LLMediaEntry* mep = has_media ? tep->getMediaData() : NULL;  				if (mep)  				{ -					viewer_media_t media_impl = LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()); +					viewer_media_t media_impl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mep->getMediaID());  					LLPluginClassMedia* media_plugin = NULL;  					if (media_impl.notNull() && (media_impl->hasMedia())) @@ -1200,7 +1200,7 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l  BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask)  { -	if (!LLUI::sSettingGroups["config"]->getBOOL("ShowHoverTips")) return TRUE; +	if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("ShowHoverTips")) return TRUE;  	if (!mHoverPick.isValid()) return TRUE;  	LLViewerObject* hover_object = mHoverPick.getObject(); @@ -1305,7 +1305,7 @@ void LLToolPie::playCurrentMedia(const LLPickInfo& info)  	LLPluginClassMedia* media_plugin = NULL; -	viewer_media_t media_impl = LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()); +	viewer_media_t media_impl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mep->getMediaID());  	if(media_impl.notNull() && media_impl->hasMedia())  	{ @@ -1357,7 +1357,7 @@ void LLToolPie::VisitHomePage(const LLPickInfo& info)  	LLPluginClassMedia* media_plugin = NULL; -	viewer_media_t media_impl = LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()); +	viewer_media_t media_impl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mep->getMediaID());  	if(media_impl.notNull() && media_impl->hasMedia())  	{ @@ -1457,19 +1457,19 @@ static void handle_click_action_play()  	LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();  	if (!parcel) return; -	LLViewerMediaImpl::EMediaStatus status = LLViewerParcelMedia::getStatus(); +	LLViewerMediaImpl::EMediaStatus status = LLViewerParcelMedia::getInstance()->getStatus();  	switch(status)  	{  		case LLViewerMediaImpl::MEDIA_PLAYING: -			LLViewerParcelMedia::pause(); +			LLViewerParcelMedia::getInstance()->pause();  			break;  		case LLViewerMediaImpl::MEDIA_PAUSED: -			LLViewerParcelMedia::start(); +			LLViewerParcelMedia::getInstance()->start();  			break;  		default: -			LLViewerParcelMedia::play(parcel); +			LLViewerParcelMedia::getInstance()->play(parcel);  			break;  	}  } @@ -1500,7 +1500,7 @@ bool LLToolPie::handleMediaClick(const LLPickInfo& pick)      if (!mep)          return false; -    viewer_media_t media_impl = LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()); +    viewer_media_t media_impl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mep->getMediaID());      if (gSavedSettings.getBOOL("MediaOnAPrimUI"))      { @@ -1554,7 +1554,7 @@ bool LLToolPie::handleMediaDblClick(const LLPickInfo& pick)      if (!mep)          return false; -    viewer_media_t media_impl = LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()); +    viewer_media_t media_impl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mep->getMediaID());      if (gSavedSettings.getBOOL("MediaOnAPrimUI"))      { @@ -1609,7 +1609,7 @@ bool LLToolPie::handleMediaHover(const LLPickInfo& pick)  	if (mep  		&& gSavedSettings.getBOOL("MediaOnAPrimUI"))  	{		 -		viewer_media_t media_impl = LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()); +		viewer_media_t media_impl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mep->getMediaID());  		if(media_impl.notNull())  		{ @@ -1647,7 +1647,7 @@ bool LLToolPie::handleMediaMouseUp()  	if(mMediaMouseCaptureID.notNull())  	{  		// Face media needs to know the mouse went up. -		viewer_media_t media_impl = LLViewerMedia::getMediaImplFromTextureID(mMediaMouseCaptureID); +		viewer_media_t media_impl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mMediaMouseCaptureID);  		if(media_impl)  		{  			// This will send a mouseUp event to the plugin using the last known mouse coordinate (from a mouseDown or mouseMove), which is what we want. @@ -1676,7 +1676,7 @@ static void handle_click_action_open_media(LLPointer<LLViewerObject> objectp)  	if( face < 0 || face >= objectp->getNumTEs() ) return;  	// is media playing on this face? -	if (LLViewerMedia::getMediaImplFromTextureID(objectp->getTE(face)->getID()) != NULL) +	if (LLViewerMedia::getInstance()->getMediaImplFromTextureID(objectp->getTE(face)->getID()) != NULL)  	{  		handle_click_action_play();  		return; @@ -1706,7 +1706,7 @@ static ECursorType cursor_from_parcel_media(U8 click_action)  	open_cursor = UI_CURSOR_TOOLMEDIAOPEN; -	LLViewerMediaImpl::EMediaStatus status = LLViewerParcelMedia::getStatus(); +	LLViewerMediaImpl::EMediaStatus status = LLViewerParcelMedia::getInstance()->getStatus();  	switch(status)  	{  		case LLViewerMediaImpl::MEDIA_PLAYING: diff --git a/indra/newview/lluilistener.cpp b/indra/newview/lluilistener.cpp index 6b2cd71d40..956f5cf187 100644 --- a/indra/newview/lluilistener.cpp +++ b/indra/newview/lluilistener.cpp @@ -84,8 +84,8 @@ void LLUIListener::getValue(const LLSD&event) const  {      LLSD reply = LLSD::emptyMap(); -    const LLView* root = LLUI::getRootView(); -    const LLView* view = LLUI::resolvePath(root, event["path"].asString()); +    const LLView* root = LLUI::getInstance()->getRootView(); +    const LLView* view = LLUI::getInstance()->resolvePath(root, event["path"].asString());      const LLUICtrl* ctrl(dynamic_cast<const LLUICtrl*>(view));      if (ctrl)  diff --git a/indra/newview/llurldispatcher.cpp b/indra/newview/llurldispatcher.cpp index 78268944fc..794326e752 100644 --- a/indra/newview/llurldispatcher.cpp +++ b/indra/newview/llurldispatcher.cpp @@ -187,7 +187,7 @@ bool LLURLDispatcherImpl::dispatchRegion(const LLSLURL& slurl, const std::string  	LLWorldMapMessage::getInstance()->sendNamedRegionRequest(slurl.getRegion(),  									  LLURLDispatcherImpl::regionNameCallback,  									  slurl.getSLURLString(), -									  LLUI::sSettingGroups["config"]->getBOOL("SLURLTeleportDirectly"));	// don't teleport +									  LLUI::getInstance()->mSettingGroups["config"]->getBOOL("SLURLTeleportDirectly"));	// don't teleport  	return true;  } diff --git a/indra/newview/llurllineeditorctrl.cpp b/indra/newview/llurllineeditorctrl.cpp index 8a61114852..2b7e598a59 100644 --- a/indra/newview/llurllineeditorctrl.cpp +++ b/indra/newview/llurllineeditorctrl.cpp @@ -66,7 +66,7 @@ void LLURLLineEditor::cut()  		if( need_to_rollback )  		{  			rollback.doRollback( this ); -			LLUI::reportBadKeystroke(); +			LLUI::getInstance()->reportBadKeystroke();  		}  		else  		if( mKeystrokeCallback ) diff --git a/indra/newview/llurlwhitelist.cpp b/indra/newview/llurlwhitelist.cpp index 3a7285974e..b4d38f5d1e 100644 --- a/indra/newview/llurlwhitelist.cpp +++ b/indra/newview/llurlwhitelist.cpp @@ -31,8 +31,6 @@  #include <iostream>  #include <fstream> -LLUrlWhiteList* LLUrlWhiteList::sInstance = 0; -  ///////////////////////////////////////////////////////////////////////////////  //  LLUrlWhiteList::LLUrlWhiteList () : @@ -50,29 +48,6 @@ LLUrlWhiteList::~LLUrlWhiteList ()  }  /////////////////////////////////////////////////////////////////////////////// - -//static -void LLUrlWhiteList::initClass () -{ -    if ( ! sInstance ) -	{ -        sInstance = new LLUrlWhiteList (); -	} -} - -//static -void LLUrlWhiteList::cleanupClass () -{ -	delete sInstance; -	sInstance = NULL; -} - -LLUrlWhiteList* LLUrlWhiteList::getInstance () -{ -	return sInstance; -} - -///////////////////////////////////////////////////////////////////////////////  //  bool LLUrlWhiteList::load ()  { diff --git a/indra/newview/llurlwhitelist.h b/indra/newview/llurlwhitelist.h index b0969051a7..c2511b08fd 100644 --- a/indra/newview/llurlwhitelist.h +++ b/indra/newview/llurlwhitelist.h @@ -30,15 +30,11 @@  #include <list> -class LLUrlWhiteList +class LLUrlWhiteList : public LLSingleton<LLUrlWhiteList>  { +	LLSINGLETON(LLUrlWhiteList); +	~LLUrlWhiteList();  	public: -		virtual ~LLUrlWhiteList (); - -		static void initClass(); -		static void cleanupClass(); -		static LLUrlWhiteList* getInstance (); -  		bool load ();  		bool save (); @@ -51,9 +47,6 @@ class LLUrlWhiteList  		bool getNext ( std::string& valueOut );  	private: -		LLUrlWhiteList (); -		static LLUrlWhiteList* sInstance; -  		typedef std::vector < std::string > string_list_t ;  		bool mLoaded; diff --git a/indra/newview/llvieweraudio.cpp b/indra/newview/llvieweraudio.cpp index 7ce9d858dd..f81c89f898 100644 --- a/indra/newview/llvieweraudio.cpp +++ b/indra/newview/llvieweraudio.cpp @@ -463,7 +463,7 @@ void audio_update_volume(bool force_update)  	F32 media_volume = gSavedSettings.getF32("AudioLevelMedia");  	BOOL media_muted = gSavedSettings.getBOOL("MuteMedia");  	media_volume = mute_volume * master_volume * media_volume; -	LLViewerMedia::setVolume( media_muted ? 0.0f : media_volume ); +	LLViewerMedia::getInstance()->setVolume( media_muted ? 0.0f : media_volume );  	// Voice  	if (LLVoiceClient::getInstance()) diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 64f6123f5d..e1409d31ce 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -1507,9 +1507,10 @@ void render_ui_2d()  	if (gSavedSettings.getBOOL("RenderUIBuffer"))  	{ -		if (LLUI::sDirty) +		LLUI* ui_inst = LLUI::getInstance(); +		if (ui_inst->mDirty)  		{ -			LLUI::sDirty = FALSE; +			ui_inst->mDirty = FALSE;  			LLRect t_rect;  			gPipeline.mUIScreen.bindTarget(); @@ -1517,25 +1518,25 @@ void render_ui_2d()  			{  				static const S32 pad = 8; -				LLUI::sDirtyRect.mLeft -= pad; -				LLUI::sDirtyRect.mRight += pad; -				LLUI::sDirtyRect.mBottom -= pad; -				LLUI::sDirtyRect.mTop += pad; +				ui_inst->mDirtyRect.mLeft -= pad; +				ui_inst->mDirtyRect.mRight += pad; +				ui_inst->mDirtyRect.mBottom -= pad; +				ui_inst->mDirtyRect.mTop += pad;  				LLGLEnable scissor(GL_SCISSOR_TEST); -				static LLRect last_rect = LLUI::sDirtyRect; +				static LLRect last_rect = ui_inst->mDirtyRect;  				//union with last rect to avoid mouse poop -				last_rect.unionWith(LLUI::sDirtyRect); +				last_rect.unionWith(ui_inst->mDirtyRect); -				t_rect = LLUI::sDirtyRect; -				LLUI::sDirtyRect = last_rect; +				t_rect = ui_inst->mDirtyRect; +				ui_inst->mDirtyRect = last_rect;  				last_rect = t_rect; -				last_rect.mLeft = LLRect::tCoordType(last_rect.mLeft / LLUI::getScaleFactor().mV[0]); -				last_rect.mRight = LLRect::tCoordType(last_rect.mRight / LLUI::getScaleFactor().mV[0]); -				last_rect.mTop = LLRect::tCoordType(last_rect.mTop / LLUI::getScaleFactor().mV[1]); -				last_rect.mBottom = LLRect::tCoordType(last_rect.mBottom / LLUI::getScaleFactor().mV[1]); +				last_rect.mLeft = LLRect::tCoordType(last_rect.mLeft / ui_inst->getScaleFactor().mV[0]); +				last_rect.mRight = LLRect::tCoordType(last_rect.mRight / ui_inst->getScaleFactor().mV[0]); +				last_rect.mTop = LLRect::tCoordType(last_rect.mTop / ui_inst->getScaleFactor().mV[1]); +				last_rect.mBottom = LLRect::tCoordType(last_rect.mBottom / ui_inst->getScaleFactor().mV[1]);  				LLRect clip_rect(last_rect); @@ -1547,7 +1548,7 @@ void render_ui_2d()  			gPipeline.mUIScreen.flush();  			gGL.setColorMask(true, false); -			LLUI::sDirtyRect = t_rect; +			ui_inst->mDirtyRect = t_rect;  		}  		LLGLDisable cull(GL_CULL_FACE); diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index 1ab7ec0156..d9998cb7cb 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -237,7 +237,7 @@ public:  			return false;  		} -		if (!LLUI::sSettingGroups["config"]->getBOOL("EnableInventory")) +		if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableInventory"))  		{  				LLNotificationsUtil::add("NoInventory", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));  				return true; diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index d8745b1eca..857799889b 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -77,12 +77,6 @@  #include <boost/bind.hpp>	// for SkinFolder listener  #include <boost/signals2.hpp> -/*static*/ const char* LLViewerMedia::AUTO_PLAY_MEDIA_SETTING = "ParcelMediaAutoPlayEnable"; -/*static*/ const char* LLViewerMedia::SHOW_MEDIA_ON_OTHERS_SETTING = "MediaShowOnOthers"; -/*static*/ const char* LLViewerMedia::SHOW_MEDIA_WITHIN_PARCEL_SETTING = "MediaShowWithinParcel"; -/*static*/ const char* LLViewerMedia::SHOW_MEDIA_OUTSIDE_PARCEL_SETTING = "MediaShowOutsideParcel"; - -  class LLMediaFilePicker : public LLFilePickerThread // deletes itself when done  {  public: @@ -191,9 +185,6 @@ LLViewerMediaObserver::~LLViewerMediaObserver()  } -LLURL LLViewerMedia::sOpenIDURL; -std::string LLViewerMedia::sOpenIDCookie; -LLPluginClassMedia* LLViewerMedia::sSpareBrowserMediaSource = NULL;  static LLViewerMedia::impl_list sViewerMediaImplList;  static LLViewerMedia::impl_id_map sViewerMediaTextureIDMap;  static LLTimer sMediaCreateTimer; @@ -203,8 +194,6 @@ static bool sForceUpdate = false;  static LLUUID sOnlyAudibleTextureID = LLUUID::null;  static F64 sLowestLoadableImplInterest = 0.0f;  static bool sAnyMediaShowing = false; -static bool sAnyMediaPlaying = false; -static boost::signals2::connection sTeleportFinishConnection;  //////////////////////////////////////////////////////////////////////////////////////////  static void add_media_impl(LLViewerMediaImpl* media) @@ -230,7 +219,7 @@ static void remove_media_impl(LLViewerMediaImpl* media)  class LLViewerMediaMuteListObserver : public LLMuteListObserver  { -	/* virtual */ void onChange()  { LLViewerMedia::muteListChanged();} +	/* virtual */ void onChange()  { LLViewerMedia::getInstance()->muteListChanged();}  };  static LLViewerMediaMuteListObserver sViewerMediaMuteListObserver; @@ -239,9 +228,40 @@ static bool sViewerMediaMuteListObserverInitialized = false;  //////////////////////////////////////////////////////////////////////////////////////////  // LLViewerMedia -  ////////////////////////////////////////////////////////////////////////////////////////// + +/*static*/ const char* LLViewerMedia::AUTO_PLAY_MEDIA_SETTING = "ParcelMediaAutoPlayEnable"; +/*static*/ const char* LLViewerMedia::SHOW_MEDIA_ON_OTHERS_SETTING = "MediaShowOnOthers"; +/*static*/ const char* LLViewerMedia::SHOW_MEDIA_WITHIN_PARCEL_SETTING = "MediaShowWithinParcel"; +/*static*/ const char* LLViewerMedia::SHOW_MEDIA_OUTSIDE_PARCEL_SETTING = "MediaShowOutsideParcel"; + +LLViewerMedia::LLViewerMedia(): +mAnyMediaShowing(false), +mAnyMediaPlaying(false), +mSpareBrowserMediaSource(NULL) +{ +} + +LLViewerMedia::~LLViewerMedia() +{ +    gIdleCallbacks.deleteFunction(LLViewerMedia::onIdle, NULL); +    mTeleportFinishConnection.disconnect(); +    if (mSpareBrowserMediaSource != NULL) +    { +        delete mSpareBrowserMediaSource; +        mSpareBrowserMediaSource = NULL; +    } +} +  // static +void LLViewerMedia::initSingleton() +{ +    gIdleCallbacks.addFunction(LLViewerMedia::onIdle, NULL); +    mTeleportFinishConnection = LLViewerParcelMgr::getInstance()-> +        setTeleportFinishedCallback(boost::bind(&LLViewerMedia::onTeleportFinished, this)); +} + +//////////////////////////////////////////////////////////////////////////////////////////  viewer_media_t LLViewerMedia::newMediaImpl(  											 const LLUUID& texture_id,  											 S32 media_width, @@ -368,7 +388,6 @@ viewer_media_t LLViewerMedia::updateMediaImpl(LLMediaEntry* media_entry, const s  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  LLViewerMediaImpl* LLViewerMedia::getMediaImplFromTextureID(const LLUUID& texture_id)  {  	LLViewerMediaImpl* result = NULL; @@ -384,7 +403,6 @@ LLViewerMediaImpl* LLViewerMedia::getMediaImplFromTextureID(const LLUUID& textur  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  std::string LLViewerMedia::getCurrentUserAgent()  {  	// Don't use user-visible string to avoid @@ -411,7 +429,6 @@ std::string LLViewerMedia::getCurrentUserAgent()  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::updateBrowserUserAgent()  {  	std::string user_agent = getCurrentUserAgent(); @@ -431,7 +448,6 @@ void LLViewerMedia::updateBrowserUserAgent()  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  bool LLViewerMedia::handleSkinCurrentChanged(const LLSD& /*newvalue*/)  {  	// gSavedSettings is already updated when this function is called. @@ -440,7 +456,6 @@ bool LLViewerMedia::handleSkinCurrentChanged(const LLSD& /*newvalue*/)  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  bool LLViewerMedia::textureHasMedia(const LLUUID& texture_id)  {  	impl_list::iterator iter = sViewerMediaImplList.begin(); @@ -458,7 +473,6 @@ bool LLViewerMedia::textureHasMedia(const LLUUID& texture_id)  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::setVolume(F32 volume)  {  	if(volume != sGlobalVolume || sForceUpdate) @@ -478,14 +492,12 @@ void LLViewerMedia::setVolume(F32 volume)  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  F32 LLViewerMedia::getVolume()  {  	return sGlobalVolume;  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::muteListChanged()  {  	// When the mute list changes, we need to check mute status on all impls. @@ -500,7 +512,6 @@ void LLViewerMedia::muteListChanged()  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  bool LLViewerMedia::isInterestingEnough(const LLVOVolume *object, const F64 &object_interest)  {  	bool result = false; @@ -535,6 +546,7 @@ LLViewerMedia::impl_list &LLViewerMedia::getPriorityList()  	return sViewerMediaImplList;  } +// static  // This is the predicate function used to sort sViewerMediaImplList by priority.  bool LLViewerMedia::priorityComparitor(const LLViewerMediaImpl* i1, const LLViewerMediaImpl* i2)  { @@ -629,7 +641,12 @@ static LLTrace::BlockTimerStatHandle FTM_MEDIA_MISC("Misc");  ////////////////////////////////////////////////////////////////////////////////////////// -// static +void LLViewerMedia::onIdle(void *dummy_arg) +{ +    LLViewerMedia::getInstance()->updateMedia(dummy_arg); +} + +//////////////////////////////////////////////////////////////////////////////////////////  void LLViewerMedia::updateMedia(void *dummy_arg)  {  	LL_RECORD_BLOCK_TIME(FTM_MEDIA_UPDATE); @@ -642,8 +659,8 @@ void LLViewerMedia::updateMedia(void *dummy_arg)  	// removing it for now.  	//createSpareBrowserMediaSource(); -	sAnyMediaShowing = false; -	sAnyMediaPlaying = false; +	mAnyMediaShowing = false; +	mAnyMediaPlaying = false;  	impl_list::iterator iter = sViewerMediaImplList.begin();  	impl_list::iterator end = sViewerMediaImplList.end(); @@ -659,10 +676,10 @@ void LLViewerMedia::updateMedia(void *dummy_arg)  	}  	// Let the spare media source actually launch -	if(sSpareBrowserMediaSource) +	if(mSpareBrowserMediaSource)  	{  		LL_RECORD_BLOCK_TIME(FTM_MEDIA_SPARE_IDLE); -		sSpareBrowserMediaSource->idle(); +		mSpareBrowserMediaSource->idle();  	}  	{ @@ -854,7 +871,7 @@ void LLViewerMedia::updateMedia(void *dummy_arg)  			if (!pimpl->getUsedInUI() && pimpl->hasMedia() && (pimpl->isMediaPlaying() || !pimpl->isMediaTimeBased()))  			{  				// consider visible non-timebased media as playing -				sAnyMediaPlaying = true; +				mAnyMediaPlaying = true;  			}  		} @@ -899,21 +916,18 @@ void LLViewerMedia::updateMedia(void *dummy_arg)  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  bool LLViewerMedia::isAnyMediaShowing()  { -	return sAnyMediaShowing; +	return mAnyMediaShowing;  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  bool LLViewerMedia::isAnyMediaPlaying()  { -    return sAnyMediaPlaying; +    return mAnyMediaPlaying;  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::setAllMediaEnabled(bool val)  {  	// Set "tentative" autoplay first.  We need to do this here or else @@ -938,7 +952,7 @@ void LLViewerMedia::setAllMediaEnabled(bool val)  	{  		if (!LLViewerMedia::isParcelMediaPlaying() && LLViewerMedia::hasParcelMedia())  		{ -			LLViewerParcelMedia::play(LLViewerParcelMgr::getInstance()->getAgentParcel()); +			LLViewerParcelMedia::getInstance()->play(LLViewerParcelMgr::getInstance()->getAgentParcel());  		}  		static LLCachedControl<bool> audio_streaming_music(gSavedSettings, "AudioStreamingMusic", true); @@ -960,7 +974,7 @@ void LLViewerMedia::setAllMediaEnabled(bool val)  	}  	else {  		// This actually unloads the impl, as opposed to "stop"ping the media -		LLViewerParcelMedia::stop(); +		LLViewerParcelMedia::getInstance()->stop();  		if (gAudiop)  		{  			LLViewerAudio::getInstance()->stopInternetStreamWithAutoFade(); @@ -969,7 +983,6 @@ void LLViewerMedia::setAllMediaEnabled(bool val)  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::setAllMediaPaused(bool val)  {      // Set "tentative" autoplay first.  We need to do this here or else @@ -1010,7 +1023,7 @@ void LLViewerMedia::setAllMediaPaused(bool val)      {          if (!LLViewerMedia::isParcelMediaPlaying() && LLViewerMedia::hasParcelMedia())          { -            LLViewerParcelMedia::play(LLViewerParcelMgr::getInstance()->getAgentParcel()); +            LLViewerParcelMedia::getInstance()->play(LLViewerParcelMgr::getInstance()->getAgentParcel());          }          static LLCachedControl<bool> audio_streaming_music(gSavedSettings, "AudioStreamingMusic", true); @@ -1032,7 +1045,7 @@ void LLViewerMedia::setAllMediaPaused(bool val)      }      else {          // This actually unloads the impl, as opposed to "stop"ping the media -        LLViewerParcelMedia::stop(); +        LLViewerParcelMedia::getInstance()->stop();          if (gAudiop)          {              LLViewerAudio::getInstance()->stopInternetStreamWithAutoFade(); @@ -1041,19 +1054,25 @@ void LLViewerMedia::setAllMediaPaused(bool val)  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  bool LLViewerMedia::isParcelMediaPlaying()  { -	return (LLViewerMedia::hasParcelMedia() && LLViewerParcelMedia::getParcelMedia() && LLViewerParcelMedia::getParcelMedia()->hasMedia()); +    viewer_media_t media = LLViewerParcelMedia::getInstance()->getParcelMedia(); +    return (LLViewerMedia::hasParcelMedia() && media && media->hasMedia());  }  ///////////////////////////////////////////////////////////////////////////////////////// -// static  bool LLViewerMedia::isParcelAudioPlaying()  {  	return (LLViewerMedia::hasParcelAudio() && gAudiop && LLAudioEngine::AUDIO_PLAYING == gAudiop->isInternetStreamPlaying());  } +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::authSubmitCallback(const LLSD& notification, const LLSD& response) +{ +    LLViewerMedia::getInstance()->onAuthSubmit(notification, response); +} +  void LLViewerMedia::onAuthSubmit(const LLSD& notification, const LLSD& response)  {  	LLViewerMediaImpl *impl = LLViewerMedia::getMediaImplFromTextureID(notification["payload"]["media_id"]); @@ -1075,7 +1094,6 @@ void LLViewerMedia::onAuthSubmit(const LLSD& notification, const LLSD& response)  }  ///////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::clearAllCookies()  {  	// Clear all cookies for all plugins @@ -1092,7 +1110,6 @@ void LLViewerMedia::clearAllCookies()  }  ///////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::clearAllCaches()  {  	// Clear all plugins' caches @@ -1106,7 +1123,6 @@ void LLViewerMedia::clearAllCaches()  }  ///////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::setCookiesEnabled(bool enabled)  {  	// Set the "cookies enabled" flag for all loaded plugins @@ -1123,7 +1139,6 @@ void LLViewerMedia::setCookiesEnabled(bool enabled)  }  ///////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::setProxyConfig(bool enable, const std::string &host, int port)  {  	// Set the proxy config for all loaded plugins @@ -1140,10 +1155,6 @@ void LLViewerMedia::setProxyConfig(bool enable, const std::string &host, int por  }  ///////////////////////////////////////////////////////////////////////////////////////// -// static -///////////////////////////////////////////////////////////////////////////////////////// -//// static -  LLSD LLViewerMedia::getHeaders()  {  	LLSD headers = LLSD::emptyMap(); @@ -1151,14 +1162,13 @@ LLSD LLViewerMedia::getHeaders()  	// *TODO: Should this be 'application/llsd+xml' ?  	// *TODO: Should this even be set at all?   This header is only not overridden in 'GET' methods.  	headers[HTTP_OUT_HEADER_CONTENT_TYPE] = HTTP_CONTENT_XML; -	headers[HTTP_OUT_HEADER_COOKIE] = sOpenIDCookie; +	headers[HTTP_OUT_HEADER_COOKIE] = mOpenIDCookie;  	headers[HTTP_OUT_HEADER_USER_AGENT] = getCurrentUserAgent();  	return headers;  }   ///////////////////////////////////////////////////////////////////////////////////////// - // static  bool LLViewerMedia::parseRawCookie(const std::string raw_cookie, std::string& name, std::string& value, std::string& path, bool& httponly, bool& secure)  {  	std::size_t name_pos = raw_cookie.find_first_of("="); @@ -1181,13 +1191,14 @@ bool LLViewerMedia::parseRawCookie(const std::string raw_cookie, std::string& na  	return false;  } +/////////////////////////////////////////////////////////////////////////////////////////  LLCore::HttpHeaders::ptr_t LLViewerMedia::getHttpHeaders()  {      LLCore::HttpHeaders::ptr_t headers(new LLCore::HttpHeaders);      headers->append(HTTP_OUT_HEADER_ACCEPT, "*/*");      headers->append(HTTP_OUT_HEADER_CONTENT_TYPE, HTTP_CONTENT_XML); -    headers->append(HTTP_OUT_HEADER_COOKIE, sOpenIDCookie); +    headers->append(HTTP_OUT_HEADER_COOKIE, mOpenIDCookie);      headers->append(HTTP_OUT_HEADER_USER_AGENT, getCurrentUserAgent());      return headers; @@ -1195,10 +1206,9 @@ LLCore::HttpHeaders::ptr_t LLViewerMedia::getHttpHeaders()  ///////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::setOpenIDCookie(const std::string& url)  { -	if(!sOpenIDCookie.empty()) +	if(!mOpenIDCookie.empty())  	{          std::string profileUrl = getProfileURL(""); @@ -1207,7 +1217,7 @@ void LLViewerMedia::setOpenIDCookie(const std::string& url)  	}  } -/*static*/ +//static  void LLViewerMedia::getOpenIDCookieCoro(std::string url)  {      LLCore::HttpRequest::policy_t httpPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID); @@ -1229,7 +1239,7 @@ void LLViewerMedia::getOpenIDCookieCoro(std::string url)      // The LLURL can give me the 'authority', which is of the form: [username[:password]@]hostname[:port]      // We want just the hostname for the cookie code, but LLURL doesn't seem to have a way to extract that.      // We therefore do it here. -    std::string authority = sOpenIDURL.mAuthority; +    std::string authority = getInstance()->mOpenIDURL.mAuthority;      std::string::size_type hostStart = authority.find('@');      if (hostStart == std::string::npos)      {   // no username/password @@ -1246,7 +1256,8 @@ void LLViewerMedia::getOpenIDCookieCoro(std::string url)      {   // no port          hostEnd = authority.size();      } - +     +	LLViewerMedia* inst = getInstance();  	if (url.length())  	{  		LLMediaCtrl* media_instance = LLFloaterReg::getInstance("destinations")->getChild<LLMediaCtrl>("destination_guide_contents"); @@ -1258,8 +1269,8 @@ void LLViewerMedia::getOpenIDCookieCoro(std::string url)  			std::string cookie_path = "";  			bool httponly = true;  			bool secure = true; -			if (parseRawCookie(sOpenIDCookie, cookie_name, cookie_value, cookie_path, httponly, secure) && -                media_instance->getMediaPlugin()) +			if (inst->parseRawCookie(inst->mOpenIDCookie, cookie_name, cookie_value, cookie_path, httponly, secure) && +				media_instance->getMediaPlugin())  			{  				// MAINT-5711 - inexplicably, the CEF setCookie function will no longer set the cookie if the   				// url and domain are not the same. This used to be my.sl.com and id.sl.com respectively and worked. @@ -1268,7 +1279,7 @@ void LLViewerMedia::getOpenIDCookieCoro(std::string url)  				// (Feels like there must be a less dirty way to construct a URL from component LLURL parts)  				// MAINT-6392 - Rider: Do not change, however, the original URI requested, since it is used further  				// down. -                std::string cefUrl(std::string(sOpenIDURL.mURI) + "://" + std::string(sOpenIDURL.mAuthority)); +				std::string cefUrl(std::string(inst->mOpenIDURL.mURI) + "://" + std::string(inst->mOpenIDURL.mAuthority));  				media_instance->getMediaPlugin()->setCookie(cefUrl, cookie_name, cookie_value, cookie_host, cookie_path, httponly, secure);  			} @@ -1281,11 +1292,11 @@ void LLViewerMedia::getOpenIDCookieCoro(std::string url)  	// Do a web profile get so we can store the cookie       httpHeaders->append(HTTP_OUT_HEADER_ACCEPT, "*/*"); -    httpHeaders->append(HTTP_OUT_HEADER_COOKIE, sOpenIDCookie); -    httpHeaders->append(HTTP_OUT_HEADER_USER_AGENT, getCurrentUserAgent()); +    httpHeaders->append(HTTP_OUT_HEADER_COOKIE, inst->mOpenIDCookie); +    httpHeaders->append(HTTP_OUT_HEADER_USER_AGENT, inst->getCurrentUserAgent());      LL_DEBUGS("MediaAuth") << "Requesting " << url << LL_ENDL; -    LL_DEBUGS("MediaAuth") << "sOpenIDCookie = [" << sOpenIDCookie << "]" << LL_ENDL; +    LL_DEBUGS("MediaAuth") << "sOpenIDCookie = [" << inst->mOpenIDCookie << "]" << LL_ENDL;      LLSD result = httpAdapter->getRawAndSuspend(httpRequest, url, httpOpts, httpHeaders); @@ -1314,7 +1325,6 @@ void LLViewerMedia::getOpenIDCookieCoro(std::string url)  }  ///////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::openIDSetup(const std::string &openidUrl, const std::string &openidToken)  {  	LL_DEBUGS("MediaAuth") << "url = \"" << openidUrl << "\", token = \"" << openidToken << "\"" << LL_ENDL; @@ -1323,7 +1333,6 @@ void LLViewerMedia::openIDSetup(const std::string &openidUrl, const std::string          boost::bind(&LLViewerMedia::openIDSetupCoro, openidUrl, openidToken));  } -/*static*/  void LLViewerMedia::openIDSetupCoro(std::string openidUrl, std::string openidToken)  {      LLCore::HttpRequest::policy_t httpPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID); @@ -1338,10 +1347,10 @@ void LLViewerMedia::openIDSetupCoro(std::string openidUrl, std::string openidTok  	// post the token to the url       // the responder will need to extract the cookie(s).      // Save the OpenID URL for later -- we may need the host when adding the cookie. -    sOpenIDURL.init(openidUrl.c_str()); +    getInstance()->mOpenIDURL.init(openidUrl.c_str());      // We shouldn't ever do this twice, but just in case this code gets repurposed later, clear existing cookies. -    sOpenIDCookie.clear(); +    getInstance()->mOpenIDCookie.clear();      httpHeaders->append(HTTP_OUT_HEADER_ACCEPT, "*/*");      httpHeaders->append(HTTP_OUT_HEADER_CONTENT_TYPE, "application/x-www-form-urlencoded"); @@ -1373,24 +1382,22 @@ void LLViewerMedia::openIDSetupCoro(std::string openidUrl, std::string openidTok      const std::string& cookie = resultHeaders[HTTP_IN_HEADER_SET_COOKIE].asString();  	// *TODO: What about bad status codes?  Does this destroy previous cookies? -    LLViewerMedia::openIDCookieResponse(openidUrl, cookie); +    LLViewerMedia::getInstance()->openIDCookieResponse(openidUrl, cookie);      LL_DEBUGS("MediaAuth") << "OpenID cookie set." << LL_ENDL;  }  ///////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::openIDCookieResponse(const std::string& url, const std::string &cookie)  {  	LL_DEBUGS("MediaAuth") << "Cookie received: \"" << cookie << "\"" << LL_ENDL; -	sOpenIDCookie += cookie; +	mOpenIDCookie += cookie;  	setOpenIDCookie(url);  }  ///////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::proxyWindowOpened(const std::string &target, const std::string &uuid)  {  	if(uuid.empty()) @@ -1406,7 +1413,6 @@ void LLViewerMedia::proxyWindowOpened(const std::string &target, const std::stri  }  ///////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::proxyWindowClosed(const std::string &uuid)  {  	if(uuid.empty()) @@ -1422,28 +1428,26 @@ void LLViewerMedia::proxyWindowClosed(const std::string &uuid)  }  ///////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::createSpareBrowserMediaSource()  {  	// If we don't have a spare browser media source, create one.  	// However, if PluginAttachDebuggerToPlugins is set then don't spawn a spare  	// SLPlugin process in order to not be confused by an unrelated gdb terminal  	// popping up at the moment we start a media plugin. -	if (!sSpareBrowserMediaSource && !gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins")) +	if (!mSpareBrowserMediaSource && !gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"))  	{  		// The null owner will keep the browser plugin from fully initializing  		// (specifically, it keeps LLPluginClassMedia from negotiating a size change,  		// which keeps MediaPluginWebkit::initBrowserWindow from doing anything until we have some necessary data, like the background color) -		sSpareBrowserMediaSource = LLViewerMediaImpl::newSourceFromMediaType(HTTP_CONTENT_TEXT_HTML, NULL, 0, 0, 1.0); +		mSpareBrowserMediaSource = LLViewerMediaImpl::newSourceFromMediaType(HTTP_CONTENT_TEXT_HTML, NULL, 0, 0, 1.0);  	}  }  ///////////////////////////////////////////////////////////////////////////////////////// -// static  LLPluginClassMedia* LLViewerMedia::getSpareBrowserMediaSource()  { -	LLPluginClassMedia* result = sSpareBrowserMediaSource; -	sSpareBrowserMediaSource = NULL; +	LLPluginClassMedia* result = mSpareBrowserMediaSource; +	mSpareBrowserMediaSource = NULL;  	return result;  }; @@ -1465,50 +1469,24 @@ bool LLViewerMedia::hasInWorldMedia()  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  bool LLViewerMedia::hasParcelMedia()  { -	return !LLViewerParcelMedia::getURL().empty(); +	return !LLViewerParcelMedia::getInstance()->getURL().empty();  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  bool LLViewerMedia::hasParcelAudio()  {  	return !LLViewerMedia::getParcelAudioURL().empty();  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  std::string LLViewerMedia::getParcelAudioURL()  {  	return LLViewerParcelMgr::getInstance()->getAgentParcel()->getMusicURL();  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::initClass() -{ -	gIdleCallbacks.addFunction(LLViewerMedia::updateMedia, NULL); -	sTeleportFinishConnection = LLViewerParcelMgr::getInstance()-> -		setTeleportFinishedCallback(boost::bind(&LLViewerMedia::onTeleportFinished)); -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::cleanupClass() -{ -	gIdleCallbacks.deleteFunction(LLViewerMedia::updateMedia, NULL); -	sTeleportFinishConnection.disconnect(); -	if (sSpareBrowserMediaSource != NULL) -	{ -		delete sSpareBrowserMediaSource; -		sSpareBrowserMediaSource = NULL; -	} -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::onTeleportFinished()  {  	// On teleport, clear this setting (i.e. set it to true) @@ -1517,9 +1495,7 @@ void LLViewerMedia::onTeleportFinished()  	LLViewerMediaImpl::sMimeTypesFailed.clear();  } -  ////////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerMedia::setOnlyAudibleMediaTextureID(const LLUUID& texture_id)  {  	sOnlyAudibleTextureID = texture_id; @@ -1711,7 +1687,7 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_  	if ((plugin_basename == "media_plugin_cef") &&          !gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins") && !clean_browser)  	{ -		media_source = LLViewerMedia::getSpareBrowserMediaSource(); +		media_source = LLViewerMedia::getInstance()->getSpareBrowserMediaSource();  		if(media_source)  		{  			media_source->setOwner(owner); @@ -1787,7 +1763,7 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_  			media_source->enableMediaPluginDebugging( media_plugin_debugging_enabled  || clean_browser);  			// need to set agent string here before instance created -			media_source->setBrowserUserAgent(LLViewerMedia::getCurrentUserAgent()); +			media_source->setBrowserUserAgent(LLViewerMedia::getInstance()->getCurrentUserAgent());  			media_source->setTarget(target); @@ -1858,7 +1834,7 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type)  		media_source->setDisableTimeout(gSavedSettings.getBOOL("DebugPluginDisableTimeout"));  		media_source->setLoop(mMediaLoop);  		media_source->setAutoScale(mMediaAutoScale); -		media_source->setBrowserUserAgent(LLViewerMedia::getCurrentUserAgent()); +		media_source->setBrowserUserAgent(LLViewerMedia::getInstance()->getCurrentUserAgent());  		media_source->focus(mHasFocus);  		media_source->setBackgroundColor(mBackgroundColor); @@ -2104,7 +2080,7 @@ void LLViewerMediaImpl::updateVolume()  	if(mMediaSource)  	{  		// always scale the volume by the global media volume -		F32 volume = mRequestedVolume * LLViewerMedia::getVolume(); +		F32 volume = mRequestedVolume * LLViewerMedia::getInstance()->getVolume();  		if (mProximityCamera > 0)  		{ @@ -3378,7 +3354,7 @@ void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginCla  			auth_request_params.substitutions = args;  			auth_request_params.payload = LLSD().with("media_id", mTextureId); -			auth_request_params.functor.function = boost::bind(&LLViewerMedia::onAuthSubmit, _1, _2); +			auth_request_params.functor.function = boost::bind(&LLViewerMedia::authSubmitCallback, _1, _2);  			LLNotifications::instance().add(auth_request_params);  		};  		break; diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index e2e758befb..014f9048f0 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -70,11 +70,14 @@ private:  class LLViewerMediaImpl; -class LLViewerMedia +class LLViewerMedia: public LLSingleton<LLViewerMedia>  { +	LLSINGLETON(LLViewerMedia); +	~LLViewerMedia(); +	void initSingleton();  	LOG_CLASS(LLViewerMedia); +  public: -	  	// String to get/set media autoplay in gSavedSettings  	static const char* AUTO_PLAY_MEDIA_SETTING;  	static const char* SHOW_MEDIA_ON_OTHERS_SETTING; @@ -88,91 +91,93 @@ public:  	// Special case early init for just web browser component  	// so we can show login screen.  See .cpp file for details. JC -	static viewer_media_t newMediaImpl(const LLUUID& texture_id, +	viewer_media_t newMediaImpl(const LLUUID& texture_id,  									   S32 media_width = 0,   									   S32 media_height = 0,   									   U8 media_auto_scale = false,  									   U8 media_loop = false); -	static viewer_media_t updateMediaImpl(LLMediaEntry* media_entry, const std::string& previous_url, bool update_from_self); -	static LLViewerMediaImpl* getMediaImplFromTextureID(const LLUUID& texture_id); -	static std::string getCurrentUserAgent(); -	static void updateBrowserUserAgent(); -	static bool handleSkinCurrentChanged(const LLSD& /*newvalue*/); -	static bool textureHasMedia(const LLUUID& texture_id); -	static void setVolume(F32 volume); +	viewer_media_t updateMediaImpl(LLMediaEntry* media_entry, const std::string& previous_url, bool update_from_self); +	LLViewerMediaImpl* getMediaImplFromTextureID(const LLUUID& texture_id); +	std::string getCurrentUserAgent(); +	void updateBrowserUserAgent(); +	bool handleSkinCurrentChanged(const LLSD& /*newvalue*/); +	bool textureHasMedia(const LLUUID& texture_id); +	void setVolume(F32 volume);  	// Is any media currently "showing"?  Includes Parcel Media.  Does not include media in the UI. -	static bool isAnyMediaShowing(); +	bool isAnyMediaShowing();  	// Shows if any media is playing, counts visible non time based media as playing. Does not include media in the UI. -	static bool isAnyMediaPlaying(); +	bool isAnyMediaPlaying();  	// Set all media enabled or disabled, depending on val.   Does not include media in the UI. -	static void setAllMediaEnabled(bool val); +	void setAllMediaEnabled(bool val);  	// Set all media paused(stopped for non time based) or playing, depending on val.   Does not include media in the UI. -	static void setAllMediaPaused(bool val); +	void setAllMediaPaused(bool val); -	static void updateMedia(void* dummy_arg = NULL); -	 -	static void initClass(); -	static void cleanupClass(); -	 -	static F32 getVolume();	 -	static void muteListChanged(); -	static bool isInterestingEnough(const LLVOVolume* object, const F64 &object_interest); +	static void onIdle(void* dummy_arg = NULL); // updateMedia wrapper +	void updateMedia(void* dummy_arg = NULL); + +	F32 getVolume();	 +	void muteListChanged(); +	bool isInterestingEnough(const LLVOVolume* object, const F64 &object_interest);  	// Returns the priority-sorted list of all media impls. -	static impl_list &getPriorityList(); +	impl_list &getPriorityList();  	// This is the comparitor used to sort the list.  	static bool priorityComparitor(const LLViewerMediaImpl* i1, const LLViewerMediaImpl* i2);  	// These are just helper functions for the convenience of others working with media -	static bool hasInWorldMedia(); -	static std::string getParcelAudioURL(); -	static bool hasParcelMedia(); -	static bool hasParcelAudio(); -	static bool isParcelMediaPlaying(); -	static bool isParcelAudioPlaying(); -	 -	static void onAuthSubmit(const LLSD& notification, const LLSD& response); +	bool hasInWorldMedia(); +	std::string getParcelAudioURL(); +	bool hasParcelMedia(); +	bool hasParcelAudio(); +	bool isParcelMediaPlaying(); +	bool isParcelAudioPlaying(); + +	static void authSubmitCallback(const LLSD& notification, const LLSD& response);  	// Clear all cookies for all plugins -	static void clearAllCookies(); +	void clearAllCookies();  	// Clear all plugins' caches -	static void clearAllCaches(); +	void clearAllCaches();  	// Set the "cookies enabled" flag for all loaded plugins -	static void setCookiesEnabled(bool enabled); +	void setCookiesEnabled(bool enabled);  	// Set the proxy config for all loaded plugins -	static void setProxyConfig(bool enable, const std::string &host, int port); +	void setProxyConfig(bool enable, const std::string &host, int port); -	static void openIDSetup(const std::string &openid_url, const std::string &openid_token); -	static void openIDCookieResponse(const std::string& url, const std::string &cookie); +	void openIDSetup(const std::string &openid_url, const std::string &openid_token); +	void openIDCookieResponse(const std::string& url, const std::string &cookie); -	static void proxyWindowOpened(const std::string &target, const std::string &uuid); -	static void proxyWindowClosed(const std::string &uuid); +	void proxyWindowOpened(const std::string &target, const std::string &uuid); +	void proxyWindowClosed(const std::string &uuid); -	static void createSpareBrowserMediaSource(); -	static LLPluginClassMedia* getSpareBrowserMediaSource(); +	void createSpareBrowserMediaSource(); +	LLPluginClassMedia* getSpareBrowserMediaSource(); -	static void setOnlyAudibleMediaTextureID(const LLUUID& texture_id); +	void setOnlyAudibleMediaTextureID(const LLUUID& texture_id); -	static LLSD getHeaders(); -    static LLCore::HttpHeaders::ptr_t getHttpHeaders(); +	LLSD getHeaders(); +	LLCore::HttpHeaders::ptr_t getHttpHeaders();  private: -	static bool parseRawCookie(const std::string raw_cookie, std::string& name, std::string& value, std::string& path, bool& httponly, bool& secure); -	static void setOpenIDCookie(const std::string& url); -	static void onTeleportFinished(); - -    static void openIDSetupCoro(std::string openidUrl, std::string openidToken); -    static void getOpenIDCookieCoro(std::string url); - -	static LLURL sOpenIDURL; -	static std::string sOpenIDCookie; -	static LLPluginClassMedia* sSpareBrowserMediaSource; +	void onAuthSubmit(const LLSD& notification, const LLSD& response); +	bool parseRawCookie(const std::string raw_cookie, std::string& name, std::string& value, std::string& path, bool& httponly, bool& secure); +	void setOpenIDCookie(const std::string& url); +	void onTeleportFinished(); + +	static void openIDSetupCoro(std::string openidUrl, std::string openidToken); +	static void getOpenIDCookieCoro(std::string url); + +	bool mAnyMediaShowing; +	bool mAnyMediaPlaying; +	LLURL mOpenIDURL; +	std::string mOpenIDCookie; +	LLPluginClassMedia* mSpareBrowserMediaSource; +	boost::signals2::connection mTeleportFinishConnection;  };  // Implementation functions not exported into header file diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp index 59165c1d71..f4a64a8e55 100644 --- a/indra/newview/llviewermediafocus.cpp +++ b/indra/newview/llviewermediafocus.cpp @@ -339,12 +339,12 @@ BOOL LLViewerMediaFocus::handleKey(KEY key, MASK mask, BOOL called_from_parent)  			clearFocus();  		} -		if ( KEY_F1 == key && LLUI::sHelpImpl && mMediaControls.get()) +		if ( KEY_F1 == key && LLUI::getInstance()->mHelpImpl && mMediaControls.get())  		{  			std::string help_topic;  			if (mMediaControls.get()->findHelpTopic(help_topic))  			{ -				LLUI::sHelpImpl->showTopic(help_topic); +				LLUI::getInstance()->mHelpImpl->showTopic(help_topic);  			}  		}  	} @@ -537,7 +537,7 @@ bool LLViewerMediaFocus::isHoveringOverFace(LLPointer<LLViewerObject> objectp, S  LLViewerMediaImpl* LLViewerMediaFocus::getFocusedMediaImpl()  { -	return LLViewerMedia::getMediaImplFromTextureID(mFocusedImplID); +	return LLViewerMedia::getInstance()->getMediaImplFromTextureID(mFocusedImplID);  }  LLViewerObject* LLViewerMediaFocus::getFocusedObject() @@ -547,7 +547,7 @@ LLViewerObject* LLViewerMediaFocus::getFocusedObject()  LLViewerMediaImpl* LLViewerMediaFocus::getHoverMediaImpl()  { -	return LLViewerMedia::getMediaImplFromTextureID(mHoverImplID); +	return LLViewerMedia::getInstance()->getMediaImplFromTextureID(mHoverImplID);  }  LLViewerObject* LLViewerMediaFocus::getHoverObject() @@ -557,7 +557,7 @@ LLViewerObject* LLViewerMediaFocus::getHoverObject()  void LLViewerMediaFocus::focusZoomOnMedia(LLUUID media_id)  { -	LLViewerMediaImpl* impl = LLViewerMedia::getMediaImplFromTextureID(media_id); +	LLViewerMediaImpl* impl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(media_id);  	if(impl)  	{	 diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index ba68ce4cf4..f1c073ed84 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -6275,7 +6275,7 @@ void dump_inventory(void*)  void handle_dump_followcam(void*)  { -	LLFollowCamMgr::dump(); +	LLFollowCamMgr::getInstance()->dump();  }  void handle_viewer_enable_message_log(void*) @@ -8653,7 +8653,6 @@ class LLWorldPostProcess : public view_listener_t  void handle_flush_name_caches()  { -	SUBSYSTEM_CLEANUP(LLAvatarNameCache);  	if (gCacheName) gCacheName->clear();  } diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index e50c8ee9f0..f42c4c3c51 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -4271,7 +4271,7 @@ void process_clear_follow_cam_properties(LLMessageSystem *mesgsys, void **user_d  	mesgsys->getUUIDFast(_PREHASH_ObjectData, _PREHASH_ObjectID, source_id); -	LLFollowCamMgr::removeFollowCamParams(source_id); +	LLFollowCamMgr::getInstance()->removeFollowCamParams(source_id);  }  void process_set_follow_cam_properties(LLMessageSystem *mesgsys, void **user_data) @@ -4303,7 +4303,7 @@ void process_set_follow_cam_properties(LLMessageSystem *mesgsys, void **user_dat  		switch(type)  		{  		case FOLLOWCAM_PITCH: -			LLFollowCamMgr::setPitch(source_id, value); +			LLFollowCamMgr::getInstance()->setPitch(source_id, value);  			break;  		case FOLLOWCAM_FOCUS_OFFSET_X:  			focus_offset.mV[VX] = value; @@ -4318,29 +4318,29 @@ void process_set_follow_cam_properties(LLMessageSystem *mesgsys, void **user_dat  			settingFocusOffset = true;  			break;  		case FOLLOWCAM_POSITION_LAG: -			LLFollowCamMgr::setPositionLag(source_id, value); +			LLFollowCamMgr::getInstance()->setPositionLag(source_id, value);  			break;  		case FOLLOWCAM_FOCUS_LAG: -			LLFollowCamMgr::setFocusLag(source_id, value); +			LLFollowCamMgr::getInstance()->setFocusLag(source_id, value);  			break;  		case FOLLOWCAM_DISTANCE: -			LLFollowCamMgr::setDistance(source_id, value); +			LLFollowCamMgr::getInstance()->setDistance(source_id, value);  			break;  		case FOLLOWCAM_BEHINDNESS_ANGLE: -			LLFollowCamMgr::setBehindnessAngle(source_id, value); +			LLFollowCamMgr::getInstance()->setBehindnessAngle(source_id, value);  			break;  		case FOLLOWCAM_BEHINDNESS_LAG: -			LLFollowCamMgr::setBehindnessLag(source_id, value); +			LLFollowCamMgr::getInstance()->setBehindnessLag(source_id, value);  			break;  		case FOLLOWCAM_POSITION_THRESHOLD: -			LLFollowCamMgr::setPositionThreshold(source_id, value); +			LLFollowCamMgr::getInstance()->setPositionThreshold(source_id, value);  			break;  		case FOLLOWCAM_FOCUS_THRESHOLD: -			LLFollowCamMgr::setFocusThreshold(source_id, value); +			LLFollowCamMgr::getInstance()->setFocusThreshold(source_id, value);  			break;  		case FOLLOWCAM_ACTIVE:  			//if 1, set using followcam,.  -			LLFollowCamMgr::setCameraActive(source_id, value != 0.f); +			LLFollowCamMgr::getInstance()->setCameraActive(source_id, value != 0.f);  			break;  		case FOLLOWCAM_POSITION_X:  			settingPosition = true; @@ -4367,10 +4367,10 @@ void process_set_follow_cam_properties(LLMessageSystem *mesgsys, void **user_dat  			focus.mV[ 2 ] = value;  			break;  		case FOLLOWCAM_POSITION_LOCKED: -			LLFollowCamMgr::setPositionLocked(source_id, value != 0.f); +			LLFollowCamMgr::getInstance()->setPositionLocked(source_id, value != 0.f);  			break;  		case FOLLOWCAM_FOCUS_LOCKED: -			LLFollowCamMgr::setFocusLocked(source_id, value != 0.f); +			LLFollowCamMgr::getInstance()->setFocusLocked(source_id, value != 0.f);  			break;  		default: @@ -4380,15 +4380,15 @@ void process_set_follow_cam_properties(LLMessageSystem *mesgsys, void **user_dat  	if ( settingPosition )  	{ -		LLFollowCamMgr::setPosition(source_id, position); +		LLFollowCamMgr::getInstance()->setPosition(source_id, position);  	}  	if ( settingFocus )  	{ -		LLFollowCamMgr::setFocus(source_id, focus); +		LLFollowCamMgr::getInstance()->setFocus(source_id, focus);  	}  	if ( settingFocusOffset )  	{ -		LLFollowCamMgr::setFocusOffset(source_id, focus_offset); +		LLFollowCamMgr::getInstance()->setFocusOffset(source_id, focus_offset);  	}  }  //end Ventrella  diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index ec1095813b..ef7dd9cb08 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -482,7 +482,7 @@ void LLViewerObject::markDead()  		if (flagCameraSource())  		{ -			LLFollowCamMgr::removeFollowCamParams(mID); +			LLFollowCamMgr::getInstance()->removeFollowCamParams(mID);  		}  		sNumZombieObjects++; diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp index d31fc0d606..30291d1a93 100644 --- a/indra/newview/llviewerparcelmedia.cpp +++ b/indra/newview/llviewerparcelmedia.cpp @@ -45,31 +45,23 @@  #include "llviewertexture.h"  #include "llcorehttputil.h" -// Static Variables -S32 LLViewerParcelMedia::sMediaParcelLocalID = 0; -LLUUID LLViewerParcelMedia::sMediaRegionID; -viewer_media_t LLViewerParcelMedia::sMediaImpl; - - -// static -void LLViewerParcelMedia::initClass() +LLViewerParcelMedia::LLViewerParcelMedia(): +mMediaParcelLocalID(0)  {  	LLMessageSystem* msg = gMessageSystem; -	msg->setHandlerFunc("ParcelMediaCommandMessage", processParcelMediaCommandMessage ); -	msg->setHandlerFunc("ParcelMediaUpdate", processParcelMediaUpdate ); +	msg->setHandlerFunc("ParcelMediaCommandMessage", parcelMediaCommandMessageHandler ); +	msg->setHandlerFunc("ParcelMediaUpdate", parcelMediaUpdateHandler );  	LLViewerParcelMediaAutoPlay::initClass();  } -//static  -void LLViewerParcelMedia::cleanupClass() +LLViewerParcelMedia::~LLViewerParcelMedia()  {  	// This needs to be destroyed before global destructor time. -	sMediaImpl = NULL; +	mMediaImpl = NULL;  }  ////////////////////////////////////////////////////////////////////////////////////////// -// static  void LLViewerParcelMedia::update(LLParcel* parcel)  {  	if (/*LLViewerMedia::hasMedia()*/ true) @@ -79,7 +71,7 @@ void LLViewerParcelMedia::update(LLParcel* parcel)  		{  			if(!gAgent.getRegion())  			{ -				sMediaRegionID = LLUUID() ; +				mMediaRegionID = LLUUID() ;  				stop() ;  				LL_DEBUGS("Media") << "no agent region, bailing out." << LL_ENDL;  				return ;				 @@ -89,11 +81,11 @@ void LLViewerParcelMedia::update(LLParcel* parcel)  			S32 parcelid = parcel->getLocalID();						  			LLUUID regionid = gAgent.getRegion()->getRegionID(); -			if (parcelid != sMediaParcelLocalID || regionid != sMediaRegionID) +			if (parcelid != mMediaParcelLocalID || regionid != mMediaRegionID)  			{  				LL_DEBUGS("Media") << "New parcel, parcel id = " << parcelid << ", region id = " << regionid << LL_ENDL; -				sMediaParcelLocalID = parcelid; -				sMediaRegionID = regionid; +				mMediaParcelLocalID = parcelid; +				mMediaRegionID = regionid;  			}  			std::string mediaUrl = std::string ( parcel->getMediaURL () ); @@ -108,19 +100,19 @@ void LLViewerParcelMedia::update(LLParcel* parcel)  			LLStringUtil::trim(mediaUrl);  			// If no parcel media is playing, nothing left to do -			if(sMediaImpl.isNull()) +			if(mMediaImpl.isNull())  			{  				return;  			}  			// Media is playing...has something changed? -			else if (( sMediaImpl->getMediaURL() != mediaUrl ) -				|| ( sMediaImpl->getMediaTextureID() != parcel->getMediaID() ) -				|| ( sMediaImpl->getMimeType() != parcel->getMediaType() )) +			else if (( mMediaImpl->getMediaURL() != mediaUrl ) +				|| ( mMediaImpl->getMediaTextureID() != parcel->getMediaID() ) +				|| ( mMediaImpl->getMimeType() != parcel->getMediaType() ))  			{  				// Only play if the media types are the same. -				if(sMediaImpl->getMimeType() == parcel->getMediaType()) +				if(mMediaImpl->getMimeType() == parcel->getMediaType())  				{  					play(parcel);  				} @@ -176,30 +168,30 @@ void LLViewerParcelMedia::play(LLParcel* parcel)  	S32 media_width = parcel->getMediaWidth();  	S32 media_height = parcel->getMediaHeight(); -	if(sMediaImpl) +	if(mMediaImpl)  	{  		// If the url and mime type are the same, call play again -		if(sMediaImpl->getMediaURL() == media_url  -			&& sMediaImpl->getMimeType() == mime_type -			&& sMediaImpl->getMediaTextureID() == placeholder_texture_id) +		if(mMediaImpl->getMediaURL() == media_url  +			&& mMediaImpl->getMimeType() == mime_type +			&& mMediaImpl->getMediaTextureID() == placeholder_texture_id)  		{  			LL_DEBUGS("Media") << "playing with existing url " << media_url << LL_ENDL; -			sMediaImpl->play(); +			mMediaImpl->play();  		}  		// Else if the texture id's are the same, navigate and rediscover type  		// MBW -- This causes other state from the previous parcel (texture size, autoscale, and looping) to get re-used incorrectly.  		// It's also not really necessary -- just creating a new instance is fine. -//		else if(sMediaImpl->getMediaTextureID() == placeholder_texture_id) +//		else if(mMediaImpl->getMediaTextureID() == placeholder_texture_id)  //		{ -//			sMediaImpl->navigateTo(media_url, mime_type, true); +//			mMediaImpl->navigateTo(media_url, mime_type, true);  //		}  		else  		{  			// Since the texture id is different, we need to generate a new impl  			// Delete the old one first so they don't fight over the texture. -			sMediaImpl = NULL; +			mMediaImpl = NULL;  			// A new impl will be created below.  		} @@ -208,19 +200,19 @@ void LLViewerParcelMedia::play(LLParcel* parcel)  	// Don't ever try to play if the media type is set to "none/none"  	if(stricmp(mime_type.c_str(), LLMIMETypes::getDefaultMimeType().c_str()) != 0)  	{ -		if(!sMediaImpl) +		if(!mMediaImpl)  		{  			LL_DEBUGS("Media") << "new media impl with mime type " << mime_type << ", url " << media_url << LL_ENDL;  			// There is no media impl, make a new one -			sMediaImpl = LLViewerMedia::newMediaImpl( +			mMediaImpl = LLViewerMedia::getInstance()->newMediaImpl(  				placeholder_texture_id,  				media_width,   				media_height,   				media_auto_scale,  				media_loop); -			sMediaImpl->setIsParcelMedia(true); -			sMediaImpl->navigateTo(media_url, mime_type, true); +			mMediaImpl->setIsParcelMedia(true); +			mMediaImpl->navigateTo(media_url, mime_type, true);  		}  		//LLFirstUse::useMedia(); @@ -232,7 +224,7 @@ void LLViewerParcelMedia::play(LLParcel* parcel)  // static  void LLViewerParcelMedia::stop()  { -	if(sMediaImpl.isNull()) +	if(mMediaImpl.isNull())  	{  		return;  	} @@ -241,27 +233,27 @@ void LLViewerParcelMedia::stop()  	LLViewerMediaFocus::getInstance()->clearFocus();  	// This will unload & kill the media instance. -	sMediaImpl = NULL; +	mMediaImpl = NULL;  }  // static  void LLViewerParcelMedia::pause()  { -	if(sMediaImpl.isNull()) +	if(mMediaImpl.isNull())  	{  		return;  	} -	sMediaImpl->pause(); +	mMediaImpl->pause();  }  // static  void LLViewerParcelMedia::start()  { -	if(sMediaImpl.isNull()) +	if(mMediaImpl.isNull())  	{  		return;  	} -	sMediaImpl->start(); +	mMediaImpl->start();  	//LLFirstUse::useMedia(); @@ -271,17 +263,17 @@ void LLViewerParcelMedia::start()  // static  void LLViewerParcelMedia::seek(F32 time)  { -	if(sMediaImpl.isNull()) +	if(mMediaImpl.isNull())  	{  		return;  	} -	sMediaImpl->seek(time); +	mMediaImpl->seek(time);  }  // static  void LLViewerParcelMedia::focus(bool focus)  { -	sMediaImpl->focus(focus); +	mMediaImpl->focus(focus);  }  // static @@ -289,9 +281,9 @@ LLPluginClassMediaOwner::EMediaStatus LLViewerParcelMedia::getStatus()  {	  	LLPluginClassMediaOwner::EMediaStatus result = LLPluginClassMediaOwner::MEDIA_NONE; -	if(sMediaImpl.notNull() && sMediaImpl->hasMedia()) +	if(mMediaImpl.notNull() && mMediaImpl->hasMedia())  	{ -		result = sMediaImpl->getMediaPlugin()->getStatus(); +		result = mMediaImpl->getMediaPlugin()->getStatus();  	}  	return result; @@ -300,15 +292,15 @@ LLPluginClassMediaOwner::EMediaStatus LLViewerParcelMedia::getStatus()  // static  std::string LLViewerParcelMedia::getMimeType()  { -	return sMediaImpl.notNull() ? sMediaImpl->getMimeType() : LLMIMETypes::getDefaultMimeType(); +	return mMediaImpl.notNull() ? mMediaImpl->getMimeType() : LLMIMETypes::getDefaultMimeType();  }  //static   std::string LLViewerParcelMedia::getURL()  {  	std::string url; -	if(sMediaImpl.notNull()) -		url = sMediaImpl->getMediaURL(); +	if(mMediaImpl.notNull()) +		url = mMediaImpl->getMediaURL();  	if(stricmp(LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaType().c_str(), LLMIMETypes::getDefaultMimeType().c_str()) != 0)  	{ @@ -325,19 +317,24 @@ std::string LLViewerParcelMedia::getURL()  //static   std::string LLViewerParcelMedia::getName()  { -	if(sMediaImpl.notNull()) -		return sMediaImpl->getName(); +	if(mMediaImpl.notNull()) +		return mMediaImpl->getName();  	return "";  }  viewer_media_t LLViewerParcelMedia::getParcelMedia()  { -	return sMediaImpl; +	return mMediaImpl;  }  //////////////////////////////////////////////////////////////////////////////////////////  // static -void LLViewerParcelMedia::processParcelMediaCommandMessage( LLMessageSystem *msg, void ** ) +void LLViewerParcelMedia::parcelMediaCommandMessageHandler(LLMessageSystem *msg, void **) +{ +    getInstance()->processParcelMediaCommandMessage(msg); +} + +void LLViewerParcelMedia::processParcelMediaCommandMessage( LLMessageSystem *msg)  {  	// extract the agent id  	//	LLUUID agent_id; @@ -392,7 +389,7 @@ void LLViewerParcelMedia::processParcelMediaCommandMessage( LLMessageSystem *msg  	if (flags & (1<<PARCEL_MEDIA_COMMAND_TIME))  	{ -		if(sMediaImpl.isNull()) +		if(mMediaImpl.isNull())  		{  			LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();  			play(parcel); @@ -403,7 +400,12 @@ void LLViewerParcelMedia::processParcelMediaCommandMessage( LLMessageSystem *msg  //////////////////////////////////////////////////////////////////////////////////////////  // static -void LLViewerParcelMedia::processParcelMediaUpdate( LLMessageSystem *msg, void ** ) +void LLViewerParcelMedia::parcelMediaUpdateHandler(LLMessageSystem *msg, void **) +{ +    getInstance()->processParcelMediaUpdate(msg); +} + +void LLViewerParcelMedia::processParcelMediaUpdate( LLMessageSystem *msg)  {  	LLUUID media_id;  	std::string media_url; diff --git a/indra/newview/llviewerparcelmedia.h b/indra/newview/llviewerparcelmedia.h index 534f65b419..779a65bdf8 100644 --- a/indra/newview/llviewerparcelmedia.h +++ b/indra/newview/llviewerparcelmedia.h @@ -37,50 +37,53 @@ class LLViewerParcelMediaNavigationObserver;  // This class understands land parcels, network traffic, LSL media  // transport commands, and talks to the LLViewerMedia class to actually  // do playback.  It allows us to remove code from LLViewerParcelMgr. -class LLViewerParcelMedia : public LLViewerMediaObserver +class LLViewerParcelMedia : public LLViewerMediaObserver, public LLSingleton<LLViewerParcelMedia>  { +	LLSINGLETON(LLViewerParcelMedia); +	~LLViewerParcelMedia();  	LOG_CLASS(LLViewerParcelMedia); -	public: -		static void initClass(); -		static void cleanupClass(); - -		static void update(LLParcel* parcel); -			// called when the agent's parcel has a new URL, or the agent has -			// walked on to a new parcel with media - -		static void play(LLParcel* parcel); -			// user clicked play button in media transport controls - -		static void stop(); -			// user clicked stop button in media transport controls - -		static void pause(); -		static void start(); -			// restart after pause - no need for all the setup - -		static void focus(bool focus); - -		static void seek(F32 time); -		    // jump to timecode time - -		static LLPluginClassMediaOwner::EMediaStatus getStatus(); -		static std::string getMimeType(); -		static std::string getURL(); -		static std::string getName(); -		static viewer_media_t getParcelMedia(); - -		static void processParcelMediaCommandMessage( LLMessageSystem *msg, void ** ); -		static void processParcelMediaUpdate( LLMessageSystem *msg, void ** ); -		static void sendMediaNavigateMessage(const std::string& url); -		 -		// inherited from LLViewerMediaObserver -		virtual void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event); - -	public: -		static S32 sMediaParcelLocalID; -		static LLUUID sMediaRegionID; -		// HACK: this will change with Media on a Prim -		static viewer_media_t sMediaImpl; +public: +	void update(LLParcel* parcel); +	// called when the agent's parcel has a new URL, or the agent has +	// walked on to a new parcel with media + +	void play(LLParcel* parcel); +	// user clicked play button in media transport controls + +	void stop(); +	// user clicked stop button in media transport controls + +	void pause(); +	void start(); +	// restart after pause - no need for all the setup + +	void focus(bool focus); + +	void seek(F32 time); +	// jump to timecode time + +	LLPluginClassMediaOwner::EMediaStatus getStatus(); +	std::string getMimeType(); +	std::string getURL(); +	std::string getName(); +	viewer_media_t getParcelMedia(); +	bool hasParcelMedia() { return mMediaImpl.notNull(); } + +	static void parcelMediaCommandMessageHandler( LLMessageSystem *msg, void ** ); +	static void parcelMediaUpdateHandler( LLMessageSystem *msg, void ** ); +	void sendMediaNavigateMessage(const std::string& url); + +	// inherited from LLViewerMediaObserver +	virtual void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event); + +private: +	void processParcelMediaCommandMessage(LLMessageSystem *msg); +	void processParcelMediaUpdate(LLMessageSystem *msg); + +	S32 mMediaParcelLocalID; +	LLUUID mMediaRegionID; +	// HACK: this will change with Media on a Prim +	viewer_media_t mMediaImpl;  }; diff --git a/indra/newview/llviewerparcelmediaautoplay.cpp b/indra/newview/llviewerparcelmediaautoplay.cpp index 57ee583eae..d38a434d6c 100644 --- a/indra/newview/llviewerparcelmediaautoplay.cpp +++ b/indra/newview/llviewerparcelmediaautoplay.cpp @@ -122,7 +122,7 @@ BOOL LLViewerParcelMediaAutoPlay::tick()  		(mTimeInParcel > AUTOPLAY_TIME) &&		// and if we've been here for so many seconds  		(!this_media_url.empty()) &&			// and if the parcel has media  		(stricmp(this_media_type.c_str(), LLMIMETypes::getDefaultMimeType().c_str()) != 0) && -		(LLViewerParcelMedia::sMediaImpl.isNull()))	// and if the media is not already playing +		(!LLViewerParcelMedia::getInstance()->hasParcelMedia()))	// and if the media is not already playing  	{  		if (this_media_texture_id.notNull())	// and if the media texture is good  		{ @@ -144,7 +144,7 @@ BOOL LLViewerParcelMediaAutoPlay::tick()  						if (gSavedSettings.getBOOL("ParcelMediaAutoPlayEnable"))  						{  							// and last but not least, only play when autoplay is enabled -							LLViewerParcelMedia::play(this_parcel); +							LLViewerParcelMedia::getInstance()->play(this_parcel);  						}  					} diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index 416d5d8e2e..6cc88d0c0b 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -1822,7 +1822,7 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use  	else  	{  		// Check for video -		LLViewerParcelMedia::update(parcel); +		LLViewerParcelMedia::getInstance()->update(parcel);  		// Then check for music  		if (gAudiop) diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp index 7d2d6e25c7..0e181bf53d 100644 --- a/indra/newview/llviewertexteditor.cpp +++ b/indra/newview/llviewertexteditor.cpp @@ -239,7 +239,7 @@ public:  	/*virtual*/ BOOL			handleHover(S32 x, S32 y, MASK mask)  	{ -		LLUI::getWindow()->setCursor(UI_CURSOR_HAND); +		LLUI::getInstance()->getWindow()->setCursor(UI_CURSOR_HAND);  		return TRUE;  	}  	virtual BOOL				handleToolTip(S32 x, S32 y, MASK mask ) diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 68a9994bee..f39275af21 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -3454,7 +3454,7 @@ void LLViewerMediaTexture::setMediaImpl()  {  	if(!mMediaImplp)  	{ -		mMediaImplp = LLViewerMedia::getMediaImplFromTextureID(mID); +		mMediaImplp = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mID);  	}  } diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 5b764f97fb..b8960d7604 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -960,7 +960,7 @@ BOOL LLViewerWindow::handleAnyMouseClick(LLWindow *window,  LLCoordGL pos, MASK  			mWindow->releaseMouse();  		// Indicate mouse was active -		LLUI::resetMouseIdleTimer(); +		LLUI::getInstance()->resetMouseIdleTimer();  		// Don't let the user move the mouse out of the window until mouse up.  		if( LLToolMgr::getInstance()->getCurrentTool()->clipMouseWhenDown() ) @@ -1295,7 +1295,7 @@ void LLViewerWindow::handleMouseMove(LLWindow *window,  LLCoordGL pos, MASK mask  	if (mouse_point != mCurrentMousePoint)  	{ -		LLUI::resetMouseIdleTimer(); +		LLUI::getInstance()->resetMouseIdleTimer();  	}  	saveLastMouse(mouse_point); @@ -1852,7 +1852,7 @@ LLViewerWindow::LLViewerWindow(const Params& p)  	rvp.mouse_opaque(false);  	rvp.follows.flags(FOLLOWS_NONE);  	mRootView = LLUICtrlFactory::create<LLRootView>(rvp); -	LLUI::setRootView(mRootView); +	LLUI::getInstance()->setRootView(mRootView);  	// Make avatar head look forward at start  	mCurrentMousePoint.mX = getWindowWidthScaled() / 2; @@ -2410,7 +2410,7 @@ void LLViewerWindow::setNormalControlsVisible( BOOL visible )  		gStatusBar->setEnabled( visible );	  	} -	LLNavigationBar* navbarp = LLUI::getRootView()->findChild<LLNavigationBar>("navigation_bar"); +	LLNavigationBar* navbarp = LLUI::getInstance()->getRootView()->findChild<LLNavigationBar>("navigation_bar");  	if (navbarp)  	{  		// when it's time to show navigation bar we need to ensure that the user wants to see it @@ -2520,7 +2520,7 @@ void LLViewerWindow::draw()  	if (!gSavedSettings.getBOOL("RenderUIBuffer"))  	{ -		LLUI::sDirtyRect = getWindowRectScaled(); +		LLUI::getInstance()->mDirtyRect = getWindowRectScaled();  	}  	// HACK for timecode debugging @@ -2920,7 +2920,7 @@ BOOL LLViewerWindow::handleUnicodeChar(llwchar uni_char, MASK mask)  void LLViewerWindow::handleScrollWheel(S32 clicks)  { -	LLUI::resetMouseIdleTimer(); +	LLUI::getInstance()->resetMouseIdleTimer();  	LLMouseHandler* mouse_captor = gFocusMgr.getMouseCapture();  	if( mouse_captor ) @@ -2999,7 +2999,7 @@ void LLViewerWindow::moveCursorToCenter()  		S32 x = getWorldViewWidthScaled() / 2;  		S32 y = getWorldViewHeightScaled() / 2; -		LLUI::setMousePositionScreen(x, y); +		LLUI::getInstance()->setMousePositionScreen(x, y);  		//on a forced move, all deltas get zeroed out to prevent jumping  		mCurrentMousePoint.set(x,y); diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 20fa327790..3feea2abc0 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -7329,7 +7329,7 @@ void LLVOAvatar::getOffObject()  	if (sit_object)  	{  		stopMotionFromSource(sit_object->getID()); -		LLFollowCamMgr::setCameraActive(sit_object->getID(), FALSE); +		LLFollowCamMgr::getInstance()->setCameraActive(sit_object->getID(), FALSE);  		LLViewerObject::const_child_list_t& child_list = sit_object->getChildren();  		for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); @@ -7338,7 +7338,7 @@ void LLVOAvatar::getOffObject()  			LLViewerObject* child_objectp = *iter;  			stopMotionFromSource(child_objectp->getID()); -			LLFollowCamMgr::setCameraActive(child_objectp->getID(), FALSE); +			LLFollowCamMgr::getInstance()->setCameraActive(child_objectp->getID(), FALSE);  		}  	} diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index dcaade55a6..63ace4fe52 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -1208,7 +1208,7 @@ BOOL LLVOAvatarSelf::detachObject(LLViewerObject *viewer_object)  		// the simulator should automatically handle permission revocation  		stopMotionFromSource(attachment_id); -		LLFollowCamMgr::setCameraActive(viewer_object->getID(), FALSE); +		LLFollowCamMgr::getInstance()->setCameraActive(viewer_object->getID(), FALSE);  		LLViewerObject::const_child_list_t& child_list = viewer_object->getChildren();  		for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); @@ -1220,7 +1220,7 @@ BOOL LLVOAvatarSelf::detachObject(LLViewerObject *viewer_object)  			// permissions revocation  			stopMotionFromSource(child_objectp->getID()); -			LLFollowCamMgr::setCameraActive(child_objectp->getID(), FALSE); +			LLFollowCamMgr::getInstance()->setCameraActive(child_objectp->getID(), FALSE);  		}  		// Make sure the inventory is in sync with the avatar. diff --git a/indra/newview/llvoicecallhandler.cpp b/indra/newview/llvoicecallhandler.cpp index 2050dab689..1e993d1384 100644 --- a/indra/newview/llvoicecallhandler.cpp +++ b/indra/newview/llvoicecallhandler.cpp @@ -40,7 +40,7 @@ public:  	bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web)  	{ -		if (!LLUI::sSettingGroups["config"]->getBOOL("EnableVoiceCall")) +		if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableVoiceCall"))  		{  			LLNotificationsUtil::add("NoVoiceCall", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));  			return true; diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 3793d6b9b2..88058c28a6 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -188,7 +188,7 @@ public:  	virtual bool isInterestingEnough() const  		{ -			return LLViewerMedia::isInterestingEnough(mObject, getMediaInterest()); +			return LLViewerMedia::getInstance()->isInterestingEnough(mObject, getMediaInterest());  		}  	virtual std::string getCapabilityUrl(const std::string &name) const @@ -2698,7 +2698,7 @@ void LLVOVolume::syncMediaData(S32 texture_index, const LLSD &media_data, bool m  			LLUUID updating_agent = LLTextureEntry::getAgentIDFromMediaVersionString(getMediaURL());  			update_from_self = (updating_agent == gAgent.getID());  		} -		viewer_media_t media_impl = LLViewerMedia::updateMediaImpl(mep, previous_url, update_from_self); +		viewer_media_t media_impl = LLViewerMedia::getInstance()->updateMediaImpl(mep, previous_url, update_from_self);  		addMediaImpl(media_impl, texture_index) ;  	} diff --git a/indra/newview/llweb.cpp b/indra/newview/llweb.cpp index 61ec02957e..a34c5826ed 100644 --- a/indra/newview/llweb.cpp +++ b/indra/newview/llweb.cpp @@ -39,7 +39,6 @@  #include "lllogininstance.h"  #include "llparcel.h"  #include "llsd.h" -#include "lltoastalertpanel.h"  #include "llui.h"  #include "lluri.h"  #include "llversioninfo.h" @@ -57,32 +56,6 @@  bool on_load_url_external_response(const LLSD& notification, const LLSD& response, bool async ); -class URLLoader : public LLToastAlertPanel::URLLoader -{ -	virtual void load(const std::string& url , bool force_open_externally) -	{ -		if (force_open_externally) -		{ -			LLWeb::loadURLExternal(url); -		} -		else -		{ -			LLWeb::loadURL(url); -		} -	} -}; -static URLLoader sAlertURLLoader; - - -// static -void LLWeb::initClass() -{ -	LLToastAlertPanel::setURLLoader(&sAlertURLLoader); -} - - - -  // static  void LLWeb::loadURL(const std::string& url, const std::string& target, const std::string& uuid)  { @@ -121,7 +94,7 @@ void LLWeb::loadURLExternal(const std::string& url, const std::string& uuid)  void LLWeb::loadURLExternal(const std::string& url, bool async, const std::string& uuid)  {  	// Act like the proxy window was closed, since we won't be able to track targeted windows in the external browser. -	LLViewerMedia::proxyWindowClosed(uuid); +	LLViewerMedia::getInstance()->proxyWindowClosed(uuid);  	if(gSavedSettings.getBOOL("DisableExternalBrowser"))  	{ diff --git a/indra/newview/llweb.h b/indra/newview/llweb.h index 7149ce9baf..0426f00f27 100644 --- a/indra/newview/llweb.h +++ b/indra/newview/llweb.h @@ -46,8 +46,6 @@ public:  		BROWSER_INT_LL_EXT_OTHERS = 1,  		BROWSER_INTERNAL_ONLY = 2  	}; - -	static void initClass();  	/// Load the given url in the operating system's web browser, async if we want to return immediately  	/// before browser has spawned diff --git a/indra/newview/llwebprofile.cpp b/indra/newview/llwebprofile.cpp index 8dcef2c7cd..569f479a16 100644 --- a/indra/newview/llwebprofile.cpp +++ b/indra/newview/llwebprofile.cpp @@ -83,7 +83,7 @@ void LLWebProfile::setAuthCookie(const std::string& cookie)  LLCore::HttpHeaders::ptr_t LLWebProfile::buildDefaultHeaders()  {      LLCore::HttpHeaders::ptr_t httpHeaders(new LLCore::HttpHeaders); -    LLSD headers = LLViewerMedia::getHeaders(); +    LLSD headers = LLViewerMedia::getInstance()->getHeaders();      for (LLSD::map_iterator it = headers.beginMap(); it != headers.endMap(); ++it)      { diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp index 5367262bb6..9e4297baaf 100644 --- a/indra/newview/llwindowlistener.cpp +++ b/indra/newview/llwindowlistener.cpp @@ -69,7 +69,7 @@ LLWindowListener::LLWindowListener(LLViewerWindow *window, const KeyboardGetter&  	std::string buttonExplain =  		"(button values \"LEFT\", \"MIDDLE\", \"RIGHT\")\n";  	std::string paramsExplain = -		"[\"path\"] is as for LLUI::resolvePath(), described in\n" +		"[\"path\"] is as for LLUI::getInstance()->resolvePath(), described in\n"  		"http://bitbucket.org/lindenlab/viewer-release/src/tip/indra/llui/llui.h\n"  		"If you omit [\"path\"], you must specify both [\"x\"] and [\"y\"].\n"  		"If you specify [\"path\"] without both [\"x\"] and [\"y\"], will synthesize (x, y)\n" @@ -209,7 +209,7 @@ void LLWindowListener::getInfo(LLSD const & evt)  	if (evt.has("path"))  	{  		std::string path(evt["path"]); -		LLView * target_view = LLUI::resolvePath(LLUI::getRootView(), path); +		LLView * target_view = LLUI::getInstance()->resolvePath(LLUI::getInstance()->getRootView(), path);  		if (target_view != 0)  		{  			response.setResponse(target_view->getInfo()); @@ -230,7 +230,7 @@ void LLWindowListener::getInfo(LLSD const & evt)  void LLWindowListener::getPaths(LLSD const & request)  {  	Response response(LLSD(), request); -	LLView *root(LLUI::getRootView()), *base(NULL); +	LLView *root(LLUI::getInstance()->getRootView()), *base(NULL);  	// Capturing request["under"] as string means we conflate the case in  	// which there is no ["under"] key with the case in which its value is the  	// empty string. That seems to make sense to me. @@ -243,7 +243,7 @@ void LLWindowListener::getPaths(LLSD const & request)  	}  	else  	{ -		base = LLUI::resolvePath(root, under); +		base = LLUI::getInstance()->resolvePath(root, under);  		if (! base)  		{  			return response.error(STRINGIZE(request["op"].asString() << " request " @@ -268,7 +268,7 @@ void LLWindowListener::keyDown(LLSD const & evt)  	if (evt.has("path"))  	{  		std::string path(evt["path"]); -		LLView * target_view = LLUI::resolvePath(LLUI::getRootView(), path); +		LLView * target_view = LLUI::getInstance()->resolvePath(LLUI::getInstance()->getRootView(), path);  		if (target_view == 0)   		{  			response.error(STRINGIZE(evt["op"].asString() << " request " @@ -303,7 +303,7 @@ void LLWindowListener::keyUp(LLSD const & evt)  	if (evt.has("path"))  	{  		std::string path(evt["path"]); -		LLView * target_view = LLUI::resolvePath(LLUI::getRootView(), path); +		LLView * target_view = LLUI::getInstance()->resolvePath(LLUI::getInstance()->getRootView(), path);  		if (target_view == 0 )  		{  			response.error(STRINGIZE(evt["op"].asString() << " request " @@ -407,8 +407,8 @@ static void mouseEvent(const MouseFunc& func, const LLSD& request)  	}  	else // ! path.empty()  	{ -		LLView* root   = LLUI::getRootView(); -		LLView* target = LLUI::resolvePath(root, path); +		LLView* root   = LLUI::getInstance()->getRootView(); +		LLView* target = LLUI::getInstance()->resolvePath(root, path);  		if (! target)  		{  			return response.error(STRINGIZE(request["op"].asString() << " request " diff --git a/indra/newview/llwlparamset.cpp b/indra/newview/llwlparamset.cpp index 066cb9a0ac..d65b8dd43d 100644 --- a/indra/newview/llwlparamset.cpp +++ b/indra/newview/llwlparamset.cpp @@ -337,14 +337,14 @@ void LLWLParamSet::mix(LLWLParamSet& src, LLWLParamSet& dest, F32 weight)  	setStarBrightness((1 - weight) * (F32) src.getStarBrightness()  		+ weight * (F32) dest.getStarBrightness()); -	llassert(src.getSunAngle() >= - F_PI &&  +	/*llassert(src.getSunAngle() >= - F_PI &&   					src.getSunAngle() <= 3 * F_PI);  	llassert(dest.getSunAngle() >= - F_PI &&   					dest.getSunAngle() <= 3 * F_PI);  	llassert(src.getEastAngle() >= 0 &&   					src.getEastAngle() <= 4 * F_PI);  	llassert(dest.getEastAngle() >= 0 &&  -					dest.getEastAngle() <= 4 * F_PI); +					dest.getEastAngle() <= 4 * F_PI);*/  	// sun angle and east angle require some handling to make sure  	// they go in circles.  Yes quaternions would work better. diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp index b27257a262..a90256fa4b 100644 --- a/indra/newview/llworldmapview.cpp +++ b/indra/newview/llworldmapview.cpp @@ -1628,7 +1628,7 @@ BOOL LLWorldMapView::handleMouseUp( S32 x, S32 y, MASK mask )  			LLRect clip_rect = getRect();  			clip_rect.stretch(-8);  			clip_rect.clipPointToRect(mMouseDownX, mMouseDownY, local_x, local_y); -			LLUI::setMousePositionLocal(this, local_x, local_y); +			LLUI::getInstance()->setMousePositionLocal(this, local_x, local_y);  			// finish the pan  			mPanning = FALSE; | 
