mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 22:29:39 -06:00
CPlugin had a non-virtual destructor. This fixes that, plus reindents a bunch of code.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2332 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -121,7 +121,7 @@ int DynamicLibrary::Unload()
|
||||
#ifdef _WIN32
|
||||
retval = FreeLibrary(library);
|
||||
#else
|
||||
retval = dlclose(library)?0:1;
|
||||
retval = dlclose(library) ? 0 : 1;
|
||||
#endif
|
||||
|
||||
if (!retval)
|
||||
|
@ -67,7 +67,7 @@ CPlugin::CPlugin(const char* _szName) : valid(false)
|
||||
m_Initialize != 0 &&
|
||||
m_Shutdown != 0 &&
|
||||
m_DoState != 0)
|
||||
valid = true;
|
||||
valid = true;
|
||||
|
||||
// Save the filename for this plugin
|
||||
Filename = _szName;
|
||||
@ -83,9 +83,9 @@ bool CPlugin::GetInfo(PLUGIN_INFO& _pluginInfo)
|
||||
{
|
||||
if (m_GetDllInfo != NULL) {
|
||||
m_GetDllInfo(&_pluginInfo);
|
||||
return(true);
|
||||
return true;
|
||||
}
|
||||
return(false);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Config: Open the Config window
|
||||
@ -112,12 +112,8 @@ void CPlugin::DoState(unsigned char **ptr, int mode) {
|
||||
m_DoState(ptr, mode);
|
||||
}
|
||||
|
||||
// Run Initialize() in the plugin
|
||||
void CPlugin::Initialize(void *init)
|
||||
{
|
||||
/* We first check that we have found the Initialize() function, but there
|
||||
is no restriction on running this several times */
|
||||
// Uh, the above comment sounds extremely dubious.
|
||||
if (m_Initialize != NULL)
|
||||
m_Initialize(init);
|
||||
}
|
||||
|
@ -34,41 +34,38 @@ namespace Common
|
||||
|
||||
class CPlugin
|
||||
{
|
||||
public:
|
||||
public:
|
||||
CPlugin(const char* _szName);
|
||||
virtual ~CPlugin();
|
||||
|
||||
CPlugin(const char* _szName);
|
||||
~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; };
|
||||
std::string GetFilename() const { return Filename; }
|
||||
bool GetInfo(PLUGIN_INFO& _pluginInfo);
|
||||
void SetGlobals(PLUGIN_GLOBALS* _PluginGlobals);
|
||||
void *LoadSymbol(const char *sym);
|
||||
|
||||
// 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;};
|
||||
std::string GetFilename() {return Filename;};
|
||||
void Config(HWND _hwnd);
|
||||
void About(HWND _hwnd);
|
||||
void Debug(HWND _hwnd, bool Show);
|
||||
void DoState(unsigned char **ptr, int mode);
|
||||
void Initialize(void *init);
|
||||
void Shutdown();
|
||||
|
||||
bool GetInfo(PLUGIN_INFO& _pluginInfo);
|
||||
void SetGlobals(PLUGIN_GLOBALS* _PluginGlobals);
|
||||
void *LoadSymbol(const char *sym);
|
||||
private:
|
||||
DynamicLibrary m_hInstLib;
|
||||
std::string Filename;
|
||||
bool valid;
|
||||
|
||||
void Config(HWND _hwnd);
|
||||
void About(HWND _hwnd);
|
||||
void Debug(HWND _hwnd, bool Show);
|
||||
void DoState(unsigned char **ptr, int mode);
|
||||
void Initialize(void *init);
|
||||
void Shutdown();
|
||||
|
||||
private:
|
||||
|
||||
DynamicLibrary m_hInstLib;
|
||||
bool valid;
|
||||
std::string Filename;
|
||||
|
||||
// Functions
|
||||
TGetDllInfo m_GetDllInfo;
|
||||
TDllConfig m_DllConfig;
|
||||
TDllDebugger m_DllDebugger;
|
||||
TSetDllGlobals m_SetDllGlobals;
|
||||
TInitialize m_Initialize;
|
||||
TShutdown m_Shutdown;
|
||||
TDoState m_DoState;
|
||||
// Functions
|
||||
TGetDllInfo m_GetDllInfo;
|
||||
TDllConfig m_DllConfig;
|
||||
TDllDebugger m_DllDebugger;
|
||||
TSetDllGlobals m_SetDllGlobals;
|
||||
TInitialize m_Initialize;
|
||||
TShutdown m_Shutdown;
|
||||
TDoState m_DoState;
|
||||
};
|
||||
} // end of namespace Common
|
||||
|
||||
|
@ -2,8 +2,9 @@
|
||||
|
||||
namespace Common {
|
||||
|
||||
PluginDSP::PluginDSP(const char *_Filename) : CPlugin(_Filename), validDSP(false) {
|
||||
|
||||
PluginDSP::PluginDSP(const char *_Filename)
|
||||
: CPlugin(_Filename), validDSP(false)
|
||||
{
|
||||
DSP_ReadMailboxHigh = reinterpret_cast<TDSP_ReadMailBox>
|
||||
(LoadSymbol("DSP_ReadMailboxHigh"));
|
||||
DSP_ReadMailboxLow = reinterpret_cast<TDSP_ReadMailBox>
|
||||
|
@ -18,7 +18,7 @@ class PluginDSP : public CPlugin
|
||||
{
|
||||
public:
|
||||
PluginDSP(const char *_Filename);
|
||||
~PluginDSP();
|
||||
virtual ~PluginDSP();
|
||||
virtual bool IsValid() {return validDSP;};
|
||||
|
||||
TDSP_ReadMailBox DSP_ReadMailboxHigh;
|
||||
|
@ -5,15 +5,16 @@
|
||||
#include "Plugin.h"
|
||||
|
||||
namespace Common {
|
||||
typedef void (__cdecl* TPAD_GetStatus)(u8, SPADStatus*);
|
||||
typedef void (__cdecl* TPAD_Input)(u16, u8);
|
||||
typedef void (__cdecl* TPAD_Rumble)(u8, unsigned int, unsigned int);
|
||||
typedef unsigned int (__cdecl* TPAD_GetAttachedPads)();
|
||||
|
||||
class PluginPAD : public CPlugin {
|
||||
public:
|
||||
|
||||
typedef void (__cdecl* TPAD_GetStatus)(u8, SPADStatus*);
|
||||
typedef void (__cdecl* TPAD_Input)(u16, u8);
|
||||
typedef void (__cdecl* TPAD_Rumble)(u8, unsigned int, unsigned int);
|
||||
typedef unsigned int (__cdecl* TPAD_GetAttachedPads)();
|
||||
|
||||
class PluginPAD : public CPlugin {
|
||||
public:
|
||||
PluginPAD(const char *_Filename);
|
||||
~PluginPAD();
|
||||
virtual ~PluginPAD();
|
||||
virtual bool IsValid() {return validPAD;};
|
||||
|
||||
TPAD_GetStatus PAD_GetStatus;
|
||||
@ -21,10 +22,11 @@ namespace Common {
|
||||
TPAD_Rumble PAD_Rumble;
|
||||
TPAD_GetAttachedPads PAD_GetAttachedPads;
|
||||
|
||||
private:
|
||||
private:
|
||||
bool validPAD;
|
||||
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
#endif
|
||||
|
@ -5,33 +5,35 @@
|
||||
#include "Plugin.h"
|
||||
|
||||
namespace Common {
|
||||
typedef void (__cdecl* TVideo_Prepare)();
|
||||
typedef void (__cdecl* TVideo_SendFifoData)(u8*,u32);
|
||||
typedef void (__cdecl* TVideo_UpdateXFB)(u8*, u32, u32, s32, bool);
|
||||
typedef bool (__cdecl* TVideo_Screenshot)(const char* filename);
|
||||
typedef void (__cdecl* TVideo_EnterLoop)();
|
||||
typedef void (__cdecl* TVideo_ExitLoop)();
|
||||
typedef void (__cdecl* TVideo_AddMessage)(const char* pstr, unsigned int milliseconds);
|
||||
|
||||
class PluginVideo : public CPlugin
|
||||
{
|
||||
public:
|
||||
PluginVideo(const char *_Filename);
|
||||
~PluginVideo();
|
||||
virtual bool IsValid() {return validVideo;};
|
||||
typedef void (__cdecl* TVideo_Prepare)();
|
||||
typedef void (__cdecl* TVideo_SendFifoData)(u8*,u32);
|
||||
typedef void (__cdecl* TVideo_UpdateXFB)(u8*, u32, u32, s32, bool);
|
||||
typedef bool (__cdecl* TVideo_Screenshot)(const char* filename);
|
||||
typedef void (__cdecl* TVideo_EnterLoop)();
|
||||
typedef void (__cdecl* TVideo_ExitLoop)();
|
||||
typedef void (__cdecl* TVideo_AddMessage)(const char* pstr, unsigned int milliseconds);
|
||||
|
||||
TVideo_Prepare Video_Prepare;
|
||||
TVideo_SendFifoData Video_SendFifoData;
|
||||
TVideo_EnterLoop Video_EnterLoop;
|
||||
TVideo_ExitLoop Video_ExitLoop;
|
||||
TVideo_UpdateXFB Video_UpdateXFB;
|
||||
class PluginVideo : public CPlugin
|
||||
{
|
||||
public:
|
||||
PluginVideo(const char *_Filename);
|
||||
virtual ~PluginVideo();
|
||||
virtual bool IsValid() {return validVideo;};
|
||||
|
||||
TVideo_AddMessage Video_AddMessage;
|
||||
TVideo_Screenshot Video_Screenshot;
|
||||
TVideo_Prepare Video_Prepare;
|
||||
TVideo_SendFifoData Video_SendFifoData;
|
||||
TVideo_EnterLoop Video_EnterLoop;
|
||||
TVideo_ExitLoop Video_ExitLoop;
|
||||
TVideo_UpdateXFB Video_UpdateXFB;
|
||||
|
||||
private:
|
||||
bool validVideo;
|
||||
};
|
||||
}
|
||||
TVideo_AddMessage Video_AddMessage;
|
||||
TVideo_Screenshot Video_Screenshot;
|
||||
|
||||
private:
|
||||
bool validVideo;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
#endif
|
||||
|
@ -1,24 +1,27 @@
|
||||
#include "PluginWiimote.h"
|
||||
|
||||
namespace Common {
|
||||
PluginWiimote::PluginWiimote(const char *_Filename) : CPlugin(_Filename), validWiimote(false) {
|
||||
|
||||
|
||||
PluginWiimote::PluginWiimote(const char *_Filename)
|
||||
: CPlugin(_Filename), validWiimote(false)
|
||||
{
|
||||
Wiimote_ControlChannel = reinterpret_cast<TWiimote_Output>
|
||||
(LoadSymbol("Wiimote_ControlChannel"));
|
||||
(LoadSymbol("Wiimote_ControlChannel"));
|
||||
Wiimote_InterruptChannel = reinterpret_cast<TWiimote_Input>
|
||||
(LoadSymbol("Wiimote_InterruptChannel"));
|
||||
(LoadSymbol("Wiimote_InterruptChannel"));
|
||||
Wiimote_Update = reinterpret_cast<TWiimote_Update>
|
||||
(LoadSymbol("Wiimote_Update"));
|
||||
(LoadSymbol("Wiimote_Update"));
|
||||
Wiimote_GetAttachedControllers = reinterpret_cast<TWiimote_GetAttachedControllers>
|
||||
(LoadSymbol("Wiimote_GetAttachedControllers"));
|
||||
(LoadSymbol("Wiimote_GetAttachedControllers"));
|
||||
|
||||
if ((Wiimote_ControlChannel != 0) &&
|
||||
(Wiimote_InterruptChannel != 0) &&
|
||||
(Wiimote_Update != 0) &&
|
||||
(Wiimote_GetAttachedControllers != 0))
|
||||
validWiimote = true;
|
||||
}
|
||||
|
||||
PluginWiimote::~PluginWiimote() {
|
||||
}
|
||||
(Wiimote_InterruptChannel != 0) &&
|
||||
(Wiimote_Update != 0) &&
|
||||
(Wiimote_GetAttachedControllers != 0))
|
||||
validWiimote = true;
|
||||
}
|
||||
|
||||
PluginWiimote::~PluginWiimote() {
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -6,27 +6,27 @@
|
||||
|
||||
namespace Common {
|
||||
|
||||
typedef unsigned int (__cdecl* TPAD_GetAttachedPads)();
|
||||
typedef void (__cdecl* TWiimote_Update)();
|
||||
typedef void (__cdecl* TWiimote_Output)(u16 _channelID, const void* _pData, u32 _Size);
|
||||
typedef void (__cdecl* TWiimote_Input)(u16 _channelID, const void* _pData, u32 _Size);
|
||||
typedef unsigned int (__cdecl* TWiimote_GetAttachedControllers)();
|
||||
typedef unsigned int (__cdecl* TPAD_GetAttachedPads)();
|
||||
typedef void (__cdecl* TWiimote_Update)();
|
||||
typedef void (__cdecl* TWiimote_Output)(u16 _channelID, const void* _pData, u32 _Size);
|
||||
typedef void (__cdecl* TWiimote_Input)(u16 _channelID, const void* _pData, u32 _Size);
|
||||
typedef unsigned int (__cdecl* TWiimote_GetAttachedControllers)();
|
||||
|
||||
class PluginWiimote : public CPlugin {
|
||||
public:
|
||||
class PluginWiimote : public CPlugin {
|
||||
public:
|
||||
PluginWiimote(const char *_Filename);
|
||||
~PluginWiimote();
|
||||
virtual ~PluginWiimote();
|
||||
virtual bool IsValid() {return validWiimote;};
|
||||
|
||||
TWiimote_Output Wiimote_ControlChannel;
|
||||
TWiimote_Input Wiimote_InterruptChannel;
|
||||
TWiimote_Update Wiimote_Update;
|
||||
TWiimote_Output Wiimote_ControlChannel;
|
||||
TWiimote_Input Wiimote_InterruptChannel;
|
||||
TWiimote_Update Wiimote_Update;
|
||||
TWiimote_GetAttachedControllers Wiimote_GetAttachedControllers;
|
||||
|
||||
private:
|
||||
private:
|
||||
bool validWiimote;
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
} // namespace
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user