summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerparcelmedia.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewerparcelmedia.h')
-rw-r--r--indra/newview/llviewerparcelmedia.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/indra/newview/llviewerparcelmedia.h b/indra/newview/llviewerparcelmedia.h
new file mode 100644
index 0000000000..bf391a83cb
--- /dev/null
+++ b/indra/newview/llviewerparcelmedia.h
@@ -0,0 +1,52 @@
+/**
+ * @file llviewerparcelmedia.h
+ * @author Callum Prentice & James Cook
+ * @brief Handlers for multimedia on a per-parcel basis
+ *
+ * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+#ifndef LLVIEWERPARCELMEDIA_H
+#define LLVIEWERPARCELMEDIA_H
+
+#include "llmediabase.h"
+
+class LLMessageSystem;
+class LLParcel;
+
+// This class understands land parcels, network traffic, LSL media
+// transport commands, and talks to the LLViewerMedia class to actually
+// do playback. It allows us to remove code from LLViewerParcelMgr.
+class LLViewerParcelMedia
+{
+ public:
+ static void initClass();
+
+ static void update(LLParcel* parcel);
+ // called when the agent's parcel has a new URL, or the agent has
+ // walked on to a new parcel with media
+
+ static void play(LLParcel* parcel);
+ // user clicked play button in media transport controls
+
+ static void stop();
+ // user clicked stop button in media transport controls
+
+ static void pause();
+ static void start();
+ // restart after pause - no need for all the setup
+
+ static void seek(F32 time);
+ // jump to timecode time
+
+ static LLMediaBase::EStatus getStatus();
+
+ static void processParcelMediaCommandMessage( LLMessageSystem *msg, void ** );
+ static void processParcelMediaUpdate( LLMessageSystem *msg, void ** );
+
+ public:
+ static S32 sMediaParcelLocalID;
+ static LLUUID sMediaRegionID;
+};
+
+#endif