some linux stop issue fix (still not working right) please check on windows

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2076 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
nakeee 2009-02-02 22:31:31 +00:00
parent cfc128abff
commit d7a38393b7
3 changed files with 25 additions and 15 deletions

View File

@ -132,6 +132,23 @@ bool CPluginManager::InitPlugins()
void CPluginManager::ShutdownPlugins()
{
for (int i = 0; i < MAXPADS; i++) {
if (m_pad[i] && OkayToInitPlugin(i)) {
m_pad[i]->Shutdown();
}
}
for (int i = 0; i < MAXWIIMOTES; i++) {
if (m_wiimote[i]) m_wiimote[i]->Shutdown();
}
if (m_video)
m_video->Shutdown();
if (m_dsp)
m_dsp->Shutdown();
for (int i = 0; i < MAXPADS; i++) {
if (m_pad[i] && OkayToInitPlugin(i)) {
Console::Print("Delete: %i\n", i);
@ -140,24 +157,17 @@ void CPluginManager::ShutdownPlugins()
m_pad[i] = NULL;
}
for (int i = 0; i < MAXWIIMOTES; i++) {
if (m_wiimote[i]) m_wiimote[i]->Shutdown();
}
for (int i = 0; i < MAXWIIMOTES; i++) {
delete m_wiimote[i];
m_wiimote[i] = NULL;
}
if (m_video)
m_video->Shutdown();
delete m_dsp;
m_dsp = NULL;
delete m_video;
m_video = NULL;
if (m_dsp)
m_dsp->Shutdown();
delete m_dsp;
m_dsp = NULL;
}
// Supporting functions

View File

@ -49,10 +49,6 @@ void AOSound::SoundLoop()
soundCriticalSection->Leave();
soundSyncEvent->Wait();
}
ao_close(device);
device = NULL;
ao_shutdown();
}
void *soundThread(void *args) {
@ -83,6 +79,10 @@ void AOSound::Stop()
delete soundCriticalSection;
delete thread;
delete soundSyncEvent;
ao_close(device);
device = NULL;
ao_shutdown();
}
#endif

View File

@ -23,7 +23,7 @@
#include "ConfigDlg.h"
#include "Debugger/File.h" // For file logging
#include "Debugger/Debugger.h" // For the CDebugger class
CDebugger* m_frame;
CDebugger* m_frame = NULL;
#endif
#include "ConsoleWindow.h" // Common: For the Windows console