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:
hrydgard 2009-02-21 12:07:03 +00:00
parent 76a78dd60d
commit 28cbd0a6ba
12 changed files with 130 additions and 127 deletions

View File

@ -461,14 +461,6 @@
<Filter
Name="Plugins"
>
<File
RelativePath=".\Src\DynamicLibrary.cpp"
>
</File>
<File
RelativePath=".\Src\DynamicLibrary.h"
>
</File>
<File
RelativePath=".\Src\Plugin.cpp"
>
@ -590,6 +582,14 @@
RelativePath=".\Src\DriveUtil.h"
>
</File>
<File
RelativePath=".\Src\DynamicLibrary.cpp"
>
</File>
<File
RelativePath=".\Src\DynamicLibrary.h"
>
</File>
<File
RelativePath=".\Src\ExtendedTrace.cpp"
>

View File

@ -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);
}

View File

@ -35,15 +35,13 @@ namespace Common
class CPlugin
{
public:
CPlugin(const char* _szName);
~CPlugin();
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; };
std::string GetFilename() {return Filename;};
std::string GetFilename() const { return Filename; }
bool GetInfo(PLUGIN_INFO& _pluginInfo);
void SetGlobals(PLUGIN_GLOBALS* _PluginGlobals);
void *LoadSymbol(const char *sym);
@ -56,10 +54,9 @@ class CPlugin
void Shutdown();
private:
DynamicLibrary m_hInstLib;
bool valid;
std::string Filename;
bool valid;
// Functions
TGetDllInfo m_GetDllInfo;

View File

@ -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>

View File

@ -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;

View File

@ -5,6 +5,7 @@
#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);
@ -13,7 +14,7 @@ namespace Common {
class PluginPAD : public CPlugin {
public:
PluginPAD(const char *_Filename);
~PluginPAD();
virtual ~PluginPAD();
virtual bool IsValid() {return validPAD;};
TPAD_GetStatus PAD_GetStatus;
@ -25,6 +26,7 @@ namespace Common {
bool validPAD;
};
}
} // namespace
#endif

View File

@ -5,6 +5,7 @@
#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);
@ -17,7 +18,7 @@ namespace Common {
{
public:
PluginVideo(const char *_Filename);
~PluginVideo();
virtual ~PluginVideo();
virtual bool IsValid() {return validVideo;};
TVideo_Prepare Video_Prepare;
@ -32,6 +33,7 @@ namespace Common {
private:
bool validVideo;
};
}
} // namespace
#endif

View File

@ -1,8 +1,10 @@
#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"));
Wiimote_InterruptChannel = reinterpret_cast<TWiimote_Input>
@ -21,4 +23,5 @@ namespace Common {
PluginWiimote::~PluginWiimote() {
}
}

View File

@ -15,7 +15,7 @@ namespace Common {
class PluginWiimote : public CPlugin {
public:
PluginWiimote(const char *_Filename);
~PluginWiimote();
virtual ~PluginWiimote();
virtual bool IsValid() {return validWiimote;};
TWiimote_Output Wiimote_ControlChannel;
@ -25,8 +25,8 @@ namespace Common {
private:
bool validWiimote;
};
}
} // namespace
#endif

View File

@ -79,6 +79,8 @@ CPluginManager CPluginManager::m_Instance;
//////////////////////////////////////////////////////////////////////////////////////////
// The Plugin Manager Class
// ¯¯¯¯¯¯¯¯¯¯¯¯
// The plugin manager is some sort of singleton that runs during Dolphin's entire lifespan.
CPluginManager::CPluginManager() :
m_params(SConfig::GetInstance().m_LocalCoreStartupParameter)
{
@ -87,7 +89,7 @@ CPluginManager::CPluginManager() :
m_PluginGlobals->config = (void *)&SConfig::GetInstance();
m_PluginGlobals->messageLogger = NULL;
// Set initial values to NULL, this is only done when Dolphin is started
// Set initial values to NULL.
m_video = NULL;
m_dsp = NULL;
for (int i = 0; i < MAXPADS; i++)
@ -104,8 +106,10 @@ CPluginManager::~CPluginManager()
delete m_PluginGlobals;
delete m_dsp;
for (int i = 0; i < MAXPADS; i++) {
if (m_pad[i] && OkayToInitPlugin(i)) {
for (int i = 0; i < MAXPADS; i++)
{
if (m_pad[i] && OkayToInitPlugin(i))
{
Console::Print("Delete: %i\n", i);
delete m_pad[i];
}
@ -183,7 +187,7 @@ bool CPluginManager::InitPlugins()
void CPluginManager::ShutdownPlugins()
{
for (int i = 0; i < MAXPADS; i++) {
if (m_pad[i] && OkayToInitPlugin(i)) {
if (m_pad[i]) {
m_pad[i]->Shutdown();
//delete m_pad[i];
}
@ -201,7 +205,6 @@ void CPluginManager::ShutdownPlugins()
if (m_video)
{
m_video->Shutdown();
// This is needed for Stop and Start to work
delete m_video;
m_video = NULL;
}
@ -209,7 +212,6 @@ void CPluginManager::ShutdownPlugins()
if (m_dsp)
{
m_dsp->Shutdown();
// This is needed for Stop and Start to work
delete m_dsp;
m_dsp = NULL;
}

View File

@ -111,16 +111,16 @@ void HandleGLError();
#ifdef _WIN32
#define ERROR_LOG(...) LOG(VIDEO, __VA_ARGS__)
#define INFO_LOG(...) LOG(VIDEO, __VA_ARGS__)
#define PRIM_LOG(...) LOG(VIDEO, __VA_ARGS__)
#define DEBUG_LOG(...) LOG(VIDEO, __VA_ARGS__)
#define ERROR_LOG(...) {LOG(VIDEO, __VA_ARGS__)}
#define INFO_LOG(...) {LOG(VIDEO, __VA_ARGS__)}
#define PRIM_LOG(...) {LOG(VIDEO, __VA_ARGS__)}
#define DEBUG_LOG(...) {LOG(VIDEO, __VA_ARGS__)}
#else
#define ERROR_LOG(...) LOG(VIDEO, ##__VA_ARGS__)
#define INFO_LOG(...) LOG(VIDEO, ##__VA_ARGS__)
#define PRIM_LOG(...) LOG(VIDEO, ##__VA_ARGS__)
#define DEBUG_LOG(...) LOG(VIDEO, ##__VA_ARGS__)
#define ERROR_LOG(...) {LOG(VIDEO, ##__VA_ARGS__)}
#define INFO_LOG(...) {LOG(VIDEO, ##__VA_ARGS__)}
#define PRIM_LOG(...) {LOG(VIDEO, ##__VA_ARGS__)}
#define DEBUG_LOG(...) {LOG(VIDEO, ##__VA_ARGS__)}
#endif
#ifdef LOGGING