[SCM] A client for connecting to 3D metaverses such as Linden Labs Secondlife(tm) and OpenSim grids branch, upstream, updated. upstream/1.21.6-13-g1836a2b

Robin Cornelius robin.cornelius at gmail.com
Tue Apr 14 11:12:14 UTC 2009


The following commit has been merged in the upstream branch:
commit 2c826baed37459e35b0e371e3311e1138909268e
Author: Robin Cornelius <robin.cornelius at gmail.com>
Date:   Thu Feb 26 21:10:31 2009 +0000

    Imported Upstream version 1.22.10

diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h
index 4f28752..258a5e2 100644
--- a/indra/llcommon/llversionviewer.h
+++ b/indra/llcommon/llversionviewer.h
@@ -34,7 +34,7 @@
 
 const S32 LL_VERSION_MAJOR = 1;
 const S32 LL_VERSION_MINOR = 22;
-const S32 LL_VERSION_PATCH = 9;
+const S32 LL_VERSION_PATCH = 10;
 const S32 LL_VERSION_BUILD = 0;
 
 const char * const LL_CHANNEL = "Second Life Release";
diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp
index 929fd15..82331b5 100644
--- a/indra/newview/llpreviewtexture.cpp
+++ b/indra/newview/llpreviewtexture.cpp
@@ -302,7 +302,8 @@ void LLPreviewTexture::saveAs()
 	if( mLoadingFullImage ) return;
 
 	LLFilePicker& file_picker = LLFilePicker::instance();
-	if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_TGA, LLDir::getScrubbedFileName(getItem()->getName())) )
+	const LLViewerInventoryItem* item = getItem() ;
+	if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_TGA, item ? LLDir::getScrubbedFileName(item->getName()) : LLStringUtil::null) )
 	{
 		// User canceled or we failed to acquire save file.
 		return;
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 145132a..76ef87d 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -1362,10 +1362,13 @@ void LLVoiceClient::login(
 	mVoiceSIPURIHostName = voice_sip_uri_hostname;
 	mVoiceAccountServerURI = voice_account_server_uri;
 
-	if((getState() >= stateLoggingIn) && (getState() < stateLoggedOut))
+	if(!mAccountHandle.empty())
 	{
-		// Already logged in.  This is an internal error.
-		LL_ERRS("Voice") << "Can't login again. Called from wrong state." << LL_ENDL;
+		// Already logged in.
+		LL_WARNS("Voice") << "Called while already logged in." << LL_ENDL;
+		
+		// Don't process another login.
+		return;
 	}
 	else if ( account_name != mAccountName )
 	{
@@ -1431,12 +1434,16 @@ std::string LLVoiceClient::state2string(LLVoiceClient::state inState)
 
 	switch(inState)
 	{
+		CASE(stateDisableCleanup);
 		CASE(stateDisabled);
 		CASE(stateStart);
 		CASE(stateDaemonLaunched);
 		CASE(stateConnecting);
+		CASE(stateConnected);
 		CASE(stateIdle);
-		CASE(stateNeedsProvision);
+		CASE(stateMicTuningStart);
+		CASE(stateMicTuningRunning);
+		CASE(stateMicTuningStop);
 		CASE(stateConnectorStart);
 		CASE(stateConnectorStarting);
 		CASE(stateConnectorStarted);
@@ -1447,9 +1454,6 @@ std::string LLVoiceClient::state2string(LLVoiceClient::state inState)
 		CASE(stateLoggedIn);
 		CASE(stateCreatingSessionGroup);
 		CASE(stateNoChannel);
-		CASE(stateMicTuningStart);
-		CASE(stateMicTuningRunning);
-		CASE(stateMicTuningStop);
 		CASE(stateJoiningSession);
 		CASE(stateSessionJoined);
 		CASE(stateRunning);
@@ -1466,7 +1470,6 @@ std::string LLVoiceClient::state2string(LLVoiceClient::state inState)
 		CASE(stateJoinSessionFailed);
 		CASE(stateJoinSessionFailedWaiting);
 		CASE(stateJail);
-		CASE(stateMicTuningNoLogin);
 	}
 
 #undef CASE
@@ -1522,9 +1525,13 @@ void LLVoiceClient::stateMachine()
 	{
 		updatePosition();
 	}
+	else if(mTuningMode)
+	{
+		// Tuning mode is special -- it needs to launch SLVoice even if voice is disabled.
+	}
 	else
 	{
-		if(getState() != stateDisabled)
+		if((getState() != stateDisabled) && (getState() != stateDisableCleanup))
 		{
 			// User turned off voice support.  Send the cleanup messages, close the socket, and reset.
 			if(!mConnected)
@@ -1534,16 +1541,10 @@ void LLVoiceClient::stateMachine()
 				killGateway();
 			}
 			
-//			leaveAudioSession();
 			logout();
-			// As of SDK version 4885, this should no longer be necessary.  It will linger after the socket close if it needs to.
-			// ms_sleep(2000);
 			connectorShutdown();
-			closeSocket();
-			deleteAllSessions();
-			deleteAllBuddies();
 			
-			setState(stateDisabled);
+			setState(stateDisableCleanup);
 		}
 	}
 	
@@ -1579,9 +1580,24 @@ void LLVoiceClient::stateMachine()
 
 	switch(getState())
 	{
+		//MARK: stateDisableCleanup
+		case stateDisableCleanup:
+			// Clean up and reset everything. 
+			closeSocket();
+			deleteAllSessions();
+			deleteAllBuddies();		
+			
+			mConnectorHandle.clear();
+			mAccountHandle.clear();
+			mAccountPassword.clear();
+			mVoiceAccountServerURI.clear();
+			
+			setState(stateDisabled);	
+		break;
+		
 		//MARK: stateDisabled
 		case stateDisabled:
-			if(mVoiceEnabled && (!mAccountName.empty() || mTuningMode))
+			if(mTuningMode || (mVoiceEnabled && !mAccountName.empty()))
 			{
 				setState(stateStart);
 			}
@@ -1780,29 +1796,34 @@ void LLVoiceClient::stateMachine()
 
 			mPump->addChain(readChain, NEVER_CHAIN_EXPIRY_SECS);
 
-			setState(stateIdle);
+			setState(stateConnected);
 		}
 
 		break;
 		
-		//MARK: stateIdle
-		case stateIdle:
+		//MARK: stateConnected
+		case stateConnected:
 			// Initial devices query
 			getCaptureDevicesSendMessage();
 			getRenderDevicesSendMessage();
 
 			mLoginRetryCount = 0;
-			
-			setState(stateNeedsProvision);
-				
+
+			setState(stateIdle);
 		break;
-		
-		//MARK: stateNeedsProvision
-		case stateNeedsProvision:
-			if(!mVoiceEnabled)
+
+		//MARK: stateIdle
+		case stateIdle:
+			// This is the idle state where we're connected to the daemon but haven't set up a connector yet.
+			if(mTuningMode)
 			{
-				// We were never logged in.  This will shut down the connector.
-				setState(stateLoggedOut);
+				mTuningExitState = stateIdle;
+				setState(stateMicTuningStart);
+			}
+			else if(!mVoiceEnabled)
+			{
+				// We never started up the connector.  This will shut down the daemon.
+				setState(stateConnectorStopped);
 			}
 			else if(!mAccountName.empty())
 			{
@@ -1820,50 +1841,8 @@ void LLVoiceClient::stateMachine()
 					}
 				}
 			}
-			else if(mTuningMode)
-			{
-				mTuningExitState = stateNeedsProvision;
-				setState(stateMicTuningStart);
-			}
-		break;
-		
-		//MARK: stateConnectorStart
-		case stateConnectorStart:
-			if(!mVoiceEnabled)
-			{
-				// We were never logged in.  This will shut down the connector.
-				setState(stateLoggedOut);
-			}
-			else if(!mVoiceAccountServerURI.empty())
-			{
-				connectorCreate();
-			}
-			else if(mTuningMode)
-			{
-				mTuningExitState = stateConnectorStart;
-				setState(stateMicTuningStart);
-			}
-		break;
-		
-		//MARK: stateConnectorStarting
-		case stateConnectorStarting:	// waiting for connector handle
-			// connectorCreateResponse() will transition from here to stateConnectorStarted.
-		break;
-		
-		//MARK: stateConnectorStarted
-		case stateConnectorStarted:		// connector handle received
-			if(!mVoiceEnabled)
-			{
-				// We were never logged in.  This will shut down the connector.
-				setState(stateLoggedOut);
-			}
-			else
-			{
-				// The connector is started.  Send a login message.
-				setState(stateNeedsLogin);
-			}
 		break;
-				
+
 		//MARK: stateMicTuningStart
 		case stateMicTuningStart:
 			if(mUpdateTimer.hasExpired())
@@ -1898,7 +1877,7 @@ void LLVoiceClient::stateMachine()
 		
 		//MARK: stateMicTuningRunning
 		case stateMicTuningRunning:
-			if(!mTuningMode || !mVoiceEnabled || mSessionTerminateRequested || mCaptureDeviceDirty || mRenderDeviceDirty)
+			if(!mTuningMode || mCaptureDeviceDirty || mRenderDeviceDirty)
 			{
 				// All of these conditions make us leave tuning mode.
 				setState(stateMicTuningStop);
@@ -1952,7 +1931,39 @@ void LLVoiceClient::stateMachine()
 			
 		}
 		break;
-								
+												
+		//MARK: stateConnectorStart
+		case stateConnectorStart:
+			if(!mVoiceEnabled)
+			{
+				// We were never logged in.  This will shut down the connector.
+				setState(stateLoggedOut);
+			}
+			else if(!mVoiceAccountServerURI.empty())
+			{
+				connectorCreate();
+			}
+		break;
+		
+		//MARK: stateConnectorStarting
+		case stateConnectorStarting:	// waiting for connector handle
+			// connectorCreateResponse() will transition from here to stateConnectorStarted.
+		break;
+		
+		//MARK: stateConnectorStarted
+		case stateConnectorStarted:		// connector handle received
+			if(!mVoiceEnabled)
+			{
+				// We were never logged in.  This will shut down the connector.
+				setState(stateLoggedOut);
+			}
+			else
+			{
+				// The connector is started.  Send a login message.
+				setState(stateNeedsLogin);
+			}
+		break;
+				
 		//MARK: stateLoginRetry
 		case stateLoginRetry:
 			if(mLoginRetryCount == 0)
@@ -2311,11 +2322,7 @@ void LLVoiceClient::stateMachine()
 
 		//MARK: stateConnectorStopped
 		case stateConnectorStopped:		// connector stop received
-			// Clean up and reset everything. 
-			closeSocket();
-			deleteAllSessions();
-			deleteAllBuddies();
-			setState(stateDisabled);
+			setState(stateDisableCleanup);
 		break;
 
 		//MARK: stateConnectorFailed
@@ -2366,11 +2373,6 @@ void LLVoiceClient::stateMachine()
 			// We have given up.  Do nothing.
 		break;
 
-		//MARK: stateMicTuningNoLogin
-		case stateMicTuningNoLogin:
-		// *TODO: Implement me.
-		LL_WARNS("Voice") << "stateMicTuningNoLogin not handled" << LL_ENDL;
-		break;
 	}
 	
 	if(mAudioSession && mAudioSession->mParticipantsChanged)
@@ -2943,12 +2945,8 @@ void LLVoiceClient::daemonDied()
 	// The daemon died, so the connection is gone.  Reset everything and start over.
 	LL_WARNS("Voice") << "Connection to vivox daemon lost.  Resetting state."<< LL_ENDL;
 
-	closeSocket();
-	deleteAllSessions();
-	deleteAllBuddies();
-	
 	// Try to relaunch the daemon
-	setState(stateDisabled);
+	setState(stateDisableCleanup);
 }
 
 void LLVoiceClient::giveUp()
@@ -5631,8 +5629,8 @@ void LLVoiceClient::setVoiceEnabled(bool enabled)
 		}
 		else
 		{
-			// for now, leave active channel, to auto join when turning voice back on
-			//LLVoiceChannel::getCurrentVoiceChannel->deactivate();
+			// Turning voice off looses your current channel -- this makes sure the UI isn't out of sync when you re-enable it.
+			LLVoiceChannel::getCurrentVoiceChannel()->deactivate();
 		}
 	}
 }
diff --git a/indra/newview/llvoiceclient.h b/indra/newview/llvoiceclient.h
index 9fc6a7d..13dd974 100644
--- a/indra/newview/llvoiceclient.h
+++ b/indra/newview/llvoiceclient.h
@@ -502,16 +502,19 @@ static	void updatePosition(void);
 		// Note: if you change this list, please make corresponding changes to LLVoiceClient::state2string().
 		enum state
 		{
+			stateDisableCleanup,
 			stateDisabled,				// Voice is turned off.
 			stateStart,					// Class is initialized, socket is created
 			stateDaemonLaunched,		// Daemon has been launched
 			stateConnecting,			// connect() call has been issued
+			stateConnected,				// connection to the daemon has been made, send some initial setup commands.
 			stateIdle,					// socket is connected, ready for messaging
-			stateNeedsProvision,		// Need to do a ProvisionVoiceAccountRequest
+			stateMicTuningStart,
+			stateMicTuningRunning,		
+			stateMicTuningStop,
 			stateConnectorStart,		// connector needs to be started
 			stateConnectorStarting,		// waiting for connector handle
 			stateConnectorStarted,		// connector handle received
-			stateMicTuningNoLogin,		// mic tuning before login
 			stateLoginRetry,			// need to retry login (failed due to changing password)
 			stateLoginRetryWait,		// waiting for retry timer
 			stateNeedsLogin,			// send login request
@@ -519,9 +522,6 @@ static	void updatePosition(void);
 			stateLoggedIn,				// account handle received
 			stateCreatingSessionGroup,	// Creating the main session group
 			stateNoChannel,				// 
-			stateMicTuningStart,
-			stateMicTuningRunning,		
-			stateMicTuningStop,
 			stateJoiningSession,		// waiting for session handle
 			stateSessionJoined,			// session handle received
 			stateRunning,				// in session, steady state
diff --git a/indra/newview/skins/default/xui/fr/floater_report_abuse.xml b/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
index 1fbc727..c9b065c 100644
--- a/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
@@ -172,7 +172,7 @@
 	<text name="bug_aviso">
 		Indiquez la date, le lieu, la nature de l&apos;infraction, ainsi que
 tout chat ou IM relatif à l&apos;infraction, en étant aussi précis
-que possible. Pensez à indiquer un objet.
+que possible. Pensez à indiquer un objet si possible.
 	</text>
 	<text bottom_delta="-16" name="incomplete_title">
 		Remarque : les rapports incomplets ne feront pas l&apos;objet d&apos;une
diff --git a/indra/newview/skins/default/xui/ja/alerts.xml b/indra/newview/skins/default/xui/ja/alerts.xml
index f4512c2..30ba935 100644
--- a/indra/newview/skins/default/xui/ja/alerts.xml
+++ b/indra/newview/skins/default/xui/ja/alerts.xml
@@ -2797,10 +2797,10 @@ F1キーを押してください。
 	</alert>
 	<alert name="WebLaunchExternalTarget">
 		<message name="message">
-			お使いのシステムのウェブ・ブラウザーを開いて、この内容を表示しますか?
+			お使いのシステムのウェブ・ブラウザを開いて、この内容を表示しますか?
 		</message>
 		<ignore name="ignore">
-			お使いのシステムのブラウザーを開いてウェブ・ページを表示しようとしたとき
+			お使いのシステムのブラウザを開いてウェブ・ページを表示しようとしたとき
 		</ignore>
 		<option name="Open">
 			OK
@@ -2814,7 +2814,7 @@ F1キーを押してください。
 			www.secondlife.comに移動してアカウントを管理しますか?
 		</message>
 		<ignore name="ignore">
-			口座を管理するため、ウェブ・ブラウザーを起動するとき
+			アカウントを管理するため、ウェブ・ブラウザを起動するとき
 		</ignore>
 		<option name="OK">
 			OK
@@ -2853,10 +2853,10 @@ F1キーを押してください。
 	</alert>
 	<alert name="WebLaunchQAWiki">
 		<message name="message">
-			[SECOND_LIFE] QA Wikiをご覧ください。
+			[SECOND_LIFE] 品質保証関連Wikiをご覧ください。
 		</message>
 		<ignore name="ignore">
-			QA Wikiを閲覧するためにウェブ・ブラウザを起動するにあたって
+			品質保証関連Wikiを閲覧するためにウェブ・ブラウザを起動するにあたって
 		</ignore>
 		<option name="Gotopage">
 			OK
@@ -2895,10 +2895,10 @@ F1キーを押してください。
 	</alert>
 	<alert name="WebLaunchForums">
 		<message name="message">
-			最新のヒントおよびトリックについては、[SECOND_LIFE]の知識ベースを検索してください。
+			最新のヒントおよびトリックについては、[SECOND_LIFE]のナレッジベースを検索してください。
 		</message>
 		<ignore name="ignore">
-			知識ベースを表示するため、ウェブ・ブラウザーを起動するとき
+			ナレッジベースを表示するため、ウェブ・ブラウザを起動するとき
 		</ignore>
 		<option name="Gotopage">
 			OK
@@ -2912,7 +2912,7 @@ F1キーを押してください。
 			[SECOND_LIFE]サポートにコンタクト
 		</message>
 		<ignore name="ignore">
-			サポートに連絡するため、ウェブ・ブラウザーを起動するとき
+			サポートに連絡するため、ウェブ・ブラウザを起動するとき
 		</ignore>
 		<option name="Gotopage">
 			OK
@@ -2926,7 +2926,7 @@ F1キーを押してください。
 			Linden公式ブログで、最新のニュースや情報を入手してください。
 		</message>
 		<ignore name="ignore">
-			ブログを表示するため、ウェブ・ブラウザーを起動するとき
+			ブログを表示するため、ウェブ・ブラウザを起動するとき
 		</ignore>
 		<option name="Gotopage">
 			OK
@@ -2940,7 +2940,7 @@ F1キーを押してください。
 			スクリプトガイドを開いて、スクリプトのヘルプを参照しますか?
 		</message>
 		<ignore name="ignore">
-			LSLガイドを表示するため、ウェブ・ブラウザーを起動するとき
+			LSLガイドを表示するため、ウェブ・ブラウザを起動するとき
 		</ignore>
 		<option name="Gotopage">
 			OK
@@ -2954,7 +2954,7 @@ F1キーを押してください。
 			LSLポータルを開いてスクリプトのヘルプを参照しますか?
 		</message>
 		<ignore name="ignore">
-			LSLポータルを表示するために、ウェブ・ブラウザーを起動するとき
+			LSLポータルを表示するために、ウェブ・ブラウザを起動するとき
 		</ignore>
 		<option name="Gotopage">
 			ページに移動
@@ -4154,7 +4154,7 @@ Linden社所有のメインランドの不動産での太陽の位置に
 			SecondLifeウェブ・ページを開いてアカウント履歴を確認しますか?
 		</message>
 		<ignore name="ignore">
-			口座履歴のウェブ・ページをロードするとき
+			アカウント履歴のウェブ・ページをロードするとき
 		</ignore>
 		<option name="Gotopage">
 			ページに移動
diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml b/indra/newview/skins/default/xui/ja/floater_about_land.xml
index c1d944b..15a4c91 100644
--- a/indra/newview/skins/default/xui/ja/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml
@@ -61,9 +61,9 @@
 			<text length="1" name="DwellText" type="string">
 				誤
 			</text>
-			<button label="土地を購入..." label_selected="土地を購入..." name="Buy Land..."/>
+			<button label="土地を購入..." label_selected="土地を購入..." name="Buy Land..." width="125" left="130"/>
 			<button label="グループ用に購入..." label_selected="グループ用に購入..." name="Buy For Group..."/>
-			<button label="入場許可を購入..." label_selected="入場許可を購入..." name="Buy Pass..." tool_tip="この土地への一時的なアクセスを許可します。"/>
+			<button label="入場許可を購入..." label_selected="入場許可を購入..." name="Buy Pass..." tool_tip="この土地への一時的なアクセスを許可します。" width="125" left="130"/>
 			<button label="土地を放棄..." label_selected="土地を放棄..." name="Abandon Land..."/>
 			<button label="土地開拓..." label_selected="土地開拓..." name="Reclaim Land..."/>
 			<button label="Lindenセール..." label_selected="Lindenセール..." name="Linden Sale..." tool_tip="土地が所有されており、コンテンツが設定されている必要があります。オークションの対象になっていないことも必要条件です。"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml
index d88f0b8..ab20496 100644
--- a/indra/newview/skins/default/xui/ja/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tools.xml
@@ -76,7 +76,7 @@
 	<check_box label="土地を隆起させる" name="radio raise" />
 	<check_box label="土地を低くする" name="radio lower" />
 	<check_box label="土地を滑らかにする" name="radio smooth" />
-	<check_box label="土地を荒らす" name="radio noise" />
+	<check_box label="土地を凸凹にする" name="radio noise" />
 	<check_box label="土地を元に戻す" name="radio revert" />
 	<combo_box name="combobox brush size">
 		<combo_item name="Small">
@@ -558,7 +558,7 @@
 				</combo_item>
 			</combo_box>
 			<text name="tex scale">
-				顔ごとに繰り返す
+				面ごとに繰り返す
 			</text>
 			<spinner label="水平(U)" name="TexScaleU" />
 			<check_box label="反転" name="checkbox flip s" />
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index bc7b074..af870a0 100644
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -132,7 +132,7 @@
 			<menu_item_call label="正午" name="Noon"/>
 			<menu_item_call label="日没" name="Sunset"/>
 			<menu_item_call label="深夜" name="Midnight"/>
-			<menu_item_call label="地域デフォルトに戻す" name="Revert to Region Default"/>
+			<menu_item_call label="地域の標準設定に戻す" name="Revert to Region Default"/>
 			<menu_item_separator label="-----------" name="separator"/>
 			<menu_item_call label="環境編集" name="Environment Editor"/>
 		</menu>
diff --git a/indra/newview/skins/default/xui/ja/panel_region_general.xml b/indra/newview/skins/default/xui/ja/panel_region_general.xml
index cd1b7ce..a0e72b3 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_general.xml
@@ -27,7 +27,7 @@
 	<check_box label="土地の検索表示をブロック" name="block_parcel_search_check"
 	     tool_tip="検索結果で、この地域と区画を人に見せる" />
 	<button label="?" name="parcel_search_help" />
-	<spinner label="人物の制限" name="agent_limit_spin" />
+	<spinner label="アバター数上限" name="agent_limit_spin" />
 	<button label="?" name="agent_limit_help" />
 	<spinner label="物体ボーナス" name="object_bonus_spin" />
 	<button label="?" name="object_bonus_help" />
diff --git a/install.xml b/install.xml
index effa413..1eb6316 100644
--- a/install.xml
+++ b/install.xml
@@ -1443,23 +1443,23 @@ anguage Infrstructure (CLI) international standard</string>
           <key>darwin</key>
           <map>
             <key>md5sum</key>
-            <string>c01efc0182d6f4b665ee136767830fc1</string>
+            <string>352eae0cd76bb561da7b4183fc5a2857</string>
             <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-2.1.3010.6135-darwin-20090210.tar.bz2</uri>
+            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-2.1.3010.6151-darwin-20090218.tar.bz2</uri>
           </map>
           <key>linux</key>
           <map>
             <key>md5sum</key>
-            <string>58dcd6db82b5b92611e890c954af4901</string>
+            <string>2279e1637568a837d9a4971cd27ed5f7</string>
             <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-2.1.3010.6135-linux-20090210.tar.bz2</uri>
+            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-2.1.3010.6151-linux-20090218.tar.bz2</uri>
           </map>
           <key>windows</key>
           <map>
             <key>md5sum</key>
-            <string>599659e6d0374533a6ac8d2e2d360c2c</string>
+            <string>311bedab0abbd3a0ddf07216711af0ea</string>
             <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-2.1.3010.6135-windows-20090210.tar.bz2</uri>
+            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-2.1.3010.6151-windows-20090218.tar.bz2</uri>
           </map>
         </map>
       </map>

-- 
A client for connecting to 3D metaverses such as Linden Labs Secondlife(tm) and OpenSim grids



More information about the Pkg-games-commits mailing list