/* -----------------------------------------------------------------------------
	GSFramework
	Copyright 2001-2012 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */


#ifndef	__WebcamSCRIPTBINDINGINTERFACE__
#define	__WebcamSCRIPTBINDINGINTERFACE__

#include	"script/script_binding_interface.h"
#include	"script_squirrel/cobject/squirrel_bindings_utils.h"


class	nScriptVM;

/// Interface to provide additional script binding to a VM.
struct	nWebcamPluginScriptBinding: public GS::Script::BindingPluginManager::Plugin
{
		/// Return the plugin class.
static	const char	*GetPluginClass() { return "ScriptBinding"; }
		/*!
			@short Return the plugin version.

			@note This version number must be increased whenever a modification
			is made to the base interface in order to prevent incompatible
			plugins from being loaded.
		*/
static	uint		GetPluginVersion() { return 1; }

		/// Register the new script binding code into the VM.
virtual	void		RegisterBinding(GS::Script::IVM &);
};

typedef GS::PluginManager <nWebcamPluginScriptBinding> nWebcamScriptBindingPluginManager;


#endif	// __WebcamSCRIPTBINDINGINTERFACE__
