[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'infraction, ainsi que
tout chat ou IM relatif à l'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'objet d'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