summaryrefslogtreecommitdiff
path: root/indra/llwebrtc/llwebrtc.cpp
diff options
context:
space:
mode:
authorRoxie Linden <roxie@lindenlab.com>2024-02-03 22:02:48 -0800
committerRoxie Linden <roxie@lindenlab.com>2024-02-08 18:35:55 -0800
commit73b00bfe94a6a2a4ea0abc2cf716d835820dfdba (patch)
tree196df21e1794bf7ac2afaa9295bf232a32a98a90 /indra/llwebrtc/llwebrtc.cpp
parentfd077d8a9b5e2a5d3971b4bcae06f5ee39e6c53b (diff)
Handle 'device changed' callback
Diffstat (limited to 'indra/llwebrtc/llwebrtc.cpp')
-rw-r--r--indra/llwebrtc/llwebrtc.cpp22
1 files changed, 17 insertions, 5 deletions
diff --git a/indra/llwebrtc/llwebrtc.cpp b/indra/llwebrtc/llwebrtc.cpp
index 900698aa56..d6eff5e1f2 100644
--- a/indra/llwebrtc/llwebrtc.cpp
+++ b/indra/llwebrtc/llwebrtc.cpp
@@ -113,6 +113,7 @@ void LLWebRTCImpl::init()
mTuningDeviceModule->SetStereoRecording(true);
mTuningDeviceModule->SetStereoPlayout(true);
mTuningDeviceModule->EnableBuiltInAEC(false);
+ mTuningDeviceModule->SetAudioDeviceSink(this);
updateDevices();
});
@@ -379,31 +380,42 @@ void LLWebRTCImpl::setRenderDevice(const std::string &id)
void LLWebRTCImpl::updateDevices()
{
- int16_t renderDeviceCount = mTuningDeviceModule->PlayoutDevices();
+ int16_t renderDeviceCount = mTuningDeviceModule->PlayoutDevices();
+ int16_t currentRenderDeviceIndex = mTuningDeviceModule->GetPlayoutDevice();
+
LLWebRTCVoiceDeviceList renderDeviceList;
for (int16_t index = 0; index < renderDeviceCount; index++)
{
char name[webrtc::kAdmMaxDeviceNameSize];
char guid[webrtc::kAdmMaxGuidSize];
mTuningDeviceModule->PlayoutDeviceName(index, name, guid);
- renderDeviceList.emplace_back(name, guid);
+ renderDeviceList.emplace_back(name, guid, index == currentRenderDeviceIndex);
}
- int16_t captureDeviceCount = mTuningDeviceModule->RecordingDevices();
+ int16_t captureDeviceCount = mTuningDeviceModule->RecordingDevices();
+ int16_t currentCaptureDeviceIndex = mTuningDeviceModule->GetRecordingDevice();
+
LLWebRTCVoiceDeviceList captureDeviceList;
for (int16_t index = 0; index < captureDeviceCount; index++)
{
char name[webrtc::kAdmMaxDeviceNameSize];
char guid[webrtc::kAdmMaxGuidSize];
mTuningDeviceModule->RecordingDeviceName(index, name, guid);
- captureDeviceList.emplace_back(name, guid);
+ captureDeviceList.emplace_back(name, guid, index == currentCaptureDeviceIndex);
}
for (auto &observer : mVoiceDevicesObserverList)
{
- observer->OnDevicesChanged(renderDeviceList, captureDeviceList);
+ observer->OnDevicesChanged(renderDeviceList,
+ captureDeviceList);
}
}
+void LLWebRTCImpl::OnDevicesUpdated()
+{
+ updateDevices();
+}
+
+
void LLWebRTCImpl::setTuningMode(bool enable)
{
mWorkerThread->BlockingCall(