summaryrefslogtreecommitdiff
path: root/trunk/browser-plugin/totemNarrowSpacePlugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/browser-plugin/totemNarrowSpacePlugin.cpp')
-rw-r--r--trunk/browser-plugin/totemNarrowSpacePlugin.cpp989
1 files changed, 989 insertions, 0 deletions
diff --git a/trunk/browser-plugin/totemNarrowSpacePlugin.cpp b/trunk/browser-plugin/totemNarrowSpacePlugin.cpp
new file mode 100644
index 000000000..6170ab40d
--- /dev/null
+++ b/trunk/browser-plugin/totemNarrowSpacePlugin.cpp
@@ -0,0 +1,989 @@
+/* Totem Basic Plugin
+ *
+ * Copyright (C) 2004 Bastien Nocera <hadess@hadess.net>
+ * Copyright (C) 2002 David A. Schleef <ds@schleef.org>
+ * Copyright (C) 2006 Christian Persch
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * $Id$
+ */
+
+#include <mozilla-config.h>
+#include "config.h"
+
+#include <glib.h>
+
+#include <nsIProgrammingLanguage.h>
+#include <nsISupportsImpl.h>
+#include <nsMemory.h>
+#include <nsXPCOM.h>
+
+#define GNOME_ENABLE_DEBUG 1
+/* define GNOME_ENABLE_DEBUG for more debug spew */
+#include "debug.h"
+
+#include "totemClassInfo.h"
+#include "totemNarrowSpacePlugin.h"
+
+
+#define WARN_UNIMPLEMENTED()\
+static PRBool warned = PR_FALSE;\
+if (!warned) {\
+ D ("NarrowSpace scriptable: use of unimplemented function '%s'", __FUNCTION__);\
+ warned = PR_TRUE;\
+}
+
+#define SHOW_CALLS
+
+#ifdef SHOW_CALLS
+#define SHOW_CALL()\
+static PRBool called = PR_FALSE;\
+if (!called) {\
+ D ("NOTE! Use of function 'totemINarrowSpace::%s'", __FUNCTION__);\
+ called = PR_TRUE;\
+}
+#else
+#define SHOW_CALL()
+#endif
+
+/* 2e390ee1-f0e3-423c-9764-f5ab50a40c06 */
+static const nsCID kClassID =
+{ 0x2e390ee1, 0xf0e3, 0x423c, \
+ { 0x97, 0x64, 0xf5, 0xab, 0x50, 0xa4, 0x0c, 0x06 } };
+
+static const char kClassDescription[] = "totemNarrowSpacePlugin";
+static const char kPluginDescription[] = "QuickTime Plug-in 7.1.3";
+
+static const totemPluginMimeEntry kMimeTypes[] = {
+ { "video/quicktime", "mov", NULL, FALSE },
+ { "video/mp4", "mp4", NULL, FALSE },
+ { "image/x-macpaint", "pntg", NULL, FALSE },
+ { "image/x-quicktime", "pict, pict1, pict2", "image/x-pict", FALSE },
+ { "application/x-quicktime-media-link", "qtl", NULL, TRUE }
+};
+
+void*
+totemScriptablePlugin::operator new (size_t aSize) CPP_THROW_NEW
+{
+ void *object = ::operator new (aSize);
+ if (object) {
+ memset (object, 0, aSize);
+ }
+
+ return object;
+}
+
+totemScriptablePlugin::totemScriptablePlugin (totemPlugin *aPlugin)
+ : mPlugin(aPlugin),
+ mRate(1.0),
+ mVolume(100),
+ mPluginState(eState_Waiting)
+{
+ D ("%s ctor [%p]", kClassDescription, (void*) this);
+}
+
+totemScriptablePlugin::~totemScriptablePlugin ()
+{
+ D ("%s dtor [%p]", kClassDescription, (void*) this);
+}
+
+/* static */ char *
+totemScriptablePlugin::PluginDescription ()
+{
+ return (char*) kPluginDescription;
+}
+
+/* static */ void
+totemScriptablePlugin::PluginMimeTypes (const totemPluginMimeEntry **_entries,
+ PRUint32 *_count)
+{
+ *_entries = kMimeTypes;
+ *_count = G_N_ELEMENTS (kMimeTypes);
+}
+
+/* Interface implementations */
+
+NS_IMPL_ISUPPORTS2 (totemScriptablePlugin,
+ totemINarrowSpacePlayer,
+ nsIClassInfo)
+
+/* nsIClassInfo */
+
+TOTEM_CLASSINFO_BEGIN (totemScriptablePlugin,
+ 1,
+ kClassID,
+ kClassDescription)
+ TOTEM_CLASSINFO_ENTRY (0, totemINarrowSpacePlayer)
+TOTEM_CLASSINFO_END
+
+/* totemINarrowSpacePlayer */
+
+/* boolean GetAutoPlay (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetAutoPlay(PRBool *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ *_retval = mAutoPlay;
+ return NS_OK;
+}
+
+/* void SetAutoPlay (in boolean enabled); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetAutoPlay(PRBool enabled)
+{
+ WARN_UNIMPLEMENTED();
+
+ mAutoPlay = enabled != PR_FALSE;
+ return NS_OK;
+}
+
+/* ACString GetBgColor (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetBgColor(nsACString & _retval)
+{
+ SHOW_CALL ();
+
+ _retval.Assign (mBackgroundColour);
+ return NS_OK;
+}
+
+/* void SetBgColor (in ACString colour); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetBgColor(const nsACString & colour)
+{
+ WARN_UNIMPLEMENTED();
+
+ mBackgroundColour = colour;
+ return NS_OK;
+}
+
+/* ACString GetComponentVersion (in ACString type, in ACString subtype, in ACString vendor); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetComponentVersion (const nsACString & type,
+ const nsACString & subtype,
+ const nsACString & vendor,
+ nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED ();
+ D ("GetComponentVersion [%s, %s, %s]",
+ nsCString(type).get(),
+ nsCString(subtype).get(),
+ nsCString(vendor).get());
+
+ _retval.Assign ("1.0");
+ return NS_OK;
+}
+
+/* boolean GetControllerVisible (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetControllerVisible(PRBool *_retval)
+{
+ SHOW_CALL ();
+ *_retval = mControllerVisible;
+ return NS_OK;
+}
+
+/* void SetControllerVisible (in boolean enabled); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetControllerVisible(PRBool enabled)
+{
+ WARN_UNIMPLEMENTED();
+
+ mControllerVisible = enabled != PR_FALSE;
+ return NS_OK;
+}
+
+/* unsigned long GetDuration (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetDuration(PRUint32 *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ *_retval = 0;
+ return NS_OK;
+}
+
+/* unsigned long GetEndTime (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetEndTime(PRUint32 *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ *_retval = 0;
+ return NS_OK;
+}
+
+/* void SetEndTime (in unsigned long time); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetEndTime(PRUint32 time)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* float GetFieldOfView (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetFieldOfView (float *_retval)
+{
+ SHOW_CALL ();
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* void SetFieldOfView (in float angle); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetFieldOfView(float angle)
+{
+ SHOW_CALL ();
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* void GoPreviousNode (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GoPreviousNode()
+{
+ SHOW_CALL ();
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* AUTF8String GetHotspotTarget (in unsigned long id); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetHotspotTarget(PRUint32 id, nsACString & _retval)
+{
+ SHOW_CALL ();
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* void SetHotspotTarget (in unsigned long id, in AUTF8String target); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetHotspotTarget(PRUint32 id, const nsACString & target)
+{
+ SHOW_CALL ();
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* AUTF8String GetHotspotUrl (in unsigned long id); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetHotspotUrl(PRUint32 id, nsACString & _retval)
+{
+ SHOW_CALL ();
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* void SetHotspotUrl (in unsigned long id, in AUTF8String url); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetHotspotUrl(PRUint32 id, const nsACString & url)
+{
+ SHOW_CALL ();
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* AUTF8String GetHREF (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetHREF(nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* void SetHREF (in AUTF8String href); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetHREF(const nsACString & href)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* boolean GetIsLooping (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetIsLooping(PRBool *_retval)
+{
+ SHOW_CALL ();
+
+ *_retval = mIsLooping;
+ return NS_OK;
+}
+
+/* void SetIsLooping (in boolean enabled); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetIsLooping(PRBool enabled)
+{
+ WARN_UNIMPLEMENTED();
+
+ mIsLooping = enabled != PR_FALSE;
+ return NS_OK;
+}
+
+/* boolean GetIsQuickTimeRegistered (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetIsQuickTimeRegistered(PRBool *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ *_retval = PR_FALSE;
+ return NS_OK;
+}
+
+/* boolean GetIsVRMovie (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetIsVRMovie(PRBool *_retval)
+{
+ SHOW_CALL ();
+
+ *_retval = PR_FALSE;
+ return NS_OK;
+}
+
+/* boolean GetKioskMode (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetKioskMode(PRBool *_retval)
+{
+ SHOW_CALL ();
+
+ *_retval = mKioskMode;
+ return NS_OK;
+}
+
+/* void SetKioskMode (in boolean enabled); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetKioskMode(PRBool enabled)
+{
+ WARN_UNIMPLEMENTED();
+
+ mKioskMode = enabled != PR_FALSE;
+ return NS_OK;
+}
+
+/* ACString GetLanguage (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetLanguage(nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ _retval.Assign ("English");
+ return NS_OK;
+}
+
+/* void SetLanguage (in ACString language); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetLanguage(const nsACString & language)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* boolean GetLoopIsPalindrome (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetLoopIsPalindrome(PRBool *_retval)
+{
+ SHOW_CALL ();
+
+ *_retval = mLoopIsPalindrome;
+ return NS_OK;
+}
+
+/* void SetLoopIsPalindrome (in boolean enabled); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetLoopIsPalindrome(PRBool enabled)
+{
+ WARN_UNIMPLEMENTED();
+
+ mLoopIsPalindrome = enabled != PR_FALSE;
+ return NS_OK;
+}
+
+/* ACString GetMatrix (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetMatrix(nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ _retval.Assign (mMatrix);
+ return NS_OK;
+}
+
+/* void SetMatrix (in ACString matrix); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetMatrix(const nsACString & matrix)
+{
+ WARN_UNIMPLEMENTED();
+
+ mMatrix = matrix;
+ return NS_OK;
+}
+
+/* unsigned long GetMaxBytesLoaded (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetMaxBytesLoaded(PRUint32 *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* unsigned long GetMaxTimeLoaded (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetMaxTimeLoaded(PRUint32 *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* ACString GetMIMEType (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetMIMEType(nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ _retval.Assign ("video/quicktime");
+ return NS_OK;
+}
+
+/* unsigned long GetMovieID (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetMovieID(PRUint32 *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* void SetMovieID (in unsigned long id); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetMovieID(PRUint32 id)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* AUTF8String GetMovieName (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetMovieName(nsACString & _retval)
+{
+ SHOW_CALL ();
+
+ _retval.Assign (mMovieName);
+ return NS_OK;
+}
+
+/* void SetMovieName (in AUTF8String name); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetMovieName(const nsACString & name)
+{
+ WARN_UNIMPLEMENTED();
+
+ mMovieName = name;
+ return NS_OK;
+}
+
+/* unsigned long GetMovieSize (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetMovieSize(PRUint32 *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ *_retval = 0;
+ return NS_OK;
+}
+
+/* boolean GetMute (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetMute(PRBool *_retval)
+{
+ SHOW_CALL ();
+
+ *_retval = mMute;
+ return NS_OK;
+}
+
+/* void SetMute (in boolean enabled); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetMute(PRBool enabled)
+{
+ WARN_UNIMPLEMENTED();
+
+ mMute = enabled != PR_FALSE;
+ return NS_OK;
+}
+
+/* unsigned long GetNodeCount (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetNodeCount(PRUint32 *_retval)
+{
+ SHOW_CALL ();
+
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* unsigned long GetNodeID (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetNodeID(PRUint32 *_retval)
+{
+ SHOW_CALL ();
+
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* void SetNodeID (in unsigned long id); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetNodeID(PRUint32 id)
+{
+ SHOW_CALL ();
+
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* float GetPanAngle (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetPanAngle(float *_retval)
+{
+ SHOW_CALL ();
+
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* void SetPanAngle (in float angle); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetPanAngle(float angle)
+{
+ SHOW_CALL ();
+
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* void Play (); */
+NS_IMETHODIMP
+totemScriptablePlugin::Play ()
+{
+ SHOW_CALL ();
+
+ NS_ENSURE_STATE (IsValid ());
+
+ return mPlugin->DoCommand (TOTEM_COMMAND_PLAY);
+}
+
+/* boolean GetPlayEveryFrame (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetPlayEveryFrame(PRBool *_retval)
+{
+ SHOW_CALL ();
+
+ *_retval = mPlayEveryFrame;
+ return NS_OK;
+}
+
+/* void SetPlayEveryFrame (in boolean enabled); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetPlayEveryFrame(PRBool enabled)
+{
+ WARN_UNIMPLEMENTED();
+
+ mPlayEveryFrame = enabled != PR_FALSE;
+ return NS_OK;
+}
+
+/* ACString GetPluginStatus (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetPluginStatus(nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ static const char *kState[] = {
+ "Complete",
+ "Error:<%d>",
+ "Loading",
+ "Playable",
+ "Waiting"
+ };
+
+ if (mPluginState != eState_Error) {
+ _retval.Assign (kState[mPluginState]);
+ } else {
+ /* FIXME */
+ _retval.Assign ("Error:<1>");
+ }
+ return NS_OK;
+}
+
+/* ACString GetPluginVersion (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetPluginVersion(nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ _retval.Assign ("7.0"); /* FIXME */
+ return NS_OK;
+}
+
+/* AUTF8String GetQTNEXTUrl (in unsigned long index); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetQTNEXTUrl (PRUint32 index,
+ nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* void SetQTNEXTUrl (in unsigned long index, in AUTF8String url); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetQTNEXTUrl (PRUint32 index,
+ const nsACString & url)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* unsigned long GetQuickTimeConnectionSpeed (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetQuickTimeConnectionSpeed(PRUint32 *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ *_retval = 300000; /* FIXME */
+ return NS_OK;
+}
+
+/* ACString GetQuickTimeLanguage (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetQuickTimeLanguage(nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ _retval.Assign ("English"); /* FIXME */
+ return NS_OK;
+}
+
+/* ACString GetQuickTimeVersion (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetQuickTimeVersion(nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ _retval.Assign ("7.0"); /* FIXME */
+ return NS_OK;
+}
+
+/* float GetRate (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetRate(float *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ *_retval = mRate;
+ return NS_OK;
+}
+
+/* void SetRate (in float rate); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetRate(float rate)
+{
+ WARN_UNIMPLEMENTED();
+
+ mRate = rate;
+ return NS_OK;
+}
+
+/* void SetRectangle (in ACString rectangle); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetRectangle(const nsACString & rectangle)
+{
+ WARN_UNIMPLEMENTED();
+
+ mRectangle = rectangle;
+ return NS_OK;
+}
+
+/* ACString GetRectangle (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetRectangle(nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ _retval.Assign (mRectangle);
+ return NS_OK;
+}
+
+/* boolean GetResetPropertiesOnReload (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetResetPropertiesOnReload(PRBool *_retval)
+{
+ SHOW_CALL ();
+
+ *_retval = mResetPropertiesOnReload;
+ return NS_OK;
+}
+
+/* void SetResetPropertiesOnReload (in boolean enabled); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetResetPropertiesOnReload(PRBool enabled)
+{
+ WARN_UNIMPLEMENTED();
+
+ mResetPropertiesOnReload = enabled != PR_FALSE;
+ return NS_OK;
+}
+
+/* void Rewind (); */
+NS_IMETHODIMP
+totemScriptablePlugin::Rewind ()
+{
+ SHOW_CALL ();
+
+ NS_ENSURE_STATE (IsValid ());
+
+ return mPlugin->DoCommand (TOTEM_COMMAND_PAUSE);
+}
+
+/* void ShowDefaultView (); */
+NS_IMETHODIMP
+totemScriptablePlugin::ShowDefaultView()
+{
+ SHOW_CALL ();
+
+ return NS_OK;
+}
+
+/* ACString GetSpriteTrackVariable (in unsigned long track, in unsigned long index); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetSpriteTrackVariable (PRUint32 track,
+ PRUint32 index,
+ nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* void SetSpriteTrackVariable (in unsigned long track, in unsigned long index, in ACString value); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetSpriteTrackVariable (PRUint32 track,
+ PRUint32 index,
+ const nsACString & value)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* void SetStartTime (in unsigned long time); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetStartTime(PRUint32 time)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* unsigned long GetStartTime (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetStartTime (PRUint32 *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ *_retval = 0; /* FIXME */
+ return NS_OK;
+}
+
+/* void Step (in long steps); */
+NS_IMETHODIMP
+totemScriptablePlugin::Step(PRInt32 steps)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* void Stop (); */
+NS_IMETHODIMP
+totemScriptablePlugin::Stop ()
+{
+ SHOW_CALL ();
+
+ NS_ENSURE_STATE (IsValid ());
+
+ return mPlugin->DoCommand (TOTEM_COMMAND_STOP);
+}
+
+/* AUTF8String GetTarget (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetTarget(nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* void SetTarget (in AUTF8String target); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetTarget(const nsACString & target)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* float GetTiltAngle (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetTiltAngle(float *_retval)
+{
+ SHOW_CALL ();
+
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* void SetTiltAngle (in float angle); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetTiltAngle(float angle)
+{
+ SHOW_CALL ();
+
+ return NS_ERROR_NOT_AVAILABLE;
+}
+
+/* unsigned long GetTime (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetTime(PRUint32 *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ *_retval = 0;
+ return NS_OK;
+}
+
+/* void SetTime (in unsigned long time); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetTime(PRUint32 time)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* unsigned long GetTimeScale (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetTimeScale(PRUint32 *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ *_retval = 0;
+ return NS_OK;
+}
+
+/* unsigned long GetTrackCount (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetTrackCount(PRUint32 *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ *_retval = 1;
+ return NS_OK;
+}
+
+/* boolean GetTrackEnabled (in unsigned long index); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetTrackEnabled (PRUint32 index,
+ PRBool *_retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ *_retval = PR_TRUE;
+ return NS_OK;
+}
+
+/* void SetTrackEnabled (in unsigned long index, in boolean enabled); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetTrackEnabled (PRUint32 index,
+ PRBool enabled)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* AUTF8String GetTrackName (in unsigned long index); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetTrackName (PRUint32 index,
+ nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* AUTF8String GetTrackType (in unsigned long index); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetTrackType (PRUint32 index,
+ nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* AUTF8String GetURL (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetURL (nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* void SetURL (in AUTF8String url); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetURL (const nsACString & url)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* AUTF8String GetUserData (in AUTF8String identifier); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetUserData (const nsACString & identifier,
+ nsACString & _retval)
+{
+ WARN_UNIMPLEMENTED();
+
+ return NS_OK;
+}
+
+/* unsigned long GetVolume (); */
+NS_IMETHODIMP
+totemScriptablePlugin::GetVolume(PRUint32 *_retval)
+{
+ *_retval = mVolume;
+ return NS_OK;
+}
+
+/* void SetVolume (in unsigned long volume); */
+NS_IMETHODIMP
+totemScriptablePlugin::SetVolume(PRUint32 volume)
+{
+ WARN_UNIMPLEMENTED();
+
+ mVolume = volume;
+ return NS_OK;
+}