diff options
| author | Roxie Linden <roxie@lindenlab.com> | 2023-09-18 11:25:47 -0700 | 
|---|---|---|
| committer | Roxie Linden <roxie@lindenlab.com> | 2024-02-08 18:34:01 -0800 | 
| commit | 976a75ed24f11e3211a98120b1ac57126e625d6c (patch) | |
| tree | 1c027fb437945c31bcaa9e88f6335d3e614558a5 /indra/newview | |
| parent | 78c9b620432257cc636cd9f1ea4d7d1ed48c436c (diff) | |
Fix voice device settings
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llpanelvoicedevicesettings.cpp | 79 | 
1 files changed, 44 insertions, 35 deletions
| diff --git a/indra/newview/llpanelvoicedevicesettings.cpp b/indra/newview/llpanelvoicedevicesettings.cpp index 28631e2b7b..48c90d6856 100644 --- a/indra/newview/llpanelvoicedevicesettings.cpp +++ b/indra/newview/llpanelvoicedevicesettings.cpp @@ -236,44 +236,47 @@ void LLPanelVoiceDeviceSettings::refresh()  		if(mCtrlInputDevices)  		{ -			mCtrlInputDevices->removeall(); -			mCtrlInputDevices->add(getLocalizedDeviceName(DEFAULT_DEVICE), DEFAULT_DEVICE, ADD_BOTTOM); - -			for(device=LLVoiceClient::getInstance()->getCaptureDevices().begin();  -				device != LLVoiceClient::getInstance()->getCaptureDevices().end(); -				device++) -			{ -				mCtrlInputDevices->add(getLocalizedDeviceName(device->display_name), device->full_name, ADD_BOTTOM); -			} - -			// Fix invalid input audio device preference. -			if (!mCtrlInputDevices->setSelectedByValue(mInputDevice, TRUE)) -			{ -				mCtrlInputDevices->setValue(DEFAULT_DEVICE); -				gSavedSettings.setString("VoiceInputAudioDevice", DEFAULT_DEVICE); -				mInputDevice = DEFAULT_DEVICE; -			} +            LLVoiceDeviceList devices = LLVoiceClient::getInstance()->getCaptureDevices(); +            if (devices.size() > 0) // if zero, we've not received our devices yet +            { +                mCtrlInputDevices->removeall(); +                mCtrlInputDevices->add(getLocalizedDeviceName(DEFAULT_DEVICE), DEFAULT_DEVICE, ADD_BOTTOM); +                for (auto& device : devices) +                { +                    mCtrlInputDevices->add(getLocalizedDeviceName(device.display_name), device.full_name, ADD_BOTTOM); +                } + +                // Fix invalid input audio device preference. +                if (!mCtrlInputDevices->setSelectedByValue(mInputDevice, TRUE)) +                { +                    mCtrlInputDevices->setValue(DEFAULT_DEVICE); +                    gSavedSettings.setString("VoiceInputAudioDevice", DEFAULT_DEVICE); +                    mInputDevice = DEFAULT_DEVICE; +                } +            }  		}  		if(mCtrlOutputDevices)  		{ -			mCtrlOutputDevices->removeall(); -			mCtrlOutputDevices->add(getLocalizedDeviceName(DEFAULT_DEVICE), DEFAULT_DEVICE, ADD_BOTTOM); - -			for(device = LLVoiceClient::getInstance()->getRenderDevices().begin();  -				device !=  LLVoiceClient::getInstance()->getRenderDevices().end(); -                device++) -			{ -                mCtrlOutputDevices->add(getLocalizedDeviceName(device->display_name), device->full_name, ADD_BOTTOM); -			} - -			// Fix invalid output audio device preference. -			if (!mCtrlOutputDevices->setSelectedByValue(mOutputDevice, TRUE)) -			{ -				mCtrlOutputDevices->setValue(DEFAULT_DEVICE); -				gSavedSettings.setString("VoiceOutputAudioDevice", DEFAULT_DEVICE); -				mOutputDevice = DEFAULT_DEVICE; -			} +            LLVoiceDeviceList devices = LLVoiceClient::getInstance()->getRenderDevices(); +            if (devices.size() > 0)  // if zero, we've not received our devices yet +            { +                mCtrlOutputDevices->removeall(); +                mCtrlOutputDevices->add(getLocalizedDeviceName(DEFAULT_DEVICE), DEFAULT_DEVICE, ADD_BOTTOM); + +                for (auto& device : devices) +                { +                    mCtrlOutputDevices->add(getLocalizedDeviceName(device.display_name), device.full_name, ADD_BOTTOM); +                } + +                // Fix invalid output audio device preference. +                if (!mCtrlOutputDevices->setSelectedByValue(mOutputDevice, TRUE)) +                { +                    mCtrlOutputDevices->setValue(DEFAULT_DEVICE); +                    gSavedSettings.setString("VoiceOutputAudioDevice", DEFAULT_DEVICE); +                    mOutputDevice = DEFAULT_DEVICE; +                } +            }  		}  	}	  } @@ -316,8 +319,11 @@ void LLPanelVoiceDeviceSettings::onCommitInputDevice()  	if(LLVoiceClient::getInstance())  	{  		mInputDevice = mCtrlInputDevices->getValue().asString(); -		LLVoiceClient::getInstance()->setRenderDevice(mInputDevice); +		LLVoiceClient::getInstance()->setCaptureDevice(mInputDevice);  	} +	// the preferences floater stuff is a mess, hence apply will never +	// be called when 'ok' is pressed, so just force it for now. +    apply();  }  void LLPanelVoiceDeviceSettings::onCommitOutputDevice() @@ -328,6 +334,9 @@ void LLPanelVoiceDeviceSettings::onCommitOutputDevice()  		mOutputDevice = mCtrlOutputDevices->getValue().asString();   		LLVoiceClient::getInstance()->setRenderDevice(mOutputDevice);  	} +    // the preferences floater stuff is a mess, hence apply will never +    // be called when 'ok' is pressed, so just force it for now. +    apply();  }  void LLPanelVoiceDeviceSettings::onOutputDevicesClicked() | 
