summaryrefslogtreecommitdiff
path: root/indra/llaudio
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2022-04-18 20:43:49 +0300
committerAndrey Lihatskiy <alihatskiy@productengine.com>2022-04-18 20:43:49 +0300
commit026ad511eaeae74b0273276506ae4b3a29536a5c (patch)
treee316418eb30f456bd55d3a59a7bd7771d0f2af28 /indra/llaudio
parenta629e845cfff17a9ab7e74dd3930e1fb63ab286b (diff)
parentd031662435d97101411ae990ed85d6e001ab668a (diff)
Merge branch 'master' into DRTVWR-544-maint
# Conflicts: # indra/newview/app_settings/settings.xml # indra/newview/llfloatersearch.cpp # indra/newview/llgroupactions.cpp # indra/newview/llvovolume.cpp
Diffstat (limited to 'indra/llaudio')
-rw-r--r--indra/llaudio/llaudioengine.cpp9
-rw-r--r--indra/llaudio/llaudioengine.h8
2 files changed, 16 insertions, 1 deletions
diff --git a/indra/llaudio/llaudioengine.cpp b/indra/llaudio/llaudioengine.cpp
index 5c0de19caa..2a00fe7c5a 100644
--- a/indra/llaudio/llaudioengine.cpp
+++ b/indra/llaudio/llaudioengine.cpp
@@ -1403,6 +1403,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)
{
diff --git a/indra/llaudio/llaudioengine.h b/indra/llaudio/llaudioengine.h
index c842c80ff7..e12fb970ca 100644
--- a/indra/llaudio/llaudioengine.h
+++ b/indra/llaudio/llaudioengine.h
@@ -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