SL-16865 llStopSound() does not stop sound if it is out of cutoff radius
parent
6ab212c96b
commit
625cc84ec0
|
|
@ -1402,6 +1402,15 @@ bool LLAudioSource::setupChannel()
|
|||
return true;
|
||||
}
|
||||
|
||||
void LLAudioSource::stop()
|
||||
{
|
||||
play(LLUUID::null);
|
||||
if (mCurrentDatap)
|
||||
{
|
||||
// always reset data if something wants us to stop
|
||||
mCurrentDatap = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
bool LLAudioSource::play(const LLUUID &audio_uuid)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -304,7 +304,13 @@ public:
|
|||
LLAudioBuffer *getCurrentBuffer();
|
||||
|
||||
bool setupChannel();
|
||||
bool play(const LLUUID &audio_id); // Start the audio source playing
|
||||
|
||||
// Stop the audio source, reset audio id even if muted
|
||||
void stop();
|
||||
|
||||
// Start the audio source playing,
|
||||
// takes mute into account to preserve previous id if nessesary
|
||||
bool play(const LLUUID &audio_id);
|
||||
|
||||
bool hasPendingPreloads() const; // Has preloads that haven't been done yet
|
||||
|
||||
|
|
|
|||
|
|
@ -1264,6 +1264,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
mesgsys->getBinaryDataFast(_PREHASH_ObjectData, _PREHASH_ObjectData, data, length, block_num, MAX_OBJECT_BINARY_DATA_SIZE);
|
||||
|
||||
mTotalCRC = crc;
|
||||
// Might need to update mSourceMuted here to properly pick up new radius
|
||||
mSoundCutOffRadius = cutoff;
|
||||
|
||||
// Owner ID used for sound muting or particle system muting
|
||||
|
|
@ -5873,7 +5874,7 @@ void LLViewerObject::setAttachedSound(const LLUUID &audio_uuid, const LLUUID& ow
|
|||
else if (flags & LL_SOUND_FLAG_STOP)
|
||||
{
|
||||
// Just shut off the sound
|
||||
mAudioSourcep->play(LLUUID::null);
|
||||
mAudioSourcep->stop();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
@ -5912,7 +5913,7 @@ void LLViewerObject::setAttachedSound(const LLUUID &audio_uuid, const LLUUID& ow
|
|||
mAudioSourcep->setQueueSounds(queue);
|
||||
if(!queue) // stop any current sound first to avoid "farts of doom" (SL-1541) -MG
|
||||
{
|
||||
mAudioSourcep->play(LLUUID::null);
|
||||
mAudioSourcep->stop();
|
||||
}
|
||||
|
||||
// Play this sound if region maturity permits
|
||||
|
|
|
|||
Loading…
Reference in New Issue