diff options
| -rw-r--r-- | doc/contributions.txt | 6 | ||||
| -rw-r--r-- | indra/cmake/Copy3rdPartyLibs.cmake | 2 | ||||
| -rw-r--r-- | indra/llmessage/llcircuit.cpp | 3 | ||||
| -rw-r--r-- | indra/llmessage/llcircuit.h | 4 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 36 | ||||
| -rwxr-xr-x | indra/newview/app_settings/settings.xml | 81 | ||||
| -rw-r--r-- | indra/newview/llpanelnearbymedia.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llviewermedia.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llviewerobject.cpp | 14 | ||||
| -rw-r--r-- | indra/newview/llviewerobject.h | 1 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_nearby_media.xml | 16 | 
11 files changed, 56 insertions, 122 deletions
| diff --git a/doc/contributions.txt b/doc/contributions.txt index 4c59e703ee..18fed00ff8 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -83,6 +83,8 @@ Aleric Inglewood  	VWR-24315  	VWR-24317  	VWR-24320 + 	VWR-24354 +	VWR-24519  	SNOW-84  	SNOW-477  	SNOW-744 @@ -380,9 +382,12 @@ Jonathan Yap  	STORM-723  	STORM-726  	STORM-737 +	STORM-869  	STORM-785  	STORM-812  	VWR-17801 +	VWR-24347 +	STORM-844  Kage Pixel  	VWR-11  Ken March @@ -764,6 +769,7 @@ Twisted Laws  	SNOW-352  	STORM-466  	STORM-467 +	STORM-844  Vadim Bigbear  	VWR-2681  Vector Hastings diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index bb108d7dd9..34c39d36a8 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -70,6 +70,7 @@ if(WINDOWS)  if (MSVC80)      FIND_PATH(debug_msvc8_redist_path msvcr80d.dll          PATHS +		${MSVC_DEBUG_REDIST_PATH}           [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT          NO_DEFAULT_PATH          NO_DEFAULT_PATH @@ -94,6 +95,7 @@ if (MSVC80)      FIND_PATH(release_msvc8_redist_path msvcr80.dll          PATHS +		${MSVC_REDIST_PATH}           [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/redist/x86/Microsoft.VC80.CRT          NO_DEFAULT_PATH          NO_DEFAULT_PATH diff --git a/indra/llmessage/llcircuit.cpp b/indra/llmessage/llcircuit.cpp index 3ba2dfb104..e0410906fb 100644 --- a/indra/llmessage/llcircuit.cpp +++ b/indra/llmessage/llcircuit.cpp @@ -87,6 +87,7 @@ LLCircuitData::LLCircuitData(const LLHost &host, TPACKETID in_id,  	mPingDelayAveraged((F32)INITIAL_PING_VALUE_MSEC),   	mUnackedPacketCount(0),  	mUnackedPacketBytes(0), +	mLastPacketInTime(0.0),  	mLocalEndPointID(),  	mPacketsOut(0),  	mPacketsIn(0),  @@ -667,6 +668,8 @@ void LLCircuitData::checkPacketInID(TPACKETID id, BOOL receive_resent)  		mHighestPacketID = llmax(mHighestPacketID, id);  	} +	// Save packet arrival time +	mLastPacketInTime = LLMessageSystem::getMessageTimeSeconds();  	// Have we received anything on this circuit yet?  	if (0 == mPacketsIn) diff --git a/indra/llmessage/llcircuit.h b/indra/llmessage/llcircuit.h index 874c0c0bee..d1c400c6a2 100644 --- a/indra/llmessage/llcircuit.h +++ b/indra/llmessage/llcircuit.h @@ -122,7 +122,7 @@ public:  	U32			getPacketsLost() const;  	TPACKETID	getPacketOutID() const;  	BOOL		getTrusted() const; -	F32 getAgeInSeconds() const; +	F32			getAgeInSeconds() const;  	S32			getUnackedPacketCount() const	{ return mUnackedPacketCount; }  	S32			getUnackedPacketBytes() const	{ return mUnackedPacketBytes; }  	F64         getNextPingSendTime() const { return mNextPingSendTime; } @@ -130,6 +130,7 @@ public:                      { return mOutOfOrderRate.meanValue(scale); }      U32         getLastPacketGap() const { return mLastPacketGap; }      LLHost      getHost() const { return mHost; } +	F64			getLastPacketInTime() const		{ return mLastPacketInTime;	}  	LLThrottleGroup &getThrottleGroup()		{	return mThrottles; } @@ -248,6 +249,7 @@ protected:  	S32										mUnackedPacketCount;  	S32										mUnackedPacketBytes; +	F64										mLastPacketInTime;		// Time of last packet arrival  	LLUUID									mLocalEndPointID; diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 437be15150..290e8ebbe0 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1753,6 +1753,17 @@ set(ARTWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH  if (LINUX)    set(product SecondLife-${ARCH}-${viewer_VERSION}) +  # These are the generated targets that are copied to package/ +  set(COPY_INPUT_DEPENDENCIES +	${VIEWER_BINARY_NAME} +	linux-crash-logger +	linux-updater +	SLPlugin +	media_plugin_webkit +	media_plugin_gstreamer010 +	llcommon +	) +    add_custom_command(        OUTPUT ${product}.tar.bz2        COMMAND ${PYTHON_EXECUTABLE} @@ -1770,18 +1781,13 @@ if (LINUX)          --login_channel=${VIEWER_LOGIN_CHANNEL}          --source=${CMAKE_CURRENT_SOURCE_DIR}          --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched -      DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py +      DEPENDS +        ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py +        ${COPY_INPUT_DEPENDENCIES}        ) -  add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_gstreamer010 media_plugin_webkit) - -  if (NOT INSTALL) -    add_custom_target(package ALL DEPENDS ${product}.tar.bz2) -    add_dependencies(package linux-crash-logger-target) -    add_dependencies(package linux-updater-target) -    check_message_template(package) -  endif (NOT INSTALL) - +  if (PACKAGE) +  endif (PACKAGE)    add_custom_command(      OUTPUT  ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.copy_touched      COMMAND ${PYTHON_EXECUTABLE} @@ -1801,9 +1807,15 @@ if (LINUX)        ${COPY_INPUT_DEPENDENCIES}      COMMENT "Performing viewer_manifest copy"      ) -     +    add_custom_target(copy_l_viewer_manifest ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.copy_touched)  -  add_dependencies(copy_l_viewer_manifest "${VIEWER_BINARY_NAME}" linux-crash-logger-target linux-updater-target) + +  if (PACKAGE) +    add_custom_target(package ALL DEPENDS ${product}.tar.bz2) +    # Make sure we don't run two instances of viewer_manifest.py at the same time. +    add_dependencies(package copy_l_viewer_manifest) +    check_message_template(package) +  endif (PACKAGE)  endif (LINUX)  if (DARWIN) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 304ba15d07..66dd11547f 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -950,39 +950,6 @@        <key>Value</key>        <integer>1</integer>      </map> -    <key>BulkChangeIncludeAnimations</key> -    <map> -      <key>Comment</key> -      <string>Bulk permission changes affect animations</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>Boolean</string> -      <key>Value</key> -      <integer>1</integer> -    </map> -    <key>BulkChangeIncludeAnimations</key> -    <map> -      <key>Comment</key> -      <string>Bulk permission changes affect animations</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>Boolean</string> -      <key>Value</key> -      <integer>1</integer> -    </map> -    <key>BulkChangeIncludeAnimations</key> -    <map> -      <key>Comment</key> -      <string>Bulk permission changes affect animations</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>Boolean</string> -      <key>Value</key> -      <integer>1</integer> -    </map>      <key>BulkChangeIncludeBodyParts</key>      <map>        <key>Comment</key> @@ -1195,18 +1162,7 @@      <key>CacheLocationTopFolder</key>      <map>        <key>Comment</key> -      <string>Controls the top folder location of the local disk cache</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>String</string> -      <key>Value</key> -      <string /> -    </map>	 -    <key>CacheLocationTopFolder</key> -    <map> -      <key>Comment</key> -      <string>Controls the location of the local disk cache</string> +      <string>Controls the top folder location of the the local disk cache</string>        <key>Persist</key>        <integer>1</integer>        <key>Type</key> @@ -3179,17 +3135,6 @@          <string>http://viewer-settings.secondlife.com</string>      </map>      <key>FPSLogFrequency</key> -    <map> -      <key>Comment</key> -      <string>Seconds between display of FPS in log (0 for never)</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>F32</string> -      <key>Value</key> -      <real>60.0</real> -    </map> -    <key>FPSLogFrequency</key>          <map>          <key>Comment</key>              <string>Seconds between display of FPS in log (0 for never)</string> @@ -6155,17 +6100,6 @@      <key>OutBandwidth</key>      <map>        <key>Comment</key> -      <string>Expand render stats display</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>Boolean</string> -      <key>Value</key> -      <integer>1</integer> -    </map> -    <key>OutBandwidth</key> -    <map> -      <key>Comment</key>        <string>Outgoing bandwidth throttle (bps)</string>        <key>Persist</key>        <integer>1</integer> @@ -11844,8 +11778,6 @@        <key>Type</key>        <string>LLSD</string>        <key>Value</key> -      <map> -      </map>      </map>      <key>VFSOldSize</key>      <map> @@ -12001,17 +11933,6 @@        <key>Value</key>        <string></string>      </map> -    <key>VivoxDebugSIPURIHostName</key> -    <map> -      <key>Comment</key> -      <string>Hostname portion of vivox SIP URIs (empty string for the default).</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>String</string> -      <key>Value</key> -      <string></string> -    </map>      <key>VivoxDebugVoiceAccountServerURI</key>      <map>        <key>Comment</key> diff --git a/indra/newview/llpanelnearbymedia.cpp b/indra/newview/llpanelnearbymedia.cpp index c4ae82ccdf..fc6bc09b82 100644 --- a/indra/newview/llpanelnearbymedia.cpp +++ b/indra/newview/llpanelnearbymedia.cpp @@ -958,7 +958,7 @@ void LLPanelNearByMedia::onAdvancedButtonClick()  void LLPanelNearByMedia::onMoreLess()  { -	bool is_more = getChild<LLUICtrl>("more_btn")->getVisible(); +	bool is_more = getChild<LLButton>("more_btn")->getToggleState();  	mNearbyMediaPanel->setVisible(is_more);  	// enable resizing when expanded @@ -969,8 +969,7 @@ void LLPanelNearByMedia::onMoreLess()  	setShape(new_rect); -	getChild<LLUICtrl>("more_btn")->setVisible(!is_more); -	getChild<LLUICtrl>("less_btn")->setVisible(is_more); +	getChild<LLUICtrl>("more_btn")->setVisible(true);  }  void LLPanelNearByMedia::updateControls() diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index cd72e69055..b2156df999 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -1436,9 +1436,12 @@ void LLViewerMedia::proxyWindowClosed(const std::string &uuid)  // static  void LLViewerMedia::createSpareBrowserMediaSource()  { -	if(!sSpareBrowserMediaSource) +	// 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 we don't have a spare browser media source, create one.  		// 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) @@ -1694,7 +1697,8 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_  	LLPluginClassMedia* media_source = NULL;  	// HACK: we always try to keep a spare running webkit plugin around to improve launch times. -	if(plugin_basename == "media_plugin_webkit") +	// If a spare was already created before PluginAttachDebuggerToPlugins was set, don't use it. +	if(plugin_basename == "media_plugin_webkit" && !gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"))  	{  		media_source = LLViewerMedia::getSpareBrowserMediaSource();  		if(media_source) diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 244de7fed3..d723fc0a8e 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -217,7 +217,6 @@ LLViewerObject::LLViewerObject(const LLUUID &id, const LLPCode pcode, LLViewerRe  	mLastInterpUpdateSecs(0.f),  	mLastMessageUpdateSecs(0.f),  	mLatestRecvPacketID(0), -	mCircuitPacketCount(0),  	mData(NULL),  	mAudioSourcep(NULL),  	mAudioGain(1.f), @@ -1908,7 +1907,6 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,  	}  	mLatestRecvPacketID = packet_id; -	mCircuitPacketCount = 0;  	// Set the change flags for scale  	if (new_scale != getScale()) @@ -2231,7 +2229,8 @@ void LLViewerObject::interpolateLinearMotion(const F64 & time, const F32 & dt)  		LLVector3 new_pos = (vel + (0.5f * (dt-PHYSICS_TIMESTEP)) * accel) * dt;	  		LLVector3 new_v = accel * dt; -		if (time_since_last_update > sPhaseOutUpdateInterpolationTime) +		if (time_since_last_update > sPhaseOutUpdateInterpolationTime && +			sPhaseOutUpdateInterpolationTime > 0.0)  		{	// Haven't seen a viewer update in a while, check to see if the ciruit is still active  			if (mRegionp)  			{	// The simulator will NOT send updates if the object continues normally on the path @@ -2240,9 +2239,12 @@ void LLViewerObject::interpolateLinearMotion(const F64 & time, const F32 & dt)  				LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit( mRegionp->getHost() );  				if (cdp)  				{ +					// Find out how many seconds since last packet arrived on the circuit +					F64 time_since_last_packet = LLMessageSystem::getMessageTimeSeconds() - cdp->getLastPacketInTime(); +  					if (!cdp->isAlive() ||		// Circuit is dead or blocked  						 cdp->isBlocked() ||	// or doesn't seem to be getting any packets -						 (mCircuitPacketCount > 0 && mCircuitPacketCount == cdp->getPacketsIn())) +						 (time_since_last_packet > sPhaseOutUpdateInterpolationTime))  					{  						// Start to reduce motion interpolation since we haven't seen a server update in a while  						F64 time_since_last_interpolation = time - mLastInterpUpdateSecs; @@ -2273,9 +2275,6 @@ void LLViewerObject::interpolateLinearMotion(const F64 & time, const F32 & dt)  						new_pos = new_pos * ((F32) phase_out);  						new_v = new_v * ((F32) phase_out);  					} - -					// Save current circuit packet count to see if it changes  -					mCircuitPacketCount = cdp->getPacketsIn();  				}  			}  		} @@ -5252,7 +5251,6 @@ void LLViewerObject::setRegion(LLViewerRegion *regionp)  	}  	mLatestRecvPacketID = 0; -	mCircuitPacketCount = 0;  	mRegionp = regionp;  	for (child_list_t::iterator i = mChildList.begin(); i != mChildList.end(); ++i) diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index 8883272cde..2b2b7bd59d 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -656,7 +656,6 @@ protected:  	F64				mLastInterpUpdateSecs;			// Last update for purposes of interpolation  	F64				mLastMessageUpdateSecs;			// Last update from a message from the simulator  	TPACKETID		mLatestRecvPacketID;			// Latest time stamp on message from simulator -	U32				mCircuitPacketCount;			// Packet tracking for early detection of a stopped simulator circuit  	// extra data sent from the sim...currently only used for tree species info  	U8* mData; diff --git a/indra/newview/skins/default/xui/en/panel_nearby_media.xml b/indra/newview/skins/default/xui/en/panel_nearby_media.xml index 8c13ced8f3..9bd60b935f 100644 --- a/indra/newview/skins/default/xui/en/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/en/panel_nearby_media.xml @@ -68,24 +68,12 @@  		right="-8"  		width="66"  		height="22" +		is_toggle="true"  		label="More >>" -		label_selected="Less <<"> +		label_selected="<< Less">  	  <button.commit_callback  		  function="MediaListCtrl.MoreLess" />  	</button> -  <button -		name="less_btn" -		follows="right" -		tool_tip="Advanced Controls" -		top_delta="0" -		right="-8" -		width="66" -		height="22" -		label="More >>" -		label_selected="Less <<"> -      <button.commit_callback -        function="MediaListCtrl.MoreLess" /> -  </button>    </panel>    <panel  	  name="nearby_media_panel" | 
