From 04ef90ceb0829e660d9c89a13ef526b3d30c732c Mon Sep 17 00:00:00 2001
From: Aimee Linden <aimee@lindenlab.com>
Date: Tue, 18 May 2010 15:55:22 +0100
Subject: [PATCH] EXT-7390 WIP Created SLapp
 secondlife:///app/voice/effects/refresh to update the voice effect list with
 new effects.

---
 indra/newview/llvoiceclient.cpp | 35 ++++++++++++++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 52a7de61a0..d44b47707e 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -35,6 +35,7 @@
 #include "llviewerwindow.h"
 #include "llvoicevivox.h"
 #include "llviewernetwork.h"
+#include "llcommandhandler.h"
 #include "llhttpnode.h"
 #include "llnotificationsutil.h"
 #include "llsdserialize.h"
@@ -46,6 +47,39 @@ const F32 LLVoiceClient::VOLUME_MIN = 0.f;
 const F32 LLVoiceClient::VOLUME_DEFAULT = 0.5f;
 const F32 LLVoiceClient::VOLUME_MAX = 1.0f;
 
+
+// Support for secondlife:///app/voice SLapps
+class LLVoiceHandler : public LLCommandHandler
+{
+public:
+	// requests will be throttled from a non-trusted browser
+	LLVoiceHandler() : LLCommandHandler("voice", UNTRUSTED_THROTTLE) {}
+
+	bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web)
+	{
+		if (params[0].asString() == "effects")
+		{
+			LLVoiceEffectInterface* effect_interface = LLVoiceClient::instance().getVoiceEffectInterface();
+			// If the voice client doesn't support voice effects, we can't handle effects SLapps
+			if (!effect_interface)
+			{
+				return false;
+			}
+
+			// Support secondlife:///app/voice/effects/refresh to update the voice effect list with new effects
+			if (params[1].asString() == "refresh")
+			{
+				effect_interface->refreshVoiceEffectLists(false);
+				return true;
+			}
+		}
+		return false;
+	}
+};
+LLVoiceHandler gVoiceHandler;
+
+
+
 std::string LLVoiceClientStatusObserver::status2string(LLVoiceClientStatusObserver::EStatusType inStatus)
 {
 	std::string result = "UNKNOWN";
@@ -77,7 +111,6 @@ std::string LLVoiceClientStatusObserver::status2string(LLVoiceClientStatusObserv
 
 
 
-
 ///////////////////////////////////////////////////////////////////////////////////////////////
 
 LLVoiceClient::LLVoiceClient() :
-- 
GitLab