summaryrefslogtreecommitdiff
path: root/indra/llwebrtc
diff options
context:
space:
mode:
authorRoxie Linden <roxie@lindenlab.com>2024-04-07 14:13:00 -0700
committerRoxie Linden <roxie@lindenlab.com>2024-04-07 14:13:00 -0700
commit34ed990fa363f3df0a9817d36ef0becdcf641e80 (patch)
tree98f550743e124b74499e197794d6fb6c4d693ce6 /indra/llwebrtc
parent4ecf050439da2d16028ce3018a66424b0434005c (diff)
Show 'decline' when peer declines p2p voice
The simulator will send a chatterbox notification that voice is no longer in use for a given channel, and the viewer should take that as a case where the peer does not want voice, hence it's a decline.
Diffstat (limited to 'indra/llwebrtc')
-rw-r--r--indra/llwebrtc/llwebrtc.cpp30
-rw-r--r--indra/llwebrtc/llwebrtc_impl.h1
2 files changed, 25 insertions, 6 deletions
diff --git a/indra/llwebrtc/llwebrtc.cpp b/indra/llwebrtc/llwebrtc.cpp
index 7570bb4434..57130bb734 100644
--- a/indra/llwebrtc/llwebrtc.cpp
+++ b/indra/llwebrtc/llwebrtc.cpp
@@ -26,7 +26,6 @@
#include "llwebrtc_impl.h"
#include <algorithm>
-#include <format>
#include <string.h>
#include "api/audio_codecs/audio_decoder_factory.h"
@@ -389,7 +388,7 @@ void LLWebRTCImpl::unsetDevicesObserver(LLWebRTCDevicesObserver *observer)
void ll_set_device_module_capture_device(rtc::scoped_refptr<webrtc::AudioDeviceModule> device_module, int16_t device)
{
device_module->StopRecording();
-#if LL_WINDOWS
+#if WEBRTC_WIN
if (device < 0)
{
device_module->SetRecordingDevice(webrtc::AudioDeviceModule::kDefaultDevice);
@@ -442,7 +441,7 @@ void LLWebRTCImpl::setCaptureDevice(const std::string &id)
void ll_set_device_module_render_device(rtc::scoped_refptr<webrtc::AudioDeviceModule> device_module, int16_t device)
{
device_module->StopPlayout();
-#if LL_WINDOWS
+#if WEBRTC_WIN
if (device < 0)
{
device_module->SetPlayoutDevice(webrtc::AudioDeviceModule::kDefaultDevice);
@@ -501,10 +500,10 @@ void LLWebRTCImpl::setRenderDevice(const std::string &id)
// updateDevices needs to happen on the worker thread.
void LLWebRTCImpl::updateDevices()
{
- int16_t renderDeviceCount = mTuningDeviceModule->PlayoutDevices();
+ int16_t renderDeviceCount = mTuningDeviceModule->PlayoutDevices();
mPlayoutDeviceList.clear();
-#if LL_WINDOWS
+#if WEBRTC_WIN
int16_t index = 0;
#else
// index zero is always "Default" for darwin/linux,
@@ -516,13 +515,23 @@ void LLWebRTCImpl::updateDevices()
char name[webrtc::kAdmMaxDeviceNameSize];
char guid[webrtc::kAdmMaxGuidSize];
mTuningDeviceModule->PlayoutDeviceName(index, name, guid);
+
+#if WEBRTC_LINUX
+ // Linux audio implementation (pulse and alsa)
+ // return empty strings for the guid, so
+ // use the name for the guid
+ if (!strcmp(guid, ""))
+ {
+ strcpy(guid, name);
+ }
+#endif // WEBRTC_LINUX
mPlayoutDeviceList.emplace_back(name, guid);
}
int16_t captureDeviceCount = mTuningDeviceModule->RecordingDevices();
mRecordingDeviceList.clear();
-#if LL_WINDOWS
+#if WEBRTC_WIN
index = 0;
#else
// index zero is always "Default" for darwin/linux,
@@ -534,6 +543,15 @@ void LLWebRTCImpl::updateDevices()
char name[webrtc::kAdmMaxDeviceNameSize];
char guid[webrtc::kAdmMaxGuidSize];
mTuningDeviceModule->RecordingDeviceName(index, name, guid);
+#if WEBRTC_LINUX
+ // Linux audio implementation (pulse and alsa)
+ // return empty strings for the guid, so
+ // use the name for the guid
+ if (!strcmp(guid, ""))
+ {
+ strcpy(guid, name);
+ }
+#endif // WEBRTC_LINUX
mRecordingDeviceList.emplace_back(name, guid);
}
diff --git a/indra/llwebrtc/llwebrtc_impl.h b/indra/llwebrtc/llwebrtc_impl.h
index 78ae6b4444..e1031099c7 100644
--- a/indra/llwebrtc/llwebrtc_impl.h
+++ b/indra/llwebrtc/llwebrtc_impl.h
@@ -35,6 +35,7 @@
#define WEBRTC_POSIX 1
#elif __linux__
#define WEBRTC_LINUX 1
+#define WEBRTC_POSIX 1
#endif
#include "llwebrtc.h"