diff options
| -rw-r--r-- | indra/newview/llvoicevivox.cpp | 45 | 
1 files changed, 25 insertions, 20 deletions
| diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index 5ba0bfaff0..842ad9ca6b 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -101,7 +101,8 @@ namespace {      const F32 PROVISION_RETRY_TIMEOUT = 2.0;      // Cosine of a "trivially" small angle -    const F32 MINUSCULE_ANGLE_COS = 0.999f; +    const F32 FOUR_DEGREES = 4.0f * (F_PI / 180.0f); +    const F32 MINUSCULE_ANGLE_COS = (F32) cos(0.5f * FOUR_DEGREES);      const F32 SESSION_JOIN_TIMEOUT = 10.0f; @@ -2678,12 +2679,13 @@ void LLVivoxVoiceClient::sendPositionAndVolumeUpdate(void)  				<< "<Y>" << u.mV[VY] << "</Y>"  				<< "<Z>" << u.mV[VZ] << "</Z>"  			<< "</UpOrientation>" -			<< "<LeftOrientation>" -				<< "<X>" << l.mV [VX] << "</X>" -				<< "<Y>" << l.mV [VY] << "</Y>" -				<< "<Z>" << l.mV [VZ] << "</Z>" -			<< "</LeftOrientation>"; - +  			<< "<LeftOrientation>" +  				<< "<X>" << l.mV [VX] << "</X>" +  				<< "<Y>" << l.mV [VY] << "</Y>" +  				<< "<Z>" << l.mV [VZ] << "</Z>" +  			<< "</LeftOrientation>" +            ; +          		stream << "</SpeakerPosition>";  		stream << "<ListenerPosition>"; @@ -2721,7 +2723,6 @@ void LLVivoxVoiceClient::sendPositionAndVolumeUpdate(void)          pos = earPosition;  		vel = earVelocity; -//		LL_DEBUGS("Voice") << "Sending listener position " << earPosition << LL_ENDL;  		oldSDKTransform(l, u, a, pos, vel); @@ -2754,12 +2755,12 @@ void LLVivoxVoiceClient::sendPositionAndVolumeUpdate(void)  				<< "<Y>" << u.mV[VY] << "</Y>"  				<< "<Z>" << u.mV[VZ] << "</Z>"  			<< "</UpOrientation>" -			<< "<LeftOrientation>" -				<< "<X>" << l.mV [VX] << "</X>" -				<< "<Y>" << l.mV [VY] << "</Y>" -				<< "<Z>" << l.mV [VZ] << "</Z>" -			<< "</LeftOrientation>"; - +  			<< "<LeftOrientation>" +  				<< "<X>" << l.mV [VX] << "</X>" +  				<< "<Y>" << l.mV [VY] << "</Y>" +  				<< "<Z>" << l.mV [VZ] << "</Z>" +  			<< "</LeftOrientation>" +            ;  		stream << "</ListenerPosition>"; @@ -2833,10 +2834,11 @@ void LLVivoxVoiceClient::sendPositionAndVolumeUpdate(void)  	}  	//sendLocalAudioUpdates();  obsolete, used to send volume setting on position updates -	 -	if(!stream.str().empty()) +    std::string update(stream.str()); +	if(!update.empty())  	{ -		writeString(stream.str()); +        LL_DEBUGS("VoiceUpdate") << "sending update " << update << LL_ENDL; +		writeString(update);  	}  } @@ -4838,9 +4840,12 @@ void LLVivoxVoiceClient::setAvatarPosition(const LLVector3d &position, const LLV  		mSpatialCoordsDirty = true;  	} -    if ((mAvatarRot != rot) && (llabs(dot(mAvatarRot, rot)) > MINUSCULE_ANGLE_COS)) -	{   // if the two rotations are not exactly equal test their dot product -        // to get the cos of the angle between them.  If it is minuscule don't update. +    // If the two rotations are not exactly equal test their dot product +    // to get the cos of the angle between them. +    // If it is too small, don't update. +    F32 rot_cos_diff = llabs(dot(mAvatarRot, rot)); +    if ((mAvatarRot != rot) && (rot_cos_diff < MINUSCULE_ANGLE_COS)) +	{     		mAvatarRot = rot;  		mSpatialCoordsDirty = true;  	} | 
