Revert "[STORM-2109] Apply fixes from Brett Joseph of Vivox", this doesn't seem ready yet.
This reverts commit 0681b88cbc.
This commit is contained in:
@@ -420,8 +420,25 @@ LLFloaterIMPanel::~LLFloaterIMPanel()
|
|||||||
|
|
||||||
delete mSpeakers;
|
delete mSpeakers;
|
||||||
mSpeakers = NULL;
|
mSpeakers = NULL;
|
||||||
|
|
||||||
|
// End the text IM session if necessary
|
||||||
|
if(LLVoiceClient::instanceExists() && mOtherParticipantUUID.notNull())
|
||||||
|
{
|
||||||
|
switch(mDialog)
|
||||||
|
{
|
||||||
|
case IM_NOTHING_SPECIAL:
|
||||||
|
case IM_SESSION_P2P_INVITE:
|
||||||
|
LLVoiceClient::getInstance()->endUserIMSession(mOtherParticipantUUID);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Appease the compiler
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//kicks you out of the voice channel if it is currently active
|
//kicks you out of the voice channel if it is currently active
|
||||||
|
|
||||||
// HAVE to do this here -- if it happens in the LLVoiceChannel destructor it will call the wrong version (since the object's partially deconstructed at that point).
|
// HAVE to do this here -- if it happens in the LLVoiceChannel destructor it will call the wrong version (since the object's partially deconstructed at that point).
|
||||||
mVoiceChannel->deactivate();
|
mVoiceChannel->deactivate();
|
||||||
|
|
||||||
@@ -1061,12 +1078,20 @@ void deliver_message(const std::string& utf8_text,
|
|||||||
EInstantMessage dialog)
|
EInstantMessage dialog)
|
||||||
{
|
{
|
||||||
std::string name;
|
std::string name;
|
||||||
|
bool sent = false;
|
||||||
gAgent.buildFullname(name);
|
gAgent.buildFullname(name);
|
||||||
|
|
||||||
const LLRelationship* info = LLAvatarTracker::instance().getBuddyInfo(other_participant_id);
|
const LLRelationship* info = LLAvatarTracker::instance().getBuddyInfo(other_participant_id);
|
||||||
|
|
||||||
U8 offline = (!info || info->isOnline()) ? IM_ONLINE : IM_OFFLINE;
|
U8 offline = (!info || info->isOnline()) ? IM_ONLINE : IM_OFFLINE;
|
||||||
|
|
||||||
|
if((offline == IM_OFFLINE) && (LLVoiceClient::getInstance()->isOnlineSIP(other_participant_id)))
|
||||||
|
{
|
||||||
|
// User is online through the OOW connector, but not with a regular viewer. Try to send the message via SLVoice.
|
||||||
|
sent = LLVoiceClient::getInstance()->sendTextMessage(other_participant_id, utf8_text);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!sent)
|
||||||
{
|
{
|
||||||
// Send message normally.
|
// Send message normally.
|
||||||
|
|
||||||
|
|||||||
@@ -354,7 +354,6 @@ BOOL LLVoiceClient::isSessionCallBackPossible(const LLUUID& id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
BOOL LLVoiceClient::sendTextMessage(const LLUUID& participant_id, const std::string& message)
|
BOOL LLVoiceClient::sendTextMessage(const LLUUID& participant_id, const std::string& message)
|
||||||
{
|
{
|
||||||
if (mVoiceModule)
|
if (mVoiceModule)
|
||||||
@@ -374,7 +373,6 @@ void LLVoiceClient::endUserIMSession(const LLUUID& participant_id)
|
|||||||
mVoiceModule->endUserIMSession(participant_id);
|
mVoiceModule->endUserIMSession(participant_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
//----------------------------------------------
|
//----------------------------------------------
|
||||||
// channels
|
// channels
|
||||||
|
|||||||
@@ -212,8 +212,8 @@ public:
|
|||||||
//@{
|
//@{
|
||||||
virtual BOOL isSessionTextIMPossible(const LLUUID& id)=0;
|
virtual BOOL isSessionTextIMPossible(const LLUUID& id)=0;
|
||||||
virtual BOOL isSessionCallBackPossible(const LLUUID& id)=0;
|
virtual BOOL isSessionCallBackPossible(const LLUUID& id)=0;
|
||||||
//virtual BOOL sendTextMessage(const LLUUID& participant_id, const std::string& message)=0;
|
virtual BOOL sendTextMessage(const LLUUID& participant_id, const std::string& message)=0;
|
||||||
//virtual void endUserIMSession(const LLUUID &uuid)=0;
|
virtual void endUserIMSession(const LLUUID &uuid)=0;
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
// authorize the user
|
// authorize the user
|
||||||
@@ -428,8 +428,8 @@ public:
|
|||||||
//@{
|
//@{
|
||||||
BOOL isSessionTextIMPossible(const LLUUID& id);
|
BOOL isSessionTextIMPossible(const LLUUID& id);
|
||||||
BOOL isSessionCallBackPossible(const LLUUID& id);
|
BOOL isSessionCallBackPossible(const LLUUID& id);
|
||||||
//BOOL sendTextMessage(const LLUUID& participant_id, const std::string& message);
|
BOOL sendTextMessage(const LLUUID& participant_id, const std::string& message);
|
||||||
//void endUserIMSession(const LLUUID &uuid);
|
void endUserIMSession(const LLUUID &uuid);
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -80,10 +80,10 @@ const int MAX_LOGIN_RETRIES = 12;
|
|||||||
|
|
||||||
// Defines the maximum number of times(in a row) "stateJoiningSession" case for spatial channel is reached in stateMachine()
|
// Defines the maximum number of times(in a row) "stateJoiningSession" case for spatial channel is reached in stateMachine()
|
||||||
// which is treated as normal. If this number is exceeded we suspect there is a problem with connection
|
// which is treated as normal. If this number is exceeded we suspect there is a problem with connection
|
||||||
// to voice server (EXT-4313). When voice works correctly, there is from 1 to 15 times. 1500 was chosen
|
// to voice server (EXT-4313). When voice works correctly, there is from 1 to 15 times. 50 was chosen
|
||||||
// to make sure we don't make mistake when slight connection problems happen- situation when connection to server is
|
// to make sure we don't make mistake when slight connection problems happen- situation when connection to server is
|
||||||
// blocked is VERY rare and it's better to sacrifice response time in this situation for the sake of stability.
|
// blocked is VERY rare and it's better to sacrifice response time in this situation for the sake of stability.
|
||||||
const int MAX_NORMAL_JOINING_SPATIAL_NUM = 1500;
|
const int MAX_NORMAL_JOINING_SPATIAL_NUM = 50;
|
||||||
|
|
||||||
// How often to check for expired voice fonts in seconds
|
// How often to check for expired voice fonts in seconds
|
||||||
const F32 VOICE_FONT_EXPIRY_INTERVAL = 10.f;
|
const F32 VOICE_FONT_EXPIRY_INTERVAL = 10.f;
|
||||||
@@ -478,21 +478,17 @@ bool LLVivoxVoiceClient::writeString(const std::string &str)
|
|||||||
(const char*)str.data(),
|
(const char*)str.data(),
|
||||||
&written);
|
&written);
|
||||||
|
|
||||||
if (err == 0 && written == size)
|
if(err == 0)
|
||||||
{
|
{
|
||||||
// Success.
|
// Success.
|
||||||
result = true;
|
result = true;
|
||||||
}
|
}
|
||||||
else if (err == 0 && written != size)
|
// TODO: handle partial writes (written is number of bytes written)
|
||||||
{
|
// Need to set socket to non-blocking before this will work.
|
||||||
// Did a short write, log it for now
|
// else if(APR_STATUS_IS_EAGAIN(err))
|
||||||
LL_WARNS("Voice") << ") short write on socket sending data to vivox daemon." << "Sent " << written << "bytes instead of " << size << LL_ENDL;
|
// {
|
||||||
}
|
// //
|
||||||
else if (APR_STATUS_IS_EAGAIN(err))
|
// }
|
||||||
{
|
|
||||||
char buf[MAX_STRING];
|
|
||||||
LL_WARNS("Voice") << "EAGAIN error " << err << " (" << apr_strerror(err, buf, MAX_STRING) << ") sending data to vivox daemon." << LL_ENDL;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Assume any socket error means something bad. For now, just close the socket.
|
// Assume any socket error means something bad. For now, just close the socket.
|
||||||
@@ -1130,8 +1126,8 @@ void LLVivoxVoiceClient::stateMachine()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// loop mic back to render device.
|
// duration parameter is currently unused, per Mike S.
|
||||||
tuningCaptureStartSendMessage(1); // 1-loop, zero, don't loop
|
tuningCaptureStartSendMessage(10000);
|
||||||
|
|
||||||
setState(stateMicTuningRunning);
|
setState(stateMicTuningRunning);
|
||||||
}
|
}
|
||||||
@@ -1568,8 +1564,6 @@ void LLVivoxVoiceClient::stateMachine()
|
|||||||
//MARK: stateSessionJoined
|
//MARK: stateSessionJoined
|
||||||
case stateSessionJoined: // session handle received
|
case stateSessionJoined: // session handle received
|
||||||
|
|
||||||
if (mSpatialJoiningNum > 100)
|
|
||||||
llwarns << "There seems to be problem with connecting to a voice channel. Frames to join were " << mSpatialJoiningNum << LL_ENDL;
|
|
||||||
|
|
||||||
mSpatialJoiningNum = 0;
|
mSpatialJoiningNum = 0;
|
||||||
// It appears that I need to wait for BOTH the SessionGroup.AddSession response and the SessionStateChangeEvent with state 4
|
// It appears that I need to wait for BOTH the SessionGroup.AddSession response and the SessionStateChangeEvent with state 4
|
||||||
@@ -1668,7 +1662,7 @@ void LLVivoxVoiceClient::stateMachine()
|
|||||||
//MARK: stateLeavingSession
|
//MARK: stateLeavingSession
|
||||||
case stateLeavingSession: // waiting for terminate session response
|
case stateLeavingSession: // waiting for terminate session response
|
||||||
// The handler for the Session.Terminate response will transition from here to stateSessionTerminated.
|
// The handler for the Session.Terminate response will transition from here to stateSessionTerminated.
|
||||||
// Fall through and clean up session before getting terminated event.
|
break;
|
||||||
|
|
||||||
//MARK: stateSessionTerminated
|
//MARK: stateSessionTerminated
|
||||||
case stateSessionTerminated:
|
case stateSessionTerminated:
|
||||||
@@ -1678,7 +1672,6 @@ void LLVivoxVoiceClient::stateMachine()
|
|||||||
|
|
||||||
if(mAudioSession)
|
if(mAudioSession)
|
||||||
{
|
{
|
||||||
leaveAudioSession();
|
|
||||||
sessionState *oldSession = mAudioSession;
|
sessionState *oldSession = mAudioSession;
|
||||||
|
|
||||||
mAudioSession = NULL;
|
mAudioSession = NULL;
|
||||||
@@ -1838,7 +1831,6 @@ void LLVivoxVoiceClient::loginSendMessage()
|
|||||||
<< "<AccountPassword>" << mAccountPassword << "</AccountPassword>"
|
<< "<AccountPassword>" << mAccountPassword << "</AccountPassword>"
|
||||||
<< "<AudioSessionAnswerMode>VerifyAnswer</AudioSessionAnswerMode>"
|
<< "<AudioSessionAnswerMode>VerifyAnswer</AudioSessionAnswerMode>"
|
||||||
<< "<EnableBuddiesAndPresence>false</EnableBuddiesAndPresence>"
|
<< "<EnableBuddiesAndPresence>false</EnableBuddiesAndPresence>"
|
||||||
<< "<EnablePresencePersistence>0</EnablePresencePersistence>"
|
|
||||||
<< "<BuddyManagementMode>Application</BuddyManagementMode>"
|
<< "<BuddyManagementMode>Application</BuddyManagementMode>"
|
||||||
<< "<ParticipantPropertyFrequency>5</ParticipantPropertyFrequency>"
|
<< "<ParticipantPropertyFrequency>5</ParticipantPropertyFrequency>"
|
||||||
<< (autoPostCrashDumps?"<AutopostCrashDumps>true</AutopostCrashDumps>":"")
|
<< (autoPostCrashDumps?"<AutopostCrashDumps>true</AutopostCrashDumps>":"")
|
||||||
@@ -2039,7 +2031,6 @@ void LLVivoxVoiceClient::leaveAudioSession()
|
|||||||
case stateJoiningSession:
|
case stateJoiningSession:
|
||||||
case stateSessionJoined:
|
case stateSessionJoined:
|
||||||
case stateRunning:
|
case stateRunning:
|
||||||
case stateSessionTerminated:
|
|
||||||
if(!mAudioSession->mHandle.empty())
|
if(!mAudioSession->mHandle.empty())
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -2070,12 +2061,10 @@ void LLVivoxVoiceClient::leaveAudioSession()
|
|||||||
case stateJoinSessionFailed:
|
case stateJoinSessionFailed:
|
||||||
case stateJoinSessionFailedWaiting:
|
case stateJoinSessionFailedWaiting:
|
||||||
setState(stateSessionTerminated);
|
setState(stateSessionTerminated);
|
||||||
break;
|
|
||||||
case stateLeavingSession: // managed to get back to this case statement before the media gets disconnected.
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
LL_WARNS("Voice") << "called from unknown state " << getState() << LL_ENDL;
|
LL_WARNS("Voice") << "called from unknown state" << LL_ENDL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2128,7 +2117,6 @@ void LLVivoxVoiceClient::sessionMediaDisconnectSendMessage(sessionState *session
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* obsolete
|
|
||||||
void LLVivoxVoiceClient::sessionTextDisconnectSendMessage(sessionState *session)
|
void LLVivoxVoiceClient::sessionTextDisconnectSendMessage(sessionState *session)
|
||||||
{
|
{
|
||||||
std::ostringstream stream;
|
std::ostringstream stream;
|
||||||
@@ -2142,7 +2130,6 @@ void LLVivoxVoiceClient::sessionTextDisconnectSendMessage(sessionState *session)
|
|||||||
|
|
||||||
writeString(stream.str());
|
writeString(stream.str());
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
void LLVivoxVoiceClient::getCaptureDevicesSendMessage()
|
void LLVivoxVoiceClient::getCaptureDevicesSendMessage()
|
||||||
{
|
{
|
||||||
@@ -2294,15 +2281,14 @@ void LLVivoxVoiceClient::tuningRenderStopSendMessage()
|
|||||||
writeString(stream.str());
|
writeString(stream.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLVivoxVoiceClient::tuningCaptureStartSendMessage(int loop)
|
void LLVivoxVoiceClient::tuningCaptureStartSendMessage(int duration)
|
||||||
{
|
{
|
||||||
LL_DEBUGS("Voice") << "sending CaptureAudioStart" << LL_ENDL;
|
LL_DEBUGS("Voice") << "sending CaptureAudioStart" << LL_ENDL;
|
||||||
|
|
||||||
std::ostringstream stream;
|
std::ostringstream stream;
|
||||||
stream
|
stream
|
||||||
<< "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.CaptureAudioStart.1\">"
|
<< "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.CaptureAudioStart.1\">"
|
||||||
<< "<Duration>-1</Duration>"
|
<< "<Duration>" << duration << "</Duration>"
|
||||||
<< "<LoopToRenderDevice>" << loop << "</LoopToRenderDevice>"
|
|
||||||
<< "</Request>\n\n\n";
|
<< "</Request>\n\n\n";
|
||||||
|
|
||||||
writeString(stream.str());
|
writeString(stream.str());
|
||||||
@@ -2516,8 +2502,6 @@ void LLVivoxVoiceClient::sendPositionalUpdate(void)
|
|||||||
{
|
{
|
||||||
std::ostringstream stream;
|
std::ostringstream stream;
|
||||||
|
|
||||||
if (getState() != stateRunning) return; // don't send position updates if we are transitioning between out of running.
|
|
||||||
|
|
||||||
if(mSpatialCoordsDirty)
|
if(mSpatialCoordsDirty)
|
||||||
{
|
{
|
||||||
LLVector3 l, u, a, vel;
|
LLVector3 l, u, a, vel;
|
||||||
@@ -2950,25 +2934,15 @@ void LLVivoxVoiceClient::sessionGroupAddSessionResponse(std::string &requestId,
|
|||||||
void LLVivoxVoiceClient::sessionConnectResponse(std::string &requestId, int statusCode, std::string &statusString)
|
void LLVivoxVoiceClient::sessionConnectResponse(std::string &requestId, int statusCode, std::string &statusString)
|
||||||
{
|
{
|
||||||
sessionState *session = findSession(requestId);
|
sessionState *session = findSession(requestId);
|
||||||
// 1026 is session already has media, somehow mediaconnect was called twice on the same session.
|
if(statusCode != 0)
|
||||||
// set the session info to reflect that the user is already connected.
|
|
||||||
if (statusCode == 1026)
|
|
||||||
{
|
|
||||||
session->mVoiceEnabled = true;
|
|
||||||
session->mMediaConnectInProgress = false;
|
|
||||||
session->mMediaStreamState = streamStateConnected;
|
|
||||||
//session->mTextStreamState = streamStateConnected;
|
|
||||||
session->mErrorStatusCode = 0;
|
|
||||||
}
|
|
||||||
else if (statusCode != 0)
|
|
||||||
{
|
{
|
||||||
LL_WARNS("Voice") << "Session.Connect response failure (" << statusCode << "): " << statusString << LL_ENDL;
|
LL_WARNS("Voice") << "Session.Connect response failure (" << statusCode << "): " << statusString << LL_ENDL;
|
||||||
if (session)
|
if(session)
|
||||||
{
|
{
|
||||||
session->mMediaConnectInProgress = false;
|
session->mMediaConnectInProgress = false;
|
||||||
session->mErrorStatusCode = statusCode;
|
session->mErrorStatusCode = statusCode;
|
||||||
session->mErrorStatusString = statusString;
|
session->mErrorStatusString = statusString;
|
||||||
if (session == mAudioSession)
|
if(session == mAudioSession)
|
||||||
setState(stateJoinSessionFailed);
|
setState(stateJoinSessionFailed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3164,7 +3138,7 @@ void LLVivoxVoiceClient::sessionRemovedEvent(
|
|||||||
|
|
||||||
// Reset the media state (we now have no info)
|
// Reset the media state (we now have no info)
|
||||||
session->mMediaStreamState = streamStateUnknown;
|
session->mMediaStreamState = streamStateUnknown;
|
||||||
//session->mTextStreamState = streamStateUnknown;
|
session->mTextStreamState = streamStateUnknown;
|
||||||
|
|
||||||
// Conditionally delete the session
|
// Conditionally delete the session
|
||||||
reapSession(session);
|
reapSession(session);
|
||||||
@@ -3375,9 +3349,8 @@ void LLVivoxVoiceClient::mediaStreamUpdatedEvent(
|
|||||||
|
|
||||||
switch(state)
|
switch(state)
|
||||||
{
|
{
|
||||||
case streamStateDisconnecting:
|
|
||||||
case streamStateIdle:
|
case streamStateIdle:
|
||||||
// Standard "left audio session", Vivox state 'disconnected'
|
// Standard "left audio session"
|
||||||
session->mVoiceEnabled = false;
|
session->mVoiceEnabled = false;
|
||||||
session->mMediaConnectInProgress = false;
|
session->mMediaConnectInProgress = false;
|
||||||
leftAudioSession(session);
|
leftAudioSession(session);
|
||||||
@@ -3387,7 +3360,6 @@ void LLVivoxVoiceClient::mediaStreamUpdatedEvent(
|
|||||||
session->mVoiceEnabled = true;
|
session->mVoiceEnabled = true;
|
||||||
session->mMediaConnectInProgress = false;
|
session->mMediaConnectInProgress = false;
|
||||||
joinedAudioSession(session);
|
joinedAudioSession(session);
|
||||||
case streamStateConnecting: // do nothing, but prevents a warning getting into the logs.
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case streamStateRinging:
|
case streamStateRinging:
|
||||||
@@ -3422,7 +3394,6 @@ void LLVivoxVoiceClient::mediaStreamUpdatedEvent(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Obsolete
|
|
||||||
void LLVivoxVoiceClient::textStreamUpdatedEvent(
|
void LLVivoxVoiceClient::textStreamUpdatedEvent(
|
||||||
std::string &sessionHandle,
|
std::string &sessionHandle,
|
||||||
std::string &sessionGroupHandle,
|
std::string &sessionGroupHandle,
|
||||||
@@ -3469,7 +3440,6 @@ void LLVivoxVoiceClient::textStreamUpdatedEvent(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
obsolete */
|
|
||||||
|
|
||||||
void LLVivoxVoiceClient::participantAddedEvent(
|
void LLVivoxVoiceClient::participantAddedEvent(
|
||||||
std::string &sessionHandle,
|
std::string &sessionHandle,
|
||||||
@@ -4290,7 +4260,7 @@ LLVivoxVoiceClient::sessionState* LLVivoxVoiceClient::startUserIMSession(const L
|
|||||||
if(session->mHandle.empty())
|
if(session->mHandle.empty())
|
||||||
{
|
{
|
||||||
// Session isn't active -- start it up.
|
// Session isn't active -- start it up.
|
||||||
sessionCreateSendMessage(session, false, false);
|
sessionCreateSendMessage(session, false, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -4301,7 +4271,6 @@ LLVivoxVoiceClient::sessionState* LLVivoxVoiceClient::startUserIMSession(const L
|
|||||||
return session;
|
return session;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* obsolete
|
|
||||||
BOOL LLVivoxVoiceClient::sendTextMessage(const LLUUID& participant_id, const std::string& message)
|
BOOL LLVivoxVoiceClient::sendTextMessage(const LLUUID& participant_id, const std::string& message)
|
||||||
{
|
{
|
||||||
bool result = false;
|
bool result = false;
|
||||||
@@ -4326,8 +4295,7 @@ BOOL LLVivoxVoiceClient::sendTextMessage(const LLUUID& participant_id, const std
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
/* obsolete
|
|
||||||
void LLVivoxVoiceClient::sendQueuedTextMessages(sessionState *session)
|
void LLVivoxVoiceClient::sendQueuedTextMessages(sessionState *session)
|
||||||
{
|
{
|
||||||
if(session->mTextStreamState == 1)
|
if(session->mTextStreamState == 1)
|
||||||
@@ -4356,9 +4324,7 @@ void LLVivoxVoiceClient::sendQueuedTextMessages(sessionState *session)
|
|||||||
// Session isn't connected yet, defer until later.
|
// Session isn't connected yet, defer until later.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
obsolete */
|
|
||||||
|
|
||||||
/*
|
|
||||||
void LLVivoxVoiceClient::endUserIMSession(const LLUUID &uuid)
|
void LLVivoxVoiceClient::endUserIMSession(const LLUUID &uuid)
|
||||||
{
|
{
|
||||||
// Figure out if a session with the user exists
|
// Figure out if a session with the user exists
|
||||||
@@ -4368,7 +4334,7 @@ void LLVivoxVoiceClient::endUserIMSession(const LLUUID &uuid)
|
|||||||
// found the session
|
// found the session
|
||||||
if(!session->mHandle.empty())
|
if(!session->mHandle.empty())
|
||||||
{
|
{
|
||||||
// sessionTextDisconnectSendMessage(session); // a SLim leftover, not used any more.
|
sessionTextDisconnectSendMessage(session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -4376,7 +4342,6 @@ void LLVivoxVoiceClient::endUserIMSession(const LLUUID &uuid)
|
|||||||
LL_DEBUGS("Voice") << "Session not found for participant ID " << uuid << LL_ENDL;
|
LL_DEBUGS("Voice") << "Session not found for participant ID " << uuid << LL_ENDL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
bool LLVivoxVoiceClient::isValidChannel(std::string &sessionHandle)
|
bool LLVivoxVoiceClient::isValidChannel(std::string &sessionHandle)
|
||||||
{
|
{
|
||||||
return(findSession(sessionHandle) != NULL);
|
return(findSession(sessionHandle) != NULL);
|
||||||
@@ -4720,8 +4685,6 @@ void LLVivoxVoiceClient::enforceTether(void)
|
|||||||
|
|
||||||
void LLVivoxVoiceClient::updatePosition(void)
|
void LLVivoxVoiceClient::updatePosition(void)
|
||||||
{
|
{
|
||||||
// Throttle the position updates to one every 1/10 of a second if we are in an audio session at all
|
|
||||||
if (mAudioSession == NULL) return;
|
|
||||||
|
|
||||||
LLViewerRegion *region = gAgent.getRegion();
|
LLViewerRegion *region = gAgent.getRegion();
|
||||||
if(region && isAgentAvatarValid())
|
if(region && isAgentAvatarValid())
|
||||||
@@ -6837,10 +6800,6 @@ void LLVivoxProtocolParser::processResponse(std::string tag)
|
|||||||
{
|
{
|
||||||
LLVivoxVoiceClient::getInstance()->sessionRemovedEvent(sessionHandle, sessionGroupHandle);
|
LLVivoxVoiceClient::getInstance()->sessionRemovedEvent(sessionHandle, sessionGroupHandle);
|
||||||
}
|
}
|
||||||
else if (!stricmp(eventTypeCstr, "SessionGroupUpdatedEvent"))
|
|
||||||
{
|
|
||||||
//TODO, we don't process this event, but we should not WARN that we have received it.
|
|
||||||
}
|
|
||||||
else if (!stricmp(eventTypeCstr, "SessionGroupAddedEvent"))
|
else if (!stricmp(eventTypeCstr, "SessionGroupAddedEvent"))
|
||||||
{
|
{
|
||||||
LLVivoxVoiceClient::getInstance()->sessionGroupAddedEvent(sessionGroupHandle);
|
LLVivoxVoiceClient::getInstance()->sessionGroupAddedEvent(sessionGroupHandle);
|
||||||
@@ -6869,11 +6828,19 @@ void LLVivoxProtocolParser::processResponse(std::string tag)
|
|||||||
*/
|
*/
|
||||||
LLVivoxVoiceClient::getInstance()->mediaCompletionEvent(sessionGroupHandle, mediaCompletionType);
|
LLVivoxVoiceClient::getInstance()->mediaCompletionEvent(sessionGroupHandle, mediaCompletionType);
|
||||||
}
|
}
|
||||||
/* obsolete, let else statement complain if a text message arrives
|
|
||||||
else if (!stricmp(eventTypeCstr, "TextStreamUpdatedEvent"))
|
else if (!stricmp(eventTypeCstr, "TextStreamUpdatedEvent"))
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
<Event type="TextStreamUpdatedEvent">
|
||||||
|
<SessionGroupHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==_sg1</SessionGroupHandle>
|
||||||
|
<SessionHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==1</SessionHandle>
|
||||||
|
<Enabled>true</Enabled>
|
||||||
|
<State>1</State>
|
||||||
|
<Incoming>true</Incoming>
|
||||||
|
</Event>
|
||||||
|
*/
|
||||||
LLVivoxVoiceClient::getInstance()->textStreamUpdatedEvent(sessionHandle, sessionGroupHandle, enabled, state, incoming);
|
LLVivoxVoiceClient::getInstance()->textStreamUpdatedEvent(sessionHandle, sessionGroupHandle, enabled, state, incoming);
|
||||||
} */
|
}
|
||||||
else if (!stricmp(eventTypeCstr, "ParticipantAddedEvent"))
|
else if (!stricmp(eventTypeCstr, "ParticipantAddedEvent"))
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -92,10 +92,10 @@ public:
|
|||||||
virtual bool isParticipant(const LLUUID& speaker_id);
|
virtual bool isParticipant(const LLUUID& speaker_id);
|
||||||
|
|
||||||
// Send a text message to the specified user, initiating the session if necessary.
|
// Send a text message to the specified user, initiating the session if necessary.
|
||||||
// virtual BOOL sendTextMessage(const LLUUID& participant_id, const std::string& message) const { return false; }
|
virtual BOOL sendTextMessage(const LLUUID& participant_id, const std::string& message);
|
||||||
|
|
||||||
// close any existing text IM session with the specified user
|
// close any existing text IM session with the specified user
|
||||||
//virtual void endUserIMSession(const LLUUID &uuid);
|
virtual void endUserIMSession(const LLUUID &uuid);
|
||||||
|
|
||||||
// Returns true if calling back the session URI after the session has closed is possible.
|
// Returns true if calling back the session URI after the session has closed is possible.
|
||||||
// Currently this will be false only for PSTN P2P calls.
|
// Currently this will be false only for PSTN P2P calls.
|
||||||
@@ -242,8 +242,6 @@ protected:
|
|||||||
streamStateIdle = 1,
|
streamStateIdle = 1,
|
||||||
streamStateConnected = 2,
|
streamStateConnected = 2,
|
||||||
streamStateRinging = 3,
|
streamStateRinging = 3,
|
||||||
streamStateConnecting = 6, // same as Vivox session_media_connecting enum
|
|
||||||
streamStateDisconnecting = 7, //Same as Vivox session_media_disconnecting enum
|
|
||||||
};
|
};
|
||||||
struct participantState
|
struct participantState
|
||||||
{
|
{
|
||||||
@@ -434,7 +432,7 @@ protected:
|
|||||||
void tuningRenderStartSendMessage(const std::string& name, bool loop);
|
void tuningRenderStartSendMessage(const std::string& name, bool loop);
|
||||||
void tuningRenderStopSendMessage();
|
void tuningRenderStopSendMessage();
|
||||||
|
|
||||||
void tuningCaptureStartSendMessage(int loop);
|
void tuningCaptureStartSendMessage(int duration);
|
||||||
void tuningCaptureStopSendMessage();
|
void tuningCaptureStopSendMessage();
|
||||||
|
|
||||||
//----------------------------------
|
//----------------------------------
|
||||||
@@ -465,7 +463,7 @@ protected:
|
|||||||
void accountLoginStateChangeEvent(std::string &accountHandle, int statusCode, std::string &statusString, int state);
|
void accountLoginStateChangeEvent(std::string &accountHandle, int statusCode, std::string &statusString, int state);
|
||||||
void mediaCompletionEvent(std::string &sessionGroupHandle, std::string &mediaCompletionType);
|
void mediaCompletionEvent(std::string &sessionGroupHandle, std::string &mediaCompletionType);
|
||||||
void mediaStreamUpdatedEvent(std::string &sessionHandle, std::string &sessionGroupHandle, int statusCode, std::string &statusString, int state, bool incoming);
|
void mediaStreamUpdatedEvent(std::string &sessionHandle, std::string &sessionGroupHandle, int statusCode, std::string &statusString, int state, bool incoming);
|
||||||
// obsolete void textStreamUpdatedEvent(std::string &sessionHandle, std::string &sessionGroupHandle, bool enabled, int state, bool incoming);
|
void textStreamUpdatedEvent(std::string &sessionHandle, std::string &sessionGroupHandle, bool enabled, int state, bool incoming);
|
||||||
void sessionAddedEvent(std::string &uriString, std::string &alias, std::string &sessionHandle, std::string &sessionGroupHandle, bool isChannel, bool incoming, std::string &nameString, std::string &applicationString);
|
void sessionAddedEvent(std::string &uriString, std::string &alias, std::string &sessionHandle, std::string &sessionGroupHandle, bool isChannel, bool incoming, std::string &nameString, std::string &applicationString);
|
||||||
void sessionGroupAddedEvent(std::string &sessionGroupHandle);
|
void sessionGroupAddedEvent(std::string &sessionGroupHandle);
|
||||||
void sessionRemovedEvent(std::string &sessionHandle, std::string &sessionGroupHandle);
|
void sessionRemovedEvent(std::string &sessionHandle, std::string &sessionGroupHandle);
|
||||||
@@ -581,7 +579,7 @@ protected:
|
|||||||
void sessionTerminateSendMessage(sessionState *session);
|
void sessionTerminateSendMessage(sessionState *session);
|
||||||
void sessionGroupTerminateSendMessage(sessionState *session);
|
void sessionGroupTerminateSendMessage(sessionState *session);
|
||||||
void sessionMediaDisconnectSendMessage(sessionState *session);
|
void sessionMediaDisconnectSendMessage(sessionState *session);
|
||||||
// void sessionTextDisconnectSendMessage(sessionState *session);
|
void sessionTextDisconnectSendMessage(sessionState *session);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -743,7 +741,7 @@ private:
|
|||||||
// start a text IM session with the specified user
|
// start a text IM session with the specified user
|
||||||
// This will be asynchronous, the session may be established at a future time.
|
// This will be asynchronous, the session may be established at a future time.
|
||||||
sessionState* startUserIMSession(const LLUUID& uuid);
|
sessionState* startUserIMSession(const LLUUID& uuid);
|
||||||
// obsolete void sendQueuedTextMessages(sessionState *session);
|
void sendQueuedTextMessages(sessionState *session);
|
||||||
|
|
||||||
void enforceTether(void);
|
void enforceTether(void);
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
<volume_slider control_name="AudioLevelMic" bottom_delta="-12" left_delta="-6" follows="left|top" height="17"
|
<volume_slider control_name="AudioLevelMic" bottom_delta="-12" left_delta="-6" follows="left|top" height="17"
|
||||||
increment="0.05" initial_val="1.0" max_val="2" min_val="0"
|
increment="0.05" initial_val="1.0" max_val="2" min_val="0"
|
||||||
mouse_opaque="true" name="mic_volume_slider"
|
mouse_opaque="true" name="mic_volume_slider"
|
||||||
tool_tip="Change the mic level using this slider" width="120" />
|
tool_tip="Change the volume using this slider" width="120" />
|
||||||
<text bottom_delta="-4" follows="left|top" height="20" left_delta="120"
|
<text bottom_delta="-4" follows="left|top" height="20" left_delta="120"
|
||||||
name="wait_text" width="200">
|
name="wait_text" width="200">
|
||||||
Please wait
|
Please wait
|
||||||
|
|||||||
Reference in New Issue
Block a user