mirror of
				https://github.com/dolphin-emu/dolphin.git
				synced 2025-10-25 09:29:43 +00:00 
			
		
		
		
	git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5614 8ced0084-cf51-0410-be5f-012b33b47a6e
		
			
				
	
	
		
			75 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (C) 2003 Dolphin Project.
 | |
| 
 | |
| // 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, version 2.0.
 | |
| 
 | |
| // 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 2.0 for more details.
 | |
| 
 | |
| // A copy of the GPL 2.0 should have been included with the program.
 | |
| // If not, see http://www.gnu.org/licenses/
 | |
| 
 | |
| // Official SVN repository and contact information can be found at
 | |
| // http://code.google.com/p/dolphin-emu/
 | |
| 
 | |
| #ifndef _PLUGIN_H_
 | |
| #define _PLUGIN_H_
 | |
| 
 | |
| #include "Common.h"
 | |
| #include "PluginSpecs.h"
 | |
| #include "DynamicLibrary.h"
 | |
| 
 | |
| namespace Common
 | |
| {
 | |
| 	typedef void (__cdecl * TGetDllInfo)(PLUGIN_INFO*);
 | |
| 	typedef void (__cdecl * TDllConfig)(HWND);
 | |
| 	typedef void (__cdecl * TDllDebugger)(HWND, bool);
 | |
| 	typedef void (__cdecl * TSetDllGlobals)(PLUGIN_GLOBALS*);
 | |
| 	typedef void (__cdecl * TInitialize)(void *);
 | |
| 	typedef void (__cdecl * TShutdown)();
 | |
| 	typedef void (__cdecl * TDoState)(unsigned char**, int);
 | |
| 	typedef void (__cdecl * TEmuStateChange)(PLUGIN_EMUSTATE);
 | |
| 
 | |
| class CPlugin
 | |
| {
 | |
| public:
 | |
| 	CPlugin(const char* _szName);
 | |
| 	virtual ~CPlugin();
 | |
| 
 | |
| 	// This functions is only used when CPlugin is called directly, when a parent class like PluginVideo
 | |
| 	// is called its own IsValid() will be called. 
 | |
| 	virtual bool IsValid() { return valid; };
 | |
| 	const std::string& GetFilename() const { return Filename; }
 | |
| 	bool GetInfo(PLUGIN_INFO& _pluginInfo);
 | |
| 	void SetGlobals(PLUGIN_GLOBALS* _PluginGlobals);
 | |
| 	void *LoadSymbol(const char *sym);
 | |
| 
 | |
| 	void Config(HWND _hwnd);
 | |
| 	void About(HWND _hwnd);
 | |
| 	void Debug(HWND _hwnd, bool Show);
 | |
| 	void DoState(unsigned char **ptr, int mode);
 | |
| 	void EmuStateChange(PLUGIN_EMUSTATE newState);
 | |
| 	void Initialize(void *init);
 | |
| 	void Shutdown();
 | |
| 
 | |
| private:
 | |
| 	DynamicLibrary m_hInstLib;
 | |
| 	std::string Filename;
 | |
| 	bool valid;
 | |
| 
 | |
| 	// Functions
 | |
| 	TGetDllInfo m_GetDllInfo;
 | |
| 	TDllConfig m_DllConfig;
 | |
| 	TDllDebugger m_DllDebugger;
 | |
| 	TSetDllGlobals m_SetDllGlobals;
 | |
| 	TInitialize m_Initialize;
 | |
| 	TShutdown m_Shutdown;
 | |
| 	TDoState m_DoState;
 | |
| 	TEmuStateChange m_EmuStateChange;
 | |
| };
 | |
| } // Namespace
 | |
| 
 | |
| #endif // _PLUGIN_H_
 |