--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/front_idill/extern/fajran-npTuioClient/src/pluginbase.h Fri Apr 06 10:44:54 2012 +0200
@@ -0,0 +1,90 @@
+//
+// Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#ifndef PLUGINBASE_H_
+#define PLUGINBASE_H_
+
+#include <npapi.h>
+#include <npupp.h>
+#include <npruntime.h>
+
+#ifndef HIBYTE
+#define HIBYTE(i) (i >> 8)
+#endif
+
+#ifndef LOBYTE
+#define LOBYTE(i) (i & 0xff)
+#endif
+
+struct nsPluginCreateData
+{
+ NPP instance;
+ NPMIMEType type;
+ uint16 mode;
+ int16 argc;
+ char** argn;
+ char** argv;
+ NPSavedData* saved;
+};
+
+class nsPluginInstanceBase
+{
+ public:
+ virtual ~nsPluginInstanceBase() { return; }
+
+ // these three methods must be implemented in the derived
+ // class platform specific way
+ virtual NPBool init(NPWindow* aWindow) = 0;
+ virtual void shut() = 0;
+ virtual NPBool isInitialized() = 0;
+
+ // implement all or part of those methods in the derived
+ // class as needed
+ virtual NPError SetWindow(NPWindow* /*pNPWindow*/) { return NPERR_NO_ERROR; }
+ virtual NPError WriteStatus(const char* /*msg*/) const { return NPERR_NO_ERROR; }
+ virtual NPError NewStream(NPMIMEType /*type*/, NPStream* /*stream*/,
+ NPBool /*seekable*/, uint16* /*stype*/) { return NPERR_NO_ERROR; }
+ virtual NPError DestroyStream(NPStream* /*stream*/, NPError /*reason*/) { return NPERR_NO_ERROR; }
+ virtual void StreamAsFile(NPStream* /*stream*/, const char* /*fname*/) { return; }
+ virtual int32_t WriteReady(NPStream* /*stream*/) { return 0x0fffffff; }
+ virtual int32 Write(NPStream* /*stream*/, int32 /*offset*/,
+ int32 len, void* /*buffer*/) { return len; }
+ virtual void Print(NPPrint* /*printInfo*/) { return; }
+ virtual uint16 HandleEvent(void* /*event*/) { return 0; }
+ virtual void URLNotify(const char* /*url*/, NPReason /*reason*/,
+ void* /*notifyData*/) { return; }
+ virtual NPError GetValue(NPPVariable /*variable*/, void* /*value*/) { return NPERR_NO_ERROR; }
+ virtual NPError SetValue(NPNVariable /*variable*/, void* /*value*/) { return NPERR_NO_ERROR; }
+};
+
+// functions that should be implemented for each specific plugin
+
+// creation and destruction of the object of the derived class
+nsPluginInstanceBase * NS_NewPluginInstance(nsPluginCreateData * aCreateDataStruct);
+void NS_DestroyPluginInstance(nsPluginInstanceBase * aPlugin);
+
+// global plugin initialization and shutdown
+NPError NS_PluginInitialize();
+void NS_PluginShutdown();
+
+// FIXME #ifdef XP_UNIX
+// global to get plugins name & description
+NPError NS_PluginGetValue(NPPVariable aVariable, void *aValue);
+// FIXME #endif
+
+#endif // __PLUGININSTANCEBASE_H__