summaryrefslogtreecommitdiff
path: root/indra/newview/llvoiceclient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llvoiceclient.cpp')
-rw-r--r--indra/newview/llvoiceclient.cpp38
1 files changed, 25 insertions, 13 deletions
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 479cf5a04d..aa69b46857 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -35,8 +35,11 @@
#include <boost/tokenizer.hpp>
+// library includes
+#include "llnotificationsutil.h"
#include "llsdutil.h"
+// project includes
#include "llvoavatar.h"
#include "llbufferstream.h"
#include "llfile.h"
@@ -60,6 +63,7 @@
#include "llparcel.h"
#include "llviewerparcelmgr.h"
#include "llfirstuse.h"
+#include "lltrans.h"
#include "llviewerwindow.h"
#include "llviewercamera.h"
#include "llvoavatarself.h"
@@ -124,16 +128,8 @@ static int scale_mic_volume(float volume)
static int scale_speaker_volume(float volume)
{
// incoming volume has the range [0.0 ... 1.0], with 0.5 as the default.
- // Map it as follows: 0.0 -> 0, 0.5 -> 62, 1.0 -> 75
-
- volume -= 0.5f; // offset volume to the range [-0.5 ... 0.5], with 0 at the default.
- int scaled_volume = 62; // offset scaled_volume by its default level
- if(volume < 0.0f)
- scaled_volume += ((int)(volume * 124.0f)); // (62 - 0) * 2
- else
- scaled_volume += ((int)(volume * 26.0f)); // (75 - 62) * 2
-
- return scaled_volume;
+ // Map it as follows: 0.0 -> 0, 0.5 -> 50, 1.0 -> 100
+ return (int)(volume * 100.0f);
}
class LLViewerVoiceAccountProvisionResponder :
@@ -1158,11 +1154,12 @@ LLVoiceClient::LLVoiceClient() :
mVoiceEnabled(false),
mWriteInProgress(false),
- mLipSyncEnabled(false),
- mAPIVersion("Unknown")
+ mLipSyncEnabled(false)
{
gVoiceClient = this;
+ mAPIVersion = LLTrans::getString("NotConnected");
+
#if LL_DARWIN || LL_LINUX || LL_SOLARIS
// HACK: THIS DOES NOT BELONG HERE
// When the vivox daemon dies, the next write attempt on our socket generates a SIGPIPE, which kills us.
@@ -4274,6 +4271,7 @@ void LLVoiceClient::mediaStreamUpdatedEvent(
{
// Send the voice chat invite to the GUI layer
// *TODO: Question: Should we correlate with the mute list here?
+ session->mIncoming = true;
session->mIMSessionID = LLIMMgr::computeSessionID(IM_SESSION_P2P_INVITE, session->mCallerID);
session->mVoiceInvitePending = true;
if(session->mName.empty())
@@ -6348,6 +6346,20 @@ LLVoiceClient::sessionState *LLVoiceClient::findSession(const LLUUID &participan
return result;
}
+bool LLVoiceClient::isSessionIncoming(const LLUUID &session_id)
+{
+ for(sessionIterator iter = sessionsBegin(); iter != sessionsEnd(); iter++)
+ {
+ sessionState *session = *iter;
+ if(session->mIMSessionID == session_id)
+ {
+ return session->mIncoming;
+ break;
+ }
+ }
+ return false;
+}
+
LLVoiceClient::sessionState *LLVoiceClient::addSession(const std::string &uri, const std::string &handle)
{
sessionState *result = NULL;
@@ -7051,7 +7063,7 @@ class LLViewerRequiredVoiceVersion : public LLHTTPNode
if (!sAlertedUser)
{
//sAlertedUser = TRUE;
- LLNotifications::instance().add("VoiceVersionMismatch");
+ LLNotificationsUtil::add("VoiceVersionMismatch");
gSavedSettings.setBOOL("EnableVoiceChat", FALSE); // toggles listener
}
}