summaryrefslogtreecommitdiff
path: root/indra/newview/llgesturelistener.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llgesturelistener.cpp')
-rw-r--r--indra/newview/llgesturelistener.cpp318
1 files changed, 159 insertions, 159 deletions
diff --git a/indra/newview/llgesturelistener.cpp b/indra/newview/llgesturelistener.cpp
index 22b7d233c5..2fff506681 100644
--- a/indra/newview/llgesturelistener.cpp
+++ b/indra/newview/llgesturelistener.cpp
@@ -1,159 +1,159 @@
-/**
- * @file llgesturelistener.cpp
- * @author Dave Simmons
- * @date 2011-03-28
- * @brief Implementation for LLGestureListener.
- *
- * $LicenseInfo:firstyear=2011&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2011, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-
-#include "llgesturelistener.h"
-#include "llgesturemgr.h"
-#include "llmultigesture.h"
-
-
-LLGestureListener::LLGestureListener()
- : LLEventAPI("LLGesture",
- "LLGesture listener interface to control gestures")
-{
- add("getActiveGestures",
- "Return information about the agent's available gestures [\"reply\"]:\n"
- "[\"gestures\"]: a dictionary with UUID strings as keys\n"
- " and the following dict values for each entry:\n"
- " [\"name\"]: name of the gesture, may be empty\n"
- " [\"trigger\"]: trigger string used to invoke via user chat, may be empty\n"
- " [\"playing\"]: true or false indicating the playing state",
- &LLGestureListener::getActiveGestures,
- LLSDMap("reply", LLSD()));
- add("isGesturePlaying",
- "[\"id\"]: UUID of the gesture to query. Returns True or False in [\"playing\"] value of the result",
- &LLGestureListener::isGesturePlaying);
- add("startGesture",
- "[\"id\"]: UUID of the gesture to start playing",
- &LLGestureListener::startGesture);
- add("stopGesture",
- "[\"id\"]: UUID of the gesture to stop",
- &LLGestureListener::stopGesture);
-}
-
-
-// "getActiveGestures" command
-void LLGestureListener::getActiveGestures(const LLSD& event_data) const
-{
- LLSD reply = LLSD::emptyMap();
- LLSD gesture_map = LLSD::emptyMap();
-
- const LLGestureMgr::item_map_t& active_gestures = LLGestureMgr::instance().getActiveGestures();
-
- // Scan active gesture map and get all the names
- LLGestureMgr::item_map_t::const_iterator it;
- for (it = active_gestures.begin(); it != active_gestures.end(); ++it)
- {
- LLMultiGesture* gesture = (*it).second;
- if (gesture)
- { // Add an entry to the result map with the LLUUID as key with a map containing data
- LLSD info = LLSD::emptyMap();
- info["name"] = (LLSD::String) gesture->mName;
- info["trigger"] = (LLSD::String) gesture->mTrigger;
- info["playing"] = (LLSD::Boolean) gesture->mPlaying;
-
- gesture_map[(*it).first.asString()] = info;
- }
- }
-
- reply["gestures"] = gesture_map;
- sendReply(reply, event_data);
-}
-
-
-
-// "isGesturePlaying" command
-void LLGestureListener::isGesturePlaying(const LLSD& event_data) const
-{
- bool is_playing = false;
- if (event_data.has("id"))
- {
- LLUUID gesture_id = event_data["id"].asUUID();
- if (gesture_id.notNull())
- {
- is_playing = LLGestureMgr::instance().isGesturePlaying(gesture_id);
- }
- else
- {
- llwarns << "isGesturePlaying did not find a gesture object for " << gesture_id << llendl;
- }
- }
- else
- {
- llwarns << "isGesturePlaying didn't have 'id' value passed in" << llendl;
- }
-
- LLSD reply = LLSD::emptyMap();
- reply["playing"] = (LLSD::Boolean) is_playing;
- sendReply(reply, event_data);
-}
-
-
-// "startGesture" command
-void LLGestureListener::startGesture(LLSD const & event_data) const
-{
- startOrStopGesture(event_data, true);
-}
-
-
-// "stopGesture" command
-void LLGestureListener::stopGesture(LLSD const & event_data) const
-{
- startOrStopGesture(event_data, false);
-}
-
-
-// Real code for "startGesture" or "stopGesture"
-void LLGestureListener::startOrStopGesture(LLSD const & event_data, bool start) const
-{
- if (event_data.has("id"))
- {
- LLUUID gesture_id = event_data["id"].asUUID();
- if (gesture_id.notNull())
- {
- if (start)
- {
- LLGestureMgr::instance().playGesture(gesture_id);
- }
- else
- {
- LLGestureMgr::instance().stopGesture(gesture_id);
- }
- }
- else
- {
- llwarns << "startOrStopGesture did not find a gesture object for " << gesture_id << llendl;
- }
- }
- else
- {
- llwarns << "startOrStopGesture didn't have 'id' value passed in" << llendl;
- }
-}
-
+/**
+ * @file llgesturelistener.cpp
+ * @author Dave Simmons
+ * @date 2011-03-28
+ * @brief Implementation for LLGestureListener.
+ *
+ * $LicenseInfo:firstyear=2011&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2011, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llgesturelistener.h"
+#include "llgesturemgr.h"
+#include "llmultigesture.h"
+
+
+LLGestureListener::LLGestureListener()
+ : LLEventAPI("LLGesture",
+ "LLGesture listener interface to control gestures")
+{
+ add("getActiveGestures",
+ "Return information about the agent's available gestures [\"reply\"]:\n"
+ "[\"gestures\"]: a dictionary with UUID strings as keys\n"
+ " and the following dict values for each entry:\n"
+ " [\"name\"]: name of the gesture, may be empty\n"
+ " [\"trigger\"]: trigger string used to invoke via user chat, may be empty\n"
+ " [\"playing\"]: true or false indicating the playing state",
+ &LLGestureListener::getActiveGestures,
+ LLSDMap("reply", LLSD()));
+ add("isGesturePlaying",
+ "[\"id\"]: UUID of the gesture to query. Returns True or False in [\"playing\"] value of the result",
+ &LLGestureListener::isGesturePlaying);
+ add("startGesture",
+ "[\"id\"]: UUID of the gesture to start playing",
+ &LLGestureListener::startGesture);
+ add("stopGesture",
+ "[\"id\"]: UUID of the gesture to stop",
+ &LLGestureListener::stopGesture);
+}
+
+
+// "getActiveGestures" command
+void LLGestureListener::getActiveGestures(const LLSD& event_data) const
+{
+ LLSD reply = LLSD::emptyMap();
+ LLSD gesture_map = LLSD::emptyMap();
+
+ const LLGestureMgr::item_map_t& active_gestures = LLGestureMgr::instance().getActiveGestures();
+
+ // Scan active gesture map and get all the names
+ LLGestureMgr::item_map_t::const_iterator it;
+ for (it = active_gestures.begin(); it != active_gestures.end(); ++it)
+ {
+ LLMultiGesture* gesture = (*it).second;
+ if (gesture)
+ { // Add an entry to the result map with the LLUUID as key with a map containing data
+ LLSD info = LLSD::emptyMap();
+ info["name"] = (LLSD::String) gesture->mName;
+ info["trigger"] = (LLSD::String) gesture->mTrigger;
+ info["playing"] = (LLSD::Boolean) gesture->mPlaying;
+
+ gesture_map[(*it).first.asString()] = info;
+ }
+ }
+
+ reply["gestures"] = gesture_map;
+ sendReply(reply, event_data);
+}
+
+
+
+// "isGesturePlaying" command
+void LLGestureListener::isGesturePlaying(const LLSD& event_data) const
+{
+ bool is_playing = false;
+ if (event_data.has("id"))
+ {
+ LLUUID gesture_id = event_data["id"].asUUID();
+ if (gesture_id.notNull())
+ {
+ is_playing = LLGestureMgr::instance().isGesturePlaying(gesture_id);
+ }
+ else
+ {
+ llwarns << "isGesturePlaying did not find a gesture object for " << gesture_id << llendl;
+ }
+ }
+ else
+ {
+ llwarns << "isGesturePlaying didn't have 'id' value passed in" << llendl;
+ }
+
+ LLSD reply = LLSD::emptyMap();
+ reply["playing"] = (LLSD::Boolean) is_playing;
+ sendReply(reply, event_data);
+}
+
+
+// "startGesture" command
+void LLGestureListener::startGesture(LLSD const & event_data) const
+{
+ startOrStopGesture(event_data, true);
+}
+
+
+// "stopGesture" command
+void LLGestureListener::stopGesture(LLSD const & event_data) const
+{
+ startOrStopGesture(event_data, false);
+}
+
+
+// Real code for "startGesture" or "stopGesture"
+void LLGestureListener::startOrStopGesture(LLSD const & event_data, bool start) const
+{
+ if (event_data.has("id"))
+ {
+ LLUUID gesture_id = event_data["id"].asUUID();
+ if (gesture_id.notNull())
+ {
+ if (start)
+ {
+ LLGestureMgr::instance().playGesture(gesture_id);
+ }
+ else
+ {
+ LLGestureMgr::instance().stopGesture(gesture_id);
+ }
+ }
+ else
+ {
+ llwarns << "startOrStopGesture did not find a gesture object for " << gesture_id << llendl;
+ }
+ }
+ else
+ {
+ llwarns << "startOrStopGesture didn't have 'id' value passed in" << llendl;
+ }
+}
+