summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelvoicedevicesettings.cpp
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2024-04-12 17:05:23 +0300
committerGitHub <noreply@github.com>2024-04-12 17:05:23 +0300
commit9bc190c8d3ddd7a692636bb349952144fd511622 (patch)
tree07b0a9297a67667b5c85c4eb4950628e344c5106 /indra/newview/llpanelvoicedevicesettings.cpp
parentf5a7fba76a24a96f906abcbd928f37e4eabfa76c (diff)
parenteab5beb54cacc2b0dc2cddad4a78634e7468a298 (diff)
Merge pull request #1211 from secondlife/marchcat/x-merge
Release (Maint W) -> Maint X merge
Diffstat (limited to 'indra/newview/llpanelvoicedevicesettings.cpp')
-rw-r--r--indra/newview/llpanelvoicedevicesettings.cpp29
1 files changed, 27 insertions, 2 deletions
diff --git a/indra/newview/llpanelvoicedevicesettings.cpp b/indra/newview/llpanelvoicedevicesettings.cpp
index 28631e2b7b..af57169f3b 100644
--- a/indra/newview/llpanelvoicedevicesettings.cpp
+++ b/indra/newview/llpanelvoicedevicesettings.cpp
@@ -32,6 +32,7 @@
// Viewer includes
#include "llcombobox.h"
#include "llsliderctrl.h"
+#include "llstartup.h"
#include "llviewercontrol.h"
#include "llvoiceclient.h"
#include "llvoicechannel.h"
@@ -70,11 +71,14 @@ BOOL LLPanelVoiceDeviceSettings::postBuild()
mCtrlInputDevices = getChild<LLComboBox>("voice_input_device");
mCtrlOutputDevices = getChild<LLComboBox>("voice_output_device");
+ mUnmuteBtn = getChild<LLButton>("unmute_btn");
mCtrlInputDevices->setCommitCallback(
boost::bind(&LLPanelVoiceDeviceSettings::onCommitInputDevice, this));
mCtrlOutputDevices->setCommitCallback(
boost::bind(&LLPanelVoiceDeviceSettings::onCommitOutputDevice, this));
+ mUnmuteBtn->setCommitCallback(
+ boost::bind(&LLPanelVoiceDeviceSettings::onCommitUnmute, this));
mLocalizedDeviceNames[DEFAULT_DEVICE] = getString("default_text");
mLocalizedDeviceNames["No Device"] = getString("name_no_device");
@@ -108,11 +112,27 @@ void LLPanelVoiceDeviceSettings::draw()
// let user know that volume indicator is not yet available
bool is_in_tuning_mode = LLVoiceClient::getInstance()->inTuningMode();
- getChildView("wait_text")->setVisible( !is_in_tuning_mode && mUseTuningMode);
+ bool voice_enabled = LLVoiceClient::getInstance()->voiceEnabled();
+ if (voice_enabled)
+ {
+ getChildView("wait_text")->setVisible( !is_in_tuning_mode && mUseTuningMode);
+ getChildView("disabled_text")->setVisible(FALSE);
+ mUnmuteBtn->setVisible(FALSE);
+ }
+ else
+ {
+ getChildView("wait_text")->setVisible(FALSE);
+
+ static LLCachedControl<bool> chat_enabled(gSavedSettings, "EnableVoiceChat");
+ // If voice isn't enabled, it is either disabled or muted
+ bool voice_disabled = chat_enabled() || LLStartUp::getStartupState() <= STATE_LOGIN_WAIT;
+ getChildView("disabled_text")->setVisible(voice_disabled);
+ mUnmuteBtn->setVisible(!voice_disabled);
+ }
LLPanel::draw();
- if (is_in_tuning_mode)
+ if (is_in_tuning_mode && voice_enabled)
{
const S32 num_bars = 5;
F32 voice_power = LLVoiceClient::getInstance()->tuningGetEnergy() / LLVoiceClient::OVERDRIVEN_POWER_LEVEL;
@@ -339,3 +359,8 @@ void LLPanelVoiceDeviceSettings::onInputDevicesClicked()
{
LLVoiceClient::getInstance()->refreshDeviceLists(false); // fill in the pop up menus again if needed.
}
+
+void LLPanelVoiceDeviceSettings::onCommitUnmute()
+{
+ gSavedSettings.setBOOL("EnableVoiceChat", TRUE);
+}