diff --git a/doc/contributions.txt b/doc/contributions.txt index 06807ffb5d098131be6aa630e79ba95884f64a87..d33c448416a63390644ca6bf3cc130fd3178f5c4 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -442,6 +442,7 @@ Jonathan Yap STORM-1095 STORM-1236 STORM-1259 + STORM-787 STORM-899 STORM-1273 Kage Pixel diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 6074a86d8859db6c6e7755d684d7b37e5a173766..a395fe3606bfdbd279c84cabd1159e9128b1a0ba 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -3058,6 +3058,17 @@ <key>Value</key> <integer>1</integer> </map> + <key>EnableGestureSounds</key> + <map> + <key>Comment</key> + <string>Play sounds from gestures</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>1</integer> + </map> <key>EnableMouselook</key> <map> <key>Comment</key> diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 60a2f813aaff98a963a38371f4ab8801e7f6e6f3..7848484ac6d34b28cc33727d041f4f643cf146f8 100755 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -327,6 +327,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key) mCommitCallbackRegistrar.add("Pref.SelectSkin", boost::bind(&LLFloaterPreference::onSelectSkin, this)); mCommitCallbackRegistrar.add("Pref.VoiceSetKey", boost::bind(&LLFloaterPreference::onClickSetKey, this)); mCommitCallbackRegistrar.add("Pref.VoiceSetMiddleMouse", boost::bind(&LLFloaterPreference::onClickSetMiddleMouse, this)); + mCommitCallbackRegistrar.add("Pref.SetSounds", boost::bind(&LLFloaterPreference::onClickSetSounds, this)); // mCommitCallbackRegistrar.add("Pref.ClickSkipDialogs", boost::bind(&LLFloaterPreference::onClickSkipDialogs, this)); // mCommitCallbackRegistrar.add("Pref.ClickResetDialogs", boost::bind(&LLFloaterPreference::onClickResetDialogs, this)); mCommitCallbackRegistrar.add("Pref.ClickEnablePopup", boost::bind(&LLFloaterPreference::onClickEnablePopup, this)); @@ -1286,6 +1287,14 @@ void LLFloaterPreference::onClickSetMiddleMouse() p2t_line_editor->setValue(advanced_preferences->getString("middle_mouse")); } } + +void LLFloaterPreference::onClickSetSounds() +{ + // Disable Enable gesture sounds checkbox if the master sound is disabled + // or if sound effects are disabled. + getChild<LLCheckBoxCtrl>("gesture_audio_play_btn")->setEnabled(!gSavedSettings.getBOOL("MuteSounds")); +} + /* void LLFloaterPreference::onClickSkipDialogs() { diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index ef9257534763f7d29f42012f2fdd5dec6e4fed73..61f2c786401cc02331ba63ca556422835f7ebc7e 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -129,6 +129,7 @@ class LLFloaterPreference : public LLFloater, public LLAvatarPropertiesObserver void onClickSetKey(); void setKey(KEY key); void onClickSetMiddleMouse(); + void onClickSetSounds(); // void onClickSkipDialogs(); // void onClickResetDialogs(); void onClickEnablePopup(); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 3832be727fcc331af2371065562ceedee33ca792..0aada644f303da620544b40420b366a2b246eb97 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -4332,6 +4332,9 @@ void process_sound_trigger(LLMessageSystem *msg, void **) { return; } + + // Don't play sounds from gestures if they are not enabled. + if (!gSavedSettings.getBOOL("EnableGestureSounds")) return; gAudiop->triggerSound(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX, pos_global); } diff --git a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml index 91fe6f544c3e9dab81c8e4c6a8ac581e900e07e1..1745c1e4b0e2f8b0fe862e697bfc0dcae47c743c 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml @@ -123,8 +123,8 @@ function="Pref.setControlFalse" parameter="MuteAmbient" /> </slider> - <button - control_name="MuteAmbient" + <button + control_name="MuteAmbient" disabled_control="MuteAudio" follows="top|left" height="16" @@ -157,7 +157,7 @@ function="Pref.setControlFalse" parameter="MuteSounds" /> </slider> - <button + <button control_name="MuteSounds" disabled_control="MuteAudio" follows="top|left" @@ -169,7 +169,10 @@ left_pad="5" name="mute_audio" tab_stop="false" - width="16" /> + width="16"> + <button.commit_callback + function="Pref.SetSounds"/> + </button> <slider control_name="AudioLevelMusic" disabled_control="MuteAudio" @@ -332,7 +335,17 @@ label="Play media attached to other avatars" left="25" width="230"/> - + <check_box + name="gesture_audio_play_btn" + control_name="EnableGestureSounds" + disabled_control="MuteAudio" + value="true" + follows="left|bottom|right" + height="15" + tool_tip="Check this to hear sounds from gestures" + label="Play sounds from gestures" + top_pad="1" + left="25"/> <text type="string" length="1"