summaryrefslogtreecommitdiff
path: root/indra/newview/llappviewer.cpp
diff options
context:
space:
mode:
authorGilbert Gonzales <gilbert@lindenlab.com>2013-01-25 17:47:36 -0800
committerGilbert Gonzales <gilbert@lindenlab.com>2013-01-25 17:47:36 -0800
commitc418d616276ce16d910c6e5528f6aa058803e1c7 (patch)
treeaf7c6d992eb34c37d58ffb55561e5a62893617c3 /indra/newview/llappviewer.cpp
parentdaa9db305a5ae2c0c5b0c2425d6482de6dee7b2c (diff)
CHUI-667 Upon exit from DND mode, a maximum of one sound should be played. Solution. Added a deferred sound class which will have sound id's added to it and upon unmuting the deferred sounds will be played.
Diffstat (limited to 'indra/newview/llappviewer.cpp')
-rw-r--r--indra/newview/llappviewer.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 3c42734e6e..a291fac5a1 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -201,6 +201,7 @@
#include "llviewercontrol.h"
#include "lleventnotifier.h"
#include "llcallbacklist.h"
+#include "lldeferredsounds.h"
#include "pipeline.h"
#include "llgesturemgr.h"
#include "llsky.h"
@@ -220,6 +221,7 @@
#include "llmachineid.h"
#include "llmainlooprepeater.h"
+#include <queue>
// *FIX: These extern globals should be cleaned up.
// The globals either represent state/config/resource-storage of either
@@ -456,7 +458,7 @@ void idle_afk_check()
}
// A callback set in LLAppViewer::init()
-static void ui_audio_callback(const LLUUID& uuid)
+void ui_audio_callback(const LLUUID& uuid)
{
if (gAudiop)
{
@@ -464,6 +466,15 @@ static void ui_audio_callback(const LLUUID& uuid)
}
}
+// A callback set in LLAppViewer::init()
+static void deferred_ui_audio_callback(const LLUUID& uuid)
+{
+ if (gAudiop)
+ {
+ LLDeferredSounds::instance().deferSound(uuid);
+ }
+}
+
bool create_text_segment_icon_from_url_match(LLUrlMatch* match,LLTextBase* base)
{
if(!match || !base || base->getPlainText())
@@ -778,6 +789,7 @@ bool LLAppViewer::init()
LLUI::initClass(settings_map,
LLUIImageList::getInstance(),
ui_audio_callback,
+ deferred_ui_audio_callback,
&LLUI::sGLScaleFactor);
LL_INFOS("InitInfo") << "UI initialized." << LL_ENDL ;