From 71c1ae31007891ecfd59236ba8564bc4b5deb1e4 Mon Sep 17 00:00:00 2001
From: Ian C <ianc@noddybox.co.uk>
Date: Fri, 15 Apr 2005 00:53:56 +0000
Subject: Initial import

---
 wrapper/.cvsignore  |  3 +++
 wrapper/makefile    | 33 +++++++++++++++++++++++++
 wrapper/mingwms.cpp | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 wrapper/mingwms.h   | 65 +++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 171 insertions(+)
 create mode 100644 wrapper/.cvsignore
 create mode 100644 wrapper/makefile
 create mode 100644 wrapper/mingwms.cpp
 create mode 100644 wrapper/mingwms.h

(limited to 'wrapper')

diff --git a/wrapper/.cvsignore b/wrapper/.cvsignore
new file mode 100644
index 0000000..9af734a
--- /dev/null
+++ b/wrapper/.cvsignore
@@ -0,0 +1,3 @@
+mingwms.lib
+mingwms.exp
+mingwms.dll
\ No newline at end of file
diff --git a/wrapper/makefile b/wrapper/makefile
new file mode 100644
index 0000000..fb0d73a
--- /dev/null
+++ b/wrapper/makefile
@@ -0,0 +1,33 @@
+#  MSPlugins - This makefile makes a DLL that allows MINGW Milkshape plugins
+#	       to be written.
+#
+#  Copyright (C) 2005  Ian Cowburn (ianc@noddybox.demon.co.uk)
+#
+#  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 2 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+#  -------------------------------------------------------------------------
+#
+#  $Id: makefile,v 1.1 2005-04-15 00:53:56 ianc Exp $
+#
+
+!INCLUDE ../make.conf
+
+mingwms.dll: mingwms.cpp mingwms.h
+	cl /LD /I$(MILKSHAPE) /DBUILDDLL mingwms.cpp
+
+clean:
+	del mingwms.dll mingwms.exp mingwms.lib mingwms.obj
+
+# END OF FILE
diff --git a/wrapper/mingwms.cpp b/wrapper/mingwms.cpp
new file mode 100644
index 0000000..e0d9458
--- /dev/null
+++ b/wrapper/mingwms.cpp
@@ -0,0 +1,70 @@
+//  MSPlugins - MINGW Milkshape wrapper
+//
+//  Copyright (C) 2005  Ian Cowburn (ianc@noddybox.demon.co.uk)
+//
+//  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 2 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+//
+//  -------------------------------------------------------------------------
+//
+static const char rcs_id[]="$Id$";
+
+#include <msPlugin.h>
+#include "mingwms.h"
+
+class MingwPlugin : public cMsPlugIn
+{
+public:
+    MingwPlugin(int type, const char * (*GetName)(), int (*Exectute)(msModel*))
+    {
+    	m_type=type;
+	m_getname=GetName;
+	m_execute=Exectute;
+    }
+
+    int GetType()
+    {
+    	return m_type;
+    }
+
+    const char *GetTitle()
+    {
+    	return m_getname();
+    }
+
+    int Execute(msModel *p)
+    {
+    	return m_execute(p);
+    }
+
+private:
+    int 		m_type;
+    const char *	(*m_getname)();
+    int			(*m_execute)(msModel*);
+};
+
+extern "C"
+{
+
+SPEC void *CreateMINGWPlugin (int tool_type,
+			 const char * (*GetName)(),
+			 int (*Exectute)(msModel*))
+{
+    return static_cast<void*>(new MingwPlugin(tool_type,GetName,Exectute));
+}
+
+}
+
+
+// END OF FILE
diff --git a/wrapper/mingwms.h b/wrapper/mingwms.h
new file mode 100644
index 0000000..1df87d7
--- /dev/null
+++ b/wrapper/mingwms.h
@@ -0,0 +1,65 @@
+//  MSPlugins - MINGW Milkshape wrapper
+//
+//  Copyright (C) 2005  Ian Cowburn (ianc@noddybox.demon.co.uk)
+//
+//  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 2 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+//
+//  -------------------------------------------------------------------------
+//
+#ifndef MINGWMS_H
+
+#define MINGWMS_H "$Id$"
+
+#ifdef BUILDDLL
+#define SPEC __declspec(dllexport)
+#else
+#define SPEC __declspec(dllimport)
+#endif
+
+// Handy #define for defining your plugin
+//
+#define PLUGIN_SPEC	extern "C" __declspec(dllexport)
+
+extern "C"
+{
+
+// These are the tool types
+//
+#define MS_TYPE_IMPORT	1
+#define MS_TYPE_EXPORT	2
+#define MS_TYPE_TOOL	3
+#define MS_TYPE_EDIT	4
+#define MS_TYPE_VERTEX	5
+#define MS_TYPE_FACE	6
+#define MS_TYPE_ANIMATE	7
+
+// Forward definition of the Milkshape model struct.
+//
+struct msModel;
+
+// Call this interface to create a Milkshape compatible cMsPlugIn class.
+//
+SPEC void *CreateMINGWPlugin
+	(int tool_type,			// One of MS_TYPE_xx above.
+	 const char * (*GetName)(),	// Returns the plugin's name.
+	 int (*Exectute)(msModel*));	// Runs the tool.
+	 
+
+}
+
+#endif	// MINGWMS_H
+
+
+// END OF FILE
-- 
cgit v1.2.3