diff options
| -rwxr-xr-x | etc/message.xml | 19 | ||||
| -rw-r--r-- | indra/llmath/llquaternion.h | 2 | ||||
| -rw-r--r-- | indra/newview/llimview.cpp | 113 | ||||
| -rw-r--r-- | indra/newview/llimview.h | 8 | ||||
| -rw-r--r-- | indra/newview/llpanelvoicedevicesettings.cpp | 76 | ||||
| -rw-r--r-- | indra/newview/llvieweraudio.cpp | 4 | ||||
| -rwxr-xr-x | indra/newview/llviewerregion.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llvoavatar.h | 6 | ||||
| -rw-r--r-- | indra/newview/llvoicechannel.cpp | 262 | ||||
| -rw-r--r-- | indra/newview/llvoicechannel.h | 50 | ||||
| -rw-r--r-- | indra/newview/llvoiceclient.cpp | 169 | ||||
| -rw-r--r-- | indra/newview/llvoiceclient.h | 16 | 
13 files changed, 363 insertions, 366 deletions
| diff --git a/etc/message.xml b/etc/message.xml index 7d524b5eb8..dee3fd72dd 100755 --- a/etc/message.xml +++ b/etc/message.xml @@ -506,14 +506,13 @@  					<boolean>false</boolean>  				</map> -              <key>VoiceSignalingRequest</key> -              <map> -                  <key>flavor</key> -                  <string>llsd</string> -                  <key>trusted-sender</key> -                  <boolean>false</boolean> -              </map> - +				<key>VoiceSignalingRequest</key> +				<map> +					<key>flavor</key> +					<string>llsd</string> +					<key>trusted-sender</key> +					<boolean>false</boolean> +				</map>  				<!-- Server to client -->  				<key>RequiredVoiceVersion</key>  				<map> @@ -697,8 +696,8 @@  			<key>ProvisionVoiceAccountRequest</key>  			<boolean>false</boolean> -            <key>VoiceSignalingRequest</key> -            <boolean>false</boolean> +			<key>VoiceSignalingRequest</key> +			<boolean>false</boolean>  			<key>RemoteParcelRequest</key>  			<boolean>false</boolean> diff --git a/indra/llmath/llquaternion.h b/indra/llmath/llquaternion.h index 609d75a095..aaa868352a 100644 --- a/indra/llmath/llquaternion.h +++ b/indra/llmath/llquaternion.h @@ -132,7 +132,7 @@ public:  	friend LLQuaternion operator~(const LLQuaternion &a);							// Returns a* (Conjugate of a)  	bool operator==(const LLQuaternion &b) const;			// Returns a == b  	bool operator!=(const LLQuaternion &b) const;			// Returns a != b -    F64 operator[](int idx) const { return mQ[idx]; } +	F64 operator[](int idx) const { return mQ[idx]; }  	friend const LLQuaternion& operator*=(LLQuaternion &a, const LLQuaternion &b);	// Returns a * b diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index b2769e9bab..921e757b58 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -722,20 +722,20 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id,  	if (IM_NOTHING_SPECIAL == mType || IM_SESSION_P2P_INVITE == mType)      { -        LLVoiceP2POutgoingCallInterface *outgoingInterface = -            LLVoiceClient::getInstance()->getOutgoingCallInterface(voiceChannelInfo); +		LLVoiceP2POutgoingCallInterface *outgoingInterface = +			LLVoiceClient::getInstance()->getOutgoingCallInterface(voiceChannelInfo); -        if (outgoingInterface) -        { -            // only use LLVoiceChannelP2P if the provider can handle the special P2P interface, -            // which uses the voice server to relay calls and invites.  Otherwise, -            // we use the group voice provider. -            mVoiceChannel = new LLVoiceChannelP2P(session_id, name, other_participant_id, outgoingInterface); -        } +		if (outgoingInterface) +		{ +			// only use LLVoiceChannelP2P if the provider can handle the special P2P interface, +			// which uses the voice server to relay calls and invites.  Otherwise, +			// we use the group voice provider. +			mVoiceChannel = new LLVoiceChannelP2P(session_id, name, other_participant_id, outgoingInterface); +		}  		else  		{ -            p2pAsAdhocCall = true; -            mVoiceChannel  = new LLVoiceChannelGroup(session_id, name, true); +			p2pAsAdhocCall = true; +			mVoiceChannel  = new LLVoiceChannelGroup(session_id, name, true);  		}  	}  	else @@ -744,17 +744,17 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id,  		if (gAgent.isInGroup(mSessionID))  		{  			mSessionType = GROUP_SESSION; -            mVoiceChannel = new LLVoiceChannelGroup(session_id, name, false); +			mVoiceChannel = new LLVoiceChannelGroup(session_id, name, false);  		}          else  		{  			mSessionType = ADHOC_SESSION; -            mVoiceChannel = new LLVoiceChannelGroup(session_id, name, false); +			mVoiceChannel = new LLVoiceChannelGroup(session_id, name, false);  		}  	}  	mVoiceChannelStateChangeConnection = mVoiceChannel->setStateChangedCallback(boost::bind(&LLIMSession::onVoiceChannelStateChanged, this, _1, _2, _3)); -    mVoiceChannel->setChannelInfo(voiceChannelInfo); +	mVoiceChannel->setChannelInfo(voiceChannelInfo);  	mSpeakers = new LLIMSpeakerMgr(mVoiceChannel); @@ -2069,7 +2069,7 @@ bool LLIMModel::sendStartSession(  	const LLUUID& other_participant_id,  	const uuid_vec_t& ids,  	EInstantMessage dialog, -    bool p2p_as_adhoc_call) +	bool p2p_as_adhoc_call)  {  	if ( dialog == IM_SESSION_GROUP_START )  	{ @@ -2118,13 +2118,13 @@ bool LLIMModel::sendStartSession(  	}  	else if ((dialog == IM_SESSION_P2P_INVITE) || (dialog == IM_NOTHING_SPECIAL))  	{ -        LLViewerRegion *region = gAgent.getRegion(); -        if (region) -        { -            std::string url = region->getCapability("ChatSessionRequest"); -            LLCoros::instance().launch("startP2P", boost::bind(&startP2PCoro, url, temp_session_id, gAgent.getID(), other_participant_id)); -        } -        return true; +		LLViewerRegion *region = gAgent.getRegion(); +		if (region) +		{ +			std::string url = region->getCapability("ChatSessionRequest"); +			LLCoros::instance().launch("startP2P", boost::bind(&startP2PCoro, url, temp_session_id, gAgent.getID(), other_participant_id)); +		} +		return true;  	}  	return false;  } @@ -2368,11 +2368,12 @@ void LLCallDialogManager::onVoiceChannelStateChangedInt(const LLVoiceChannel::ES  			return;  		}  		break; -    case LLVoiceChannel::STATE_NO_CHANNEL_INFO : + +	case LLVoiceChannel::STATE_NO_CHANNEL_INFO :  		// This will happen in p2p calls using the adhoc  		// infrastructure, which marks the channel as no channel info  		// after the call is closed, which forces a dialogue. -        return; +		return;  	case LLVoiceChannel::STATE_HUNG_UP:  		// this state is coming before session is changed @@ -2716,28 +2717,28 @@ bool is_voice_call_type(const std::string &value)  }  LLIncomingCallDialog::LLIncomingCallDialog(const LLSD& payload) : -LLCallDialog(payload), -mAvatarNameCacheConnection() +	LLCallDialog(payload), +	mAvatarNameCacheConnection()  {  }  void LLIncomingCallDialog::onLifetimeExpired()  { -    LLVoiceP2PIncomingCallInterfacePtr call = LLVoiceClient::getInstance()->getIncomingCallInterface(mPayload["voice_session_info"]); -    if (call) -    { -        // restart notification's timer if call is still valid -        mLifetimeTimer.start(); -    } -    else -    { -        // close invitation if call is already not valid -        mLifetimeTimer.stop(); -        LLUUID session_id = mPayload["session_id"].asUUID(); -        gIMMgr->clearPendingAgentListUpdates(session_id); -        gIMMgr->clearPendingInvitation(session_id); -        closeFloater(); -    } +	LLVoiceP2PIncomingCallInterfacePtr call = LLVoiceClient::getInstance()->getIncomingCallInterface(mPayload["voice_session_info"]); +	if (call) +	{ +		// restart notification's timer if call is still valid +		mLifetimeTimer.start(); +	} +	else +	{ +		// close invitation if call is already not valid +		mLifetimeTimer.stop(); +		LLUUID session_id = mPayload["session_id"].asUUID(); +		gIMMgr->clearPendingAgentListUpdates(session_id); +		gIMMgr->clearPendingInvitation(session_id); +		closeFloater(); +	}  }  BOOL LLIncomingCallDialog::postBuild() @@ -2752,7 +2753,7 @@ BOOL LLIncomingCallDialog::postBuild()  	LLUUID session_id = mPayload["session_id"].asUUID();  	LLSD caller_id = mPayload["caller_id"]; -    std::string caller_name = mPayload["caller_name"].asString(); +	std::string caller_name = mPayload["caller_name"].asString();      if (session_id.isNull() && caller_id.asUUID().isNull())      { @@ -2903,7 +2904,7 @@ void LLIncomingCallDialog::processCallResponse(S32 response, const LLSD &payload  	std::string session_name = payload["session_name"].asString();  	if (session_name.empty())  	{ -        session_name = payload["caller_name"].asString(); +		session_name = payload["caller_name"].asString();  	}  	EInstantMessage type = (EInstantMessage)payload["type"].asInteger();  	LLIMMgr::EInvitationType inv_type = (LLIMMgr::EInvitationType)payload["inv_type"].asInteger(); @@ -3001,11 +3002,11 @@ void LLIncomingCallDialog::processCallResponse(S32 response, const LLSD &payload  	{  		if (type == IM_SESSION_P2P_INVITE)  		{ -            LLVoiceP2PIncomingCallInterfacePtr call = LLVoiceClient::getInstance()->getIncomingCallInterface(payload["voice_session_info"]); -            if (call) -            { -                call->declineInvite(); -            } +			LLVoiceP2PIncomingCallInterfacePtr call = LLVoiceClient::getInstance()->getIncomingCallInterface(payload["voice_session_info"]); +			if (call) +			{ +				call->declineInvite(); +			}  		}  		else  		{ @@ -3098,7 +3099,7 @@ void LLIMMgr::addMessage(  		{  			fixed_session_name = av_name.getDisplayName();  		} -        LLIMModel::getInstance()->newSession(new_session_id, fixed_session_name, dialog, other_participant_id, LLSD(), is_offline_msg); +		LLIMModel::getInstance()->newSession(new_session_id, fixed_session_name, dialog, other_participant_id, LLSD(), is_offline_msg);  		LLIMModel::LLIMSession* session = LLIMModel::instance().findIMSession(new_session_id);  		if (session) @@ -3261,7 +3262,7 @@ LLUUID LLIMMgr::addP2PSession(const std::string& name,  							  const LLUUID& other_participant_id,  							  const LLSD& voice_channel_info)  { -    LL_WARNS("Voice") << "ADD P2P VOICE CHANNEL INFO: " << voice_channel_info << LL_ENDL; +    LL_DEBUGS("Voice") << "Add p2p voice channel info: " << voice_channel_info << LL_ENDL;  	return addSession(name, IM_NOTHING_SPECIAL, other_participant_id, voice_channel_info);  } @@ -3273,7 +3274,7 @@ LLUUID LLIMMgr::addSession(  	const std::string& name,  	EInstantMessage dialog,  	const LLUUID& other_participant_id, -    const LLSD& voiceChannelInfo) +	const LLSD& voiceChannelInfo)  {  	std::vector<LLUUID> ids;  	ids.push_back(other_participant_id); @@ -3288,7 +3289,7 @@ LLUUID LLIMMgr::addSession(  	EInstantMessage dialog,  	const LLUUID& other_participant_id,  	const std::vector<LLUUID>& ids, -    const LLSD& voiceChannelInfo, +	const LLSD& voiceChannelInfo,  	const LLUUID& floater_id)  {  	if (ids.empty()) @@ -3397,7 +3398,7 @@ void LLIMMgr::inviteToSession(  	const std::string& caller_name,  	EInstantMessage type,  	EInvitationType inv_type, -    const LLSD& voice_channel_info) +	const LLSD& voice_channel_info)  {  	if (caller_id == gAgentID) @@ -3446,7 +3447,7 @@ void LLIMMgr::inviteToSession(  	payload["caller_name"] = caller_name;  	payload["type"] = type;  	payload["inv_type"] = inv_type; -    payload["voice_channel_info"] = voice_channel_info; +	payload["voice_channel_info"] = voice_channel_info;  	payload["notify_box_type"] = notify_box_type;  	payload["question_type"] = question_type; @@ -3500,7 +3501,7 @@ void LLIMMgr::inviteToSession(  							fixed_session_name = av_name.getDisplayName();  						}  					} -                    LLIMModel::getInstance()->newSession(session_id, fixed_session_name, IM_NOTHING_SPECIAL, caller_id, LLSD(), false); +					LLIMModel::getInstance()->newSession(session_id, fixed_session_name, IM_NOTHING_SPECIAL, caller_id, LLSD(), false);  				}  				LLSD args; @@ -4126,7 +4127,7 @@ public:  			}              BOOL session_type_p2p = input["body"]["voice"].get("invitation_type").asInteger() == EMultiAgentChatSessionType::P2P_CHAT_SESSION; -            LL_WARNS("Voice") << "VOICE DATA: " << input["body"]<< LL_ENDL; +            LL_DEBUGS("Voice") << "Received P2P voice information from the server: " << input["body"]<< LL_ENDL;  			gIMMgr->inviteToSession(  				input["body"]["session_id"].asUUID(),  				input["body"]["session_name"].asString(), diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h index 2f084d1392..93a1a95b23 100644 --- a/indra/newview/llimview.h +++ b/indra/newview/llimview.h @@ -380,7 +380,7 @@ public:  	LLUUID addSession(const std::string& name,  					  EInstantMessage dialog,  					  const LLUUID& other_participant_id,  -                      const LLSD& voiceChannelInfo = LLSD()); +					  const LLSD& voiceChannelInfo = LLSD());  	// Adds a session using a specific group of starting agents  	// the dialog type is assumed correct. Returns the uuid of the session. @@ -388,8 +388,8 @@ public:  	LLUUID addSession(const std::string& name,  					  EInstantMessage dialog,  					  const LLUUID& other_participant_id, -                      const std::vector<LLUUID> &ids, -                      const LLSD& voiceChannelInfo = LLSD(), +					  const std::vector<LLUUID> &ids, +					  const LLSD& voiceChannelInfo = LLSD(),  					  const LLUUID& floater_id = LLUUID::null);  	/** @@ -415,7 +415,7 @@ public:  		const std::string& caller_name,  		EInstantMessage type,  		EInvitationType inv_type, -        const LLSD &voice_channel_info = LLSD() +		const LLSD &voice_channel_info = LLSD()  	);  	void processIMTypingStart(const LLUUID& from_id, const EInstantMessage im_type); diff --git a/indra/newview/llpanelvoicedevicesettings.cpp b/indra/newview/llpanelvoicedevicesettings.cpp index 48c90d6856..1ecf670179 100644 --- a/indra/newview/llpanelvoicedevicesettings.cpp +++ b/indra/newview/llpanelvoicedevicesettings.cpp @@ -236,47 +236,47 @@ void LLPanelVoiceDeviceSettings::refresh()  		if(mCtrlInputDevices)  		{ -            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; -                } -            } +			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)  		{ -            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; -                } -            } +			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; +				} +			}  		}  	}	  } @@ -323,7 +323,7 @@ void LLPanelVoiceDeviceSettings::onCommitInputDevice()  	}  	// the preferences floater stuff is a mess, hence apply will never  	// be called when 'ok' is pressed, so just force it for now. -    apply(); +	apply();  }  void LLPanelVoiceDeviceSettings::onCommitOutputDevice() diff --git a/indra/newview/llvieweraudio.cpp b/indra/newview/llvieweraudio.cpp index 184b6d8e93..6a0edbecb1 100644 --- a/indra/newview/llvieweraudio.cpp +++ b/indra/newview/llvieweraudio.cpp @@ -480,11 +480,11 @@ void audio_update_volume(bool force_update)  		if (!gViewerWindow->getActive() && (gSavedSettings.getBOOL("MuteWhenMinimized")))  		{ -			//voice_inst->setMuteMic(true); +			voice_inst->setMuteMic(true);  		}  		else  		{ -			//voice_inst->setMuteMic(false); +			voice_inst->setMuteMic(false);  		}  	}  } diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 84b007eaa4..39aaac57c1 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -3136,7 +3136,7 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)  	capabilityNames.append("ParcelVoiceInfoRequest");  	capabilityNames.append("ProductInfoRequest");  	capabilityNames.append("ProvisionVoiceAccountRequest"); -    capabilityNames.append("VoiceSignalingRequest"); +	capabilityNames.append("VoiceSignalingRequest");  	capabilityNames.append("ReadOfflineMsgs"); // Requires to respond reliably: AcceptFriendship, AcceptGroupInvite, DeclineFriendship, DeclineGroupInvite  	capabilityNames.append("RegionObjects");  	capabilityNames.append("RemoteParcelRequest"); diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 5d7adb9613..a600482d5b 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -1166,7 +1166,7 @@ void LLVOAvatar::cleanupClass()  bool LLVOAvatar::handleVOAvatarPrefsChanged(const LLSD &newvalue)  { -    sLipSyncEnabled = gSavedSettings.getBOOL("LipSyncEnabled"); +	sLipSyncEnabled = gSavedSettings.getBOOL("LipSyncEnabled");  	return true;  } diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index a19476153c..47526707dd 100644 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -106,10 +106,10 @@ public:  	virtual void		markDead();  	static void			initClass(); // Initialize data that's only init'd once per class.  	static void			cleanupClass();	// Cleanup data that's only init'd once per class. -    virtual void        initInstance(); // Called after construction to initialize the class. +	virtual void        initInstance(); // Called after construction to initialize the class.  protected:  	virtual				~LLVOAvatar(); -    static bool handleVOAvatarPrefsChanged(const LLSD &newvalue); +	static bool 		handleVOAvatarPrefsChanged(const LLSD &newvalue);  /**                    Initialization   **                                                                            ** @@ -366,7 +366,7 @@ public:  	static F32		sLODFactor; // user-settable LOD factor  	static F32		sPhysicsLODFactor; // user-settable physics LOD factor  	static BOOL		sJointDebug; // output total number of joints being touched for each avatar -    static BOOL     sLipSyncEnabled; +	static BOOL     sLipSyncEnabled;      static LLPointer<LLViewerTexture>  sCloudTexture; diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp index 4d85f160c2..28e895584b 100644 --- a/indra/newview/llvoicechannel.cpp +++ b/indra/newview/llvoicechannel.cpp @@ -92,7 +92,7 @@ LLVoiceChannel::~LLVoiceChannel()  void LLVoiceChannel::setChannelInfo(const LLSD &channelInfo)  { -    mChannelInfo     = channelInfo; +	mChannelInfo     = channelInfo;  	if (mState == STATE_NO_CHANNEL_INFO)  	{ @@ -120,15 +120,15 @@ void LLVoiceChannel::setChannelInfo(const LLSD &channelInfo)  void LLVoiceChannel::onChange(EStatusType type, const LLSD& channelInfo, bool proximal)  { -    LL_WARNS("Voice") << channelInfo << LL_ENDL; -    LL_WARNS("Voice") << mChannelInfo << LL_ENDL; +	LL_DEBUGS("Voice") << "Incoming channel info: " << channelInfo << LL_ENDL; +	LL_DEBUGS("Voice") << "Current channel info: " << mChannelInfo << LL_ENDL;  	if (mChannelInfo.isUndefined())  	{ -        mChannelInfo = channelInfo; +		mChannelInfo = channelInfo;  	} -    if (!LLVoiceClient::getInstance()->compareChannels(mChannelInfo, channelInfo)) +	if (!LLVoiceClient::getInstance()->compareChannels(mChannelInfo, channelInfo))  	{ -        return; +		return;  	}  	if (type < BEGIN_ERROR_STATUS) @@ -147,7 +147,7 @@ void LLVoiceChannel::handleStatusChange(EStatusType type)  	switch(type)  	{  	case STATUS_LOGIN_RETRY: -        // no user notice +		// no user notice  		break;  	case STATUS_LOGGED_IN:  		break; @@ -382,10 +382,10 @@ boost::signals2::connection LLVoiceChannel::setCurrentVoiceChannelChangedCallbac  //  LLVoiceChannelGroup::LLVoiceChannelGroup(const LLUUID      &session_id, -                                         const std::string &session_name, -                                         bool               is_p2p) : -    LLVoiceChannel(session_id, session_name), -    mIsP2P(is_p2p) +										 const std::string &session_name, +										 bool               is_p2p) : +										 LLVoiceChannel(session_id, session_name), +										 mIsP2P(is_p2p)  {  	mRetries = DEFAULT_RETRIES_COUNT;  	mIsRetrying = FALSE; @@ -399,13 +399,13 @@ void LLVoiceChannelGroup::deactivate()  	}  	LLVoiceChannel::deactivate(); -    if (mIsP2P) -    { +	if (mIsP2P) +	{  		// void the channel info for p2p adhoc channels  		// so we request it again, hence throwing up the   		// connect dialogue on the other side. -        setState(STATE_NO_CHANNEL_INFO); -    } +		setState(STATE_NO_CHANNEL_INFO); +	}   }  void LLVoiceChannelGroup::activate() @@ -417,38 +417,38 @@ void LLVoiceChannelGroup::activate()  	if (callStarted())  	{  		// we have the channel info, just need to use it now -        LLVoiceClient::getInstance()->setNonSpatialChannel(mChannelInfo, -			                                               mCallDirection == OUTGOING_CALL,  -			                                               mIsP2P); +		LLVoiceClient::getInstance()->setNonSpatialChannel(mChannelInfo, +														   mCallDirection == OUTGOING_CALL,  +														   mIsP2P);  		if (mIsP2P) -        { -            LLIMModel::addSpeakersToRecent(mSessionID); -        } -        else -        { -            if (!gAgent.isInGroup(mSessionID))  // ad-hoc channel -            { -                LLIMModel::LLIMSession *session = LLIMModel::getInstance()->findIMSession(mSessionID); -                // Adding ad-hoc call participants to Recent People List. -                // If it's an outgoing ad-hoc, we can use mInitialTargetIDs that holds IDs of people we -                // called(both online and offline) as source to get people for recent (STORM-210). -                if (session->isOutgoingAdHoc()) -                { -                    for (uuid_vec_t::iterator it = session->mInitialTargetIDs.begin(); it != session->mInitialTargetIDs.end(); ++it) -                    { -                        const LLUUID id = *it; -                        LLRecentPeople::instance().add(id); -                    } -                } -                // If this ad-hoc is incoming then trying to get ids of people from mInitialTargetIDs -                // would lead to EXT-8246. So in this case we get them from speakers list. -                else -                { -                    LLIMModel::addSpeakersToRecent(mSessionID); -                } -            } -        } +		{ +			LLIMModel::addSpeakersToRecent(mSessionID); +		} +		else +		{ +			if (!gAgent.isInGroup(mSessionID))  // ad-hoc channel +			{ +				LLIMModel::LLIMSession *session = LLIMModel::getInstance()->findIMSession(mSessionID); +				// Adding ad-hoc call participants to Recent People List. +				// If it's an outgoing ad-hoc, we can use mInitialTargetIDs that holds IDs of people we +				// called(both online and offline) as source to get people for recent (STORM-210). +				if (session->isOutgoingAdHoc()) +				{ +					for (uuid_vec_t::iterator it = session->mInitialTargetIDs.begin(); it != session->mInitialTargetIDs.end(); ++it) +					{ +						const LLUUID id = *it; +						LLRecentPeople::instance().add(id); +					} +				} +				// If this ad-hoc is incoming then trying to get ids of people from mInitialTargetIDs +				// would lead to EXT-8246. So in this case we get them from speakers list. +				else +				{ +					LLIMModel::addSpeakersToRecent(mSessionID); +				} +			} +		}  		// Mic default state is OFF on initiating/joining Ad-Hoc/Group calls.  It's on for P2P using the AdHoc infra. @@ -463,14 +463,14 @@ void LLVoiceChannelGroup::requestChannelInfo()  	{  		std::string url = region->getCapability("ChatSessionRequest"); -        LLCoros::instance().launch("LLVoiceChannelGroup::voiceCallCapCoro", -            boost::bind(&LLVoiceChannelGroup::voiceCallCapCoro, this, url)); +		LLCoros::instance().launch("LLVoiceChannelGroup::voiceCallCapCoro", +			boost::bind(&LLVoiceChannelGroup::voiceCallCapCoro, this, url));  	}  }  void LLVoiceChannelGroup::setChannelInfo(const LLSD& channelInfo)  { -    mChannelInfo     = channelInfo; +	mChannelInfo     = channelInfo;  	if (mState == STATE_NO_CHANNEL_INFO)  	{ @@ -498,7 +498,7 @@ void LLVoiceChannelGroup::setChannelInfo(const LLSD& channelInfo)  	{  		// we have the channel info, just need to use it now  		LLVoiceClient::getInstance()->setNonSpatialChannel(channelInfo, -			                                               mCallDirection == OUTGOING_CALL, +														   mCallDirection == OUTGOING_CALL,  														   mIsP2P);  	}  } @@ -585,62 +585,62 @@ void LLVoiceChannelGroup::setState(EState state)  void LLVoiceChannelGroup::voiceCallCapCoro(std::string url)  { -    LLCore::HttpRequest::policy_t httpPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID); -    LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t -        httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("voiceCallCapCoro", httpPolicy)); -    LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest); - -    LLSD postData; -    postData["method"] = "call"; -    postData["session-id"] = mSessionID; -    LLSD altParams; -    altParams["preferred_voice_server_type"] = gSavedSettings.getString("VoiceServerType"); -    postData["alt_params"] = altParams; - -    LL_INFOS("Voice", "voiceCallCapCoro") << "Generic POST for " << url << LL_ENDL; - -    LLSD result = httpAdapter->postAndSuspend(httpRequest, url, postData); - -    LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS]; -    LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults); - -    LLVoiceChannel* channelp = LLVoiceChannel::getChannelByID(mSessionID); -    if (!channelp) -    { -        LL_WARNS("Voice") << "Unable to retrieve channel with Id = " << mSessionID << LL_ENDL; -        return; -    } - -    if (!status) -    { -        if (status == LLCore::HttpStatus(HTTP_FORBIDDEN)) -        { -            //403 == no ability -            LLNotificationsUtil::add( -                "VoiceNotAllowed", -                channelp->getNotifyArgs()); -        } -        else -        { -            LLNotificationsUtil::add( -                "VoiceCallGenericError", -                channelp->getNotifyArgs()); -        } -        channelp->deactivate(); -        return; -    } - -    result.erase(LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS); - -    LLSD::map_const_iterator iter; -    for (iter = result.beginMap(); iter != result.endMap(); ++iter) -    { -        LL_DEBUGS("Voice") << "LLVoiceChannelGroup::voiceCallCapCoro got " -            << iter->first << LL_ENDL; -    } -    LL_INFOS("Voice") << "LLVoiceChannelGroup::voiceCallCapCoro got " << result << LL_ENDL; - -    channelp->setChannelInfo(result["voice_credentials"]); +	LLCore::HttpRequest::policy_t httpPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID); +	LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t +		httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("voiceCallCapCoro", httpPolicy)); +	LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest); + +	LLSD postData; +	postData["method"] = "call"; +	postData["session-id"] = mSessionID; +	LLSD altParams; +	altParams["preferred_voice_server_type"] = gSavedSettings.getString("VoiceServerType"); +	postData["alt_params"] = altParams; + +	LL_INFOS("Voice", "voiceCallCapCoro") << "Generic POST for " << url << LL_ENDL; + +	LLSD result = httpAdapter->postAndSuspend(httpRequest, url, postData); + +	LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS]; +	LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults); + +	LLVoiceChannel* channelp = LLVoiceChannel::getChannelByID(mSessionID); +	if (!channelp) +	{ +		LL_WARNS("Voice") << "Unable to retrieve channel with Id = " << mSessionID << LL_ENDL; +		return; +	} + +	if (!status) +	{ +		if (status == LLCore::HttpStatus(HTTP_FORBIDDEN)) +		{ +			//403 == no ability +			LLNotificationsUtil::add( +				"VoiceNotAllowed", +				channelp->getNotifyArgs()); +		} +		else +		{ +			LLNotificationsUtil::add( +				"VoiceCallGenericError", +				channelp->getNotifyArgs()); +		} +		channelp->deactivate(); +		return; +	} + +	result.erase(LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS); + +	LLSD::map_const_iterator iter; +	for (iter = result.beginMap(); iter != result.endMap(); ++iter) +	{ +		LL_DEBUGS("Voice") << "LLVoiceChannelGroup::voiceCallCapCoro got " +			<< iter->first << LL_ENDL; +	} +	LL_INFOS("Voice") << "LLVoiceChannelGroup::voiceCallCapCoro got " << result << LL_ENDL; + +	channelp->setChannelInfo(result["voice_credentials"]);  } @@ -666,7 +666,7 @@ void LLVoiceChannelProximal::activate()  		// we're connected to a non-spatial channel, so disconnect.  		LLVoiceClient::getInstance()->leaveNonSpatialChannel();  	} -    LLVoiceClient::getInstance()->activateSpatialChannel(true); +	LLVoiceClient::getInstance()->activateSpatialChannel(true);  	LLVoiceChannel::activate();  } @@ -741,7 +741,7 @@ void LLVoiceChannelProximal::deactivate()  	{  		setState(STATE_HUNG_UP);  	} -    LLVoiceClient::getInstance()->activateSpatialChannel(false); +	LLVoiceClient::getInstance()->activateSpatialChannel(false);  } @@ -749,13 +749,13 @@ void LLVoiceChannelProximal::deactivate()  // LLVoiceChannelP2P  //  LLVoiceChannelP2P::LLVoiceChannelP2P(const LLUUID      &session_id, -                                     const std::string &session_name, -                                     const LLUUID      &other_user_id, -	                                 LLVoiceP2POutgoingCallInterface* outgoing_call_interface) :  -		LLVoiceChannelGroup(session_id, session_name, true),  -		mOtherUserID(other_user_id), -		mReceivedCall(FALSE), -        mOutgoingCallInterface(outgoing_call_interface) +									 const std::string &session_name, +									 const LLUUID      &other_user_id, +									LLVoiceP2POutgoingCallInterface* outgoing_call_interface) :  +	LLVoiceChannelGroup(session_id, session_name, true),  +	mOtherUserID(other_user_id), +	mReceivedCall(FALSE), +	mOutgoingCallInterface(outgoing_call_interface)  {  } @@ -823,7 +823,7 @@ void LLVoiceChannelP2P::activate()  	if (callStarted())  	{  		// no session handle yet, we're starting the call -        if (mIncomingCallInterface == nullptr) +		if (mIncomingCallInterface == nullptr)  		{  			mReceivedCall = FALSE;  			mOutgoingCallInterface->callUser(mOtherUserID); @@ -831,15 +831,15 @@ void LLVoiceChannelP2P::activate()  		// otherwise answering the call  		else  		{ -            if (!mIncomingCallInterface->answerInvite()) +			if (!mIncomingCallInterface->answerInvite())  			{  				mCallEndedByAgent = false; -                mIncomingCallInterface.reset(); +				mIncomingCallInterface.reset();  				handleError(ERROR_UNKNOWN);  				return;  			}  			// using the incoming call interface invalidates it.  Clear it out here so we can't reuse it by accident. -            mIncomingCallInterface.reset(); +			mIncomingCallInterface.reset();  		}  		// Add the party to the list of people with which we've recently interacted. @@ -855,11 +855,11 @@ void LLVoiceChannelP2P::activate()  void LLVoiceChannelP2P::deactivate()  { -    if (callStarted()) -    { -        mOutgoingCallInterface->hangup(); -    } -    LLVoiceChannel::deactivate(); +	if (callStarted()) +	{ +		mOutgoingCallInterface->hangup(); +	} +	LLVoiceChannel::deactivate();  } @@ -875,7 +875,7 @@ void LLVoiceChannelP2P::requestChannelInfo()  // receiving session from other user who initiated call  void LLVoiceChannelP2P::setChannelInfo(const LLSD& channel_info)  {  -    mChannelInfo        = channel_info; +	mChannelInfo        = channel_info;  	BOOL needs_activate = FALSE;  	if (callStarted())  	{ @@ -890,16 +890,16 @@ void LLVoiceChannelP2P::setChannelInfo(const LLSD& channel_info)  		{  			// we are active and have priority, invite the other user again  			// under the assumption they will join this new session -            mOutgoingCallInterface->callUser(mOtherUserID); +			mOutgoingCallInterface->callUser(mOtherUserID);  			return;  		}  	} -	 +  	mReceivedCall = TRUE; -    if (!channel_info.isUndefined()) -    { -        mIncomingCallInterface = LLVoiceClient::getInstance()->getIncomingCallInterface(channel_info); -    } +	if (!channel_info.isUndefined()) +	{ +		mIncomingCallInterface = LLVoiceClient::getInstance()->getIncomingCallInterface(channel_info); +	}  	if (needs_activate)  	{  		activate(); @@ -917,7 +917,7 @@ void LLVoiceChannelP2P::setState(EState state)  		if (mReceivedCall && state == STATE_RINGING)  		{  			//TODO: remove or redirect this call status notification -//			LLCallInfoDialog::show("answering", mNotifyArgs); +	//			LLCallInfoDialog::show("answering", mNotifyArgs);  			doSetState(state);  			return;  		} diff --git a/indra/newview/llvoicechannel.h b/indra/newview/llvoicechannel.h index 5725e7ec5c..bc22bf0df6 100644 --- a/indra/newview/llvoicechannel.h +++ b/indra/newview/llvoicechannel.h @@ -72,7 +72,7 @@ public:  	virtual void handleError(EStatusType status);  	virtual void deactivate();  	virtual void activate(); -    virtual void setChannelInfo(const LLSD &channelInfo); +	virtual void setChannelInfo(const LLSD &channelInfo);  	virtual void requestChannelInfo();  	virtual BOOL isActive();  	virtual BOOL callStarted(); @@ -95,13 +95,13 @@ public:  	static LLVoiceChannel* getChannelByID(const LLUUID& session_id);  	static LLVoiceChannel* getCurrentVoiceChannel(); -	 +  	static void initClass(); -	 +  	static void suspend();  	static void resume(); -protected: +  protected:  	virtual void setState(EState state);  	/**  	 * Use this method if you want mStateChangedCallback to be executed while state is changed @@ -115,7 +115,7 @@ protected:  	EState		mState;  	std::string	mSessionName;  	LLSD        mNotifyArgs; -    LLSD        mChannelInfo;  +	LLSD        mChannelInfo;   	// true if call was ended by agent  	bool mCallEndedByAgent;  	bool mIgnoreNextSessionLeave; @@ -144,7 +144,7 @@ public:  	void handleError(EStatusType status) override;  	void activate() override;  	void deactivate() override; -    void setChannelInfo(const LLSD &channelInfo) override; +	void setChannelInfo(const LLSD &channelInfo) override;  	void requestChannelInfo() override;  protected: @@ -163,28 +163,28 @@ class LLVoiceChannelProximal : public LLVoiceChannel, public LLSingleton<LLVoice      LLSINGLETON_C11(LLVoiceChannelProximal);    public: -    void onChange(EStatusType status, const LLSD &channelInfo, bool proximal) override; -    void handleStatusChange(EStatusType status) override; -    void handleError(EStatusType status) override; -    BOOL isActive() override; -    void activate() override; -    void deactivate() override; +	void onChange(EStatusType status, const LLSD &channelInfo, bool proximal) override; +	void handleStatusChange(EStatusType status) override; +	void handleError(EStatusType status) override; +	BOOL isActive() override; +	void activate() override; +	void deactivate() override;  };  class LLVoiceChannelP2P : public LLVoiceChannelGroup  {    public: -    LLVoiceChannelP2P(const LLUUID      &session_id, -                      const std::string &session_name, -                      const LLUUID      &other_user_id, -                      LLVoiceP2POutgoingCallInterface * outgoing_call_interface); - -    void handleStatusChange(EStatusType status) override; -    void handleError(EStatusType status) override; -    void activate() override; -    void requestChannelInfo() override; -    void deactivate() override; -    void setChannelInfo(const LLSD& channel_info) override; +	LLVoiceChannelP2P(const LLUUID      &session_id, +					  const std::string &session_name, +					  const LLUUID      &other_user_id, +					  LLVoiceP2POutgoingCallInterface * outgoing_call_interface); + +	void handleStatusChange(EStatusType status) override; +	void handleError(EStatusType status) override; +	void activate() override; +	void requestChannelInfo() override; +	void deactivate() override; +	void setChannelInfo(const LLSD& channel_info) override;    protected:      void setState(EState state) override; @@ -198,8 +198,8 @@ private:  	void addToTheRecentPeopleList();  	LLUUID		mOtherUserID;  	BOOL		mReceivedCall; -    LLVoiceP2POutgoingCallInterface *mOutgoingCallInterface; -    LLVoiceP2PIncomingCallInterfacePtr mIncomingCallInterface; +	LLVoiceP2POutgoingCallInterface *mOutgoingCallInterface; +	LLVoiceP2PIncomingCallInterfacePtr mIncomingCallInterface;  };  #endif  // LL_VOICECHANNEL_H diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp index 33e76c14ae..1f5dbe3b97 100644 --- a/indra/newview/llvoiceclient.cpp +++ b/indra/newview/llvoiceclient.cpp @@ -176,69 +176,69 @@ void LLVoiceClient::userAuthorized(const std::string& user_id, const LLUUID &age  void LLVoiceClient::onRegionChanged()  { -    LLViewerRegion *region = gAgent.getRegion(); -    if (region && region->simulatorFeaturesReceived()) -    { -            LLSD simulatorFeatures; -            region->getSimulatorFeatures(simulatorFeatures); -            setSpatialVoiceModule(simulatorFeatures["VoiceServerType"].asString()); -    } -    else if (region) -    { +	LLViewerRegion *region = gAgent.getRegion(); +	if (region && region->simulatorFeaturesReceived()) +	{ +			LLSD simulatorFeatures; +			region->getSimulatorFeatures(simulatorFeatures); +			setSpatialVoiceModule(simulatorFeatures["VoiceServerType"].asString()); +	} +	else if (region) +	{  		if (mSimulatorFeaturesReceivedSlot.connected())  		{  			mSimulatorFeaturesReceivedSlot.disconnect();  		}  		mSimulatorFeaturesReceivedSlot = -                region->setSimulatorFeaturesReceivedCallback( -                boost::bind(&LLVoiceClient::onSimulatorFeaturesReceived, this, _1)); -    } +				region->setSimulatorFeaturesReceivedCallback( +				boost::bind(&LLVoiceClient::onSimulatorFeaturesReceived, this, _1)); +	}  }  void LLVoiceClient::onSimulatorFeaturesReceived(const LLUUID& region_id)  { -    LLViewerRegion *region = gAgent.getRegion(); -    if (region && (region->getRegionID() == region_id)) -    { -        LLSD simulatorFeatures; -        region->getSimulatorFeatures(simulatorFeatures); -        setSpatialVoiceModule(simulatorFeatures["VoiceServerType"].asString()); -    } +	LLViewerRegion *region = gAgent.getRegion(); +	if (region && (region->getRegionID() == region_id)) +	{ +		LLSD simulatorFeatures; +		region->getSimulatorFeatures(simulatorFeatures); +		setSpatialVoiceModule(simulatorFeatures["VoiceServerType"].asString()); +	}  }  void LLVoiceClient::setSpatialVoiceModule(const std::string &voice_server_type)  { -    LLVoiceModuleInterface *module = getVoiceModule(voice_server_type); -    if (!module) +	LLVoiceModuleInterface *module = getVoiceModule(voice_server_type); +	if (!module)  	{ -        return; +		return;  	} -    if (module != mSpatialVoiceModule) -    { +	if (module != mSpatialVoiceModule) +	{  		if (inProximalChannel())  		{ -            mSpatialVoiceModule->processChannels(false); +			mSpatialVoiceModule->processChannels(false);  		} -        module->processChannels(true); -        mSpatialVoiceModule = module; -        mSpatialVoiceModule->updateSettings(); -    } +		module->processChannels(true); +		mSpatialVoiceModule = module; +		mSpatialVoiceModule->updateSettings(); +	}  }  void LLVoiceClient::setNonSpatialVoiceModule(const std::string &voice_server_type)  { -    mNonSpatialVoiceModule = getVoiceModule(voice_server_type); -    if (!mNonSpatialVoiceModule) -    { +	mNonSpatialVoiceModule = getVoiceModule(voice_server_type); +	if (!mNonSpatialVoiceModule) +	{  		// we don't have a non-spatial voice module,  		// so revert to spatial.  		if (mSpatialVoiceModule)  		{ -            mSpatialVoiceModule->processChannels(true); +			mSpatialVoiceModule->processChannels(true);  		} -        return; -    } -    mNonSpatialVoiceModule->updateSettings(); +		return; +	} +	mNonSpatialVoiceModule->updateSettings();  }  void LLVoiceClient::setHidden(bool hidden) @@ -296,14 +296,13 @@ void LLVoiceClient::updateSettings()  void LLVoiceClient::tuningStart()  {  	LLWebRTCVoiceClient::getInstance()->tuningStart(); -    LLVivoxVoiceClient::getInstance()->tuningStart(); +	LLVivoxVoiceClient::getInstance()->tuningStart();  }  void LLVoiceClient::tuningStop()  {  	LLWebRTCVoiceClient::getInstance()->tuningStop(); -    LLVivoxVoiceClient::getInstance()->tuningStop(); - +	LLVivoxVoiceClient::getInstance()->tuningStop();  }  bool LLVoiceClient::inTuningMode() @@ -347,13 +346,13 @@ void LLVoiceClient::refreshDeviceLists(bool clearCurrentList)  void LLVoiceClient::setCaptureDevice(const std::string& name)  {  	LLWebRTCVoiceClient::getInstance()->setCaptureDevice(name); -    LLVivoxVoiceClient::getInstance()->setCaptureDevice(name); +	LLVivoxVoiceClient::getInstance()->setCaptureDevice(name);  }  void LLVoiceClient::setRenderDevice(const std::string& name)  {  	LLWebRTCVoiceClient::getInstance()->setRenderDevice(name); -    LLVivoxVoiceClient::getInstance()->setRenderDevice(name); +	LLVivoxVoiceClient::getInstance()->setRenderDevice(name);  }  const LLVoiceDeviceList& LLVoiceClient::getCaptureDevices() @@ -373,13 +372,13 @@ const LLVoiceDeviceList& LLVoiceClient::getRenderDevices()  void LLVoiceClient::getParticipantList(std::set<LLUUID> &participants)  { -    LLWebRTCVoiceClient::getInstance()->getParticipantList(participants); -    LLVivoxVoiceClient::getInstance()->getParticipantList(participants); +	LLWebRTCVoiceClient::getInstance()->getParticipantList(participants); +	LLVivoxVoiceClient::getInstance()->getParticipantList(participants);  }  bool LLVoiceClient::isParticipant(const LLUUID &speaker_id)  { -    return LLWebRTCVoiceClient::getInstance()->isParticipant(speaker_id) ||  +	return LLWebRTCVoiceClient::getInstance()->isParticipant(speaker_id) ||   		   LLVivoxVoiceClient::getInstance()->isParticipant(speaker_id);  } @@ -390,13 +389,13 @@ bool LLVoiceClient::isParticipant(const LLUUID &speaker_id)  BOOL LLVoiceClient::isSessionTextIMPossible(const LLUUID& id)  {  	// all sessions can do TextIM, as we no longer support PSTN -    return TRUE; +	return TRUE;  }  BOOL LLVoiceClient::isSessionCallBackPossible(const LLUUID& id)  {  	// we don't support PSTN calls anymore.  (did we ever?) -    return TRUE; +	return TRUE;  }  //---------------------------------------------- @@ -419,17 +418,17 @@ void LLVoiceClient::setNonSpatialChannel(  	bool notify_on_first_join,  	bool hangup_on_last_leave)  { -    setNonSpatialVoiceModule(channelInfo["voice_server_type"].asString()); +	setNonSpatialVoiceModule(channelInfo["voice_server_type"].asString());  	if (mSpatialVoiceModule) -    { -        mSpatialVoiceModule->processChannels(false); -    } +	{ +		mSpatialVoiceModule->processChannels(false); +	}  	if (mNonSpatialVoiceModule)  	{ -        mNonSpatialVoiceModule->setNonSpatialChannel(channelInfo, notify_on_first_join, hangup_on_last_leave); -        mNonSpatialVoiceModule->processChannels(true); +		mNonSpatialVoiceModule->setNonSpatialChannel(channelInfo, notify_on_first_join, hangup_on_last_leave); +		mNonSpatialVoiceModule->processChannels(true); +	}  	} -}  void LLVoiceClient::setSpatialChannel(const LLSD &channelInfo)  { @@ -784,48 +783,46 @@ class LLViewerRequiredVoiceVersion : public LLHTTPNode  					  const LLSD& context,  					  const LLSD& input) const  	{ - - -        std::string voice_server_type = "vivox"; +		std::string voice_server_type = "vivox";  		if (input.has("body") && input["body"].has("voice_server_type"))  		{ -            voice_server_type = input["body"]["voice_server_type"].asString(); +			voice_server_type = input["body"]["voice_server_type"].asString();  		} -        LLVoiceModuleInterface *voiceModule = NULL; +		LLVoiceModuleInterface *voiceModule = NULL; -        if (voice_server_type == "vivox" || voice_server_type.empty()) -        { -            voiceModule = (LLVoiceModuleInterface *) LLVivoxVoiceClient::getInstance(); -        } -        else if (voice_server_type == "webrtc") -        { -            voiceModule = (LLVoiceModuleInterface *) LLWebRTCVoiceClient::getInstance(); -        } -        else -        { -            LL_WARNS("Voice") << "Unknown voice server type " << voice_server_type << LL_ENDL; -            if (!sAlertedUser) -            { -                // sAlertedUser = true; -                LLNotificationsUtil::add("VoiceVersionMismatch"); -            } -            return; -        } +		if (voice_server_type == "vivox" || voice_server_type.empty()) +		{ +			voiceModule = (LLVoiceModuleInterface *) LLVivoxVoiceClient::getInstance(); +		} +		else if (voice_server_type == "webrtc") +		{ +			voiceModule = (LLVoiceModuleInterface *) LLWebRTCVoiceClient::getInstance(); +		} +		else +		{ +			LL_WARNS("Voice") << "Unknown voice server type " << voice_server_type << LL_ENDL; +			if (!sAlertedUser) +			{ +				// sAlertedUser = true; +				LLNotificationsUtil::add("VoiceVersionMismatch"); +			} +			return; +		}  		LLVoiceVersionInfo versionInfo = voiceModule->getVersion(); -        if (input.has("body") && input["body"].has("major_version") && +		if (input.has("body") && input["body"].has("major_version") &&  			input["body"]["major_version"].asInteger() > versionInfo.majorVersion)  		{ -            if (!sAlertedUser) -            { -                // sAlertedUser = true; -                LLNotificationsUtil::add("VoiceVersionMismatch"); -                LL_WARNS("Voice") << "Voice server version mismatch " << input["body"]["major_version"].asInteger() << "/" -                                  << versionInfo.majorVersion -                                  << LL_ENDL; -            } -            return; +			if (!sAlertedUser) +			{ +				// sAlertedUser = true; +				LLNotificationsUtil::add("VoiceVersionMismatch"); +				LL_WARNS("Voice") << "Voice server version mismatch " << input["body"]["major_version"].asInteger() << "/" +								  << versionInfo.majorVersion +								  << LL_ENDL; +			} +			return;  		}  	}  }; diff --git a/indra/newview/llvoiceclient.h b/indra/newview/llvoiceclient.h index 46dd325e21..02f73cde7a 100644 --- a/indra/newview/llvoiceclient.h +++ b/indra/newview/llvoiceclient.h @@ -96,10 +96,10 @@ public:  struct LLVoiceVersionInfo  {  	std::string voiceServerType; -    std::string internalVoiceServerType; -    int         majorVersion; -    int         minorVersion; -    std::string serverVersion; +	std::string internalVoiceServerType; +	int         majorVersion; +	int         minorVersion; +	std::string serverVersion;  	std::string mBuildVersion;  }; @@ -205,7 +205,7 @@ public:  	virtual bool inProximalChannel()=0;  	virtual void setNonSpatialChannel(const LLSD& channelInfo, -		                              bool notify_on_first_join, +									  bool notify_on_first_join,  									  bool hangup_on_last_leave)=0;  	virtual bool setSpatialChannel(const LLSD& channelInfo)=0; @@ -474,13 +474,13 @@ public:  	//@}  	void setSpatialVoiceModule(const std::string& voice_server_type); -    void setNonSpatialVoiceModule(const std::string &voice_server_type); +	void setNonSpatialVoiceModule(const std::string &voice_server_type);  	void userAuthorized(const std::string& user_id,  						const LLUUID &agentID); -    void onRegionChanged(); -    void onSimulatorFeaturesReceived(const LLUUID ®ion_id); +	void onRegionChanged(); +	void onSimulatorFeaturesReceived(const LLUUID ®ion_id);  	void addObserver(LLVoiceClientStatusObserver* observer);  	void removeObserver(LLVoiceClientStatusObserver* observer); | 
