diff --git a/Externals/WiiUseSrc/Src/io_osx.m b/Externals/WiiUseSrc/Src/io_osx.m index 509ca0e385..e7e6fe8d9d 100644 --- a/Externals/WiiUseSrc/Src/io_osx.m +++ b/Externals/WiiUseSrc/Src/io_osx.m @@ -356,6 +356,7 @@ int wiiuse_io_read(struct wiimote_t* wm) { CFRunLoopRun(); memcpy(wm->event_buf,DataFromWiimote,sizeof(wm->event_buf)); + return 1; } diff --git a/Source/Core/AudioCommon/Src/CoreAudioSoundStream.cpp b/Source/Core/AudioCommon/Src/CoreAudioSoundStream.cpp index 940fd64c90..d336c833d3 100644 --- a/Source/Core/AudioCommon/Src/CoreAudioSoundStream.cpp +++ b/Source/Core/AudioCommon/Src/CoreAudioSoundStream.cpp @@ -116,15 +116,28 @@ bool CoreAudioSound::CoreAudioInit() err = AudioOutputUnitStart(soundStruct->audioUnit); if (err) - printf("error when stating audiounit\n"); + printf("error when starting audiounit\n"); - while(!threadData) + do { soundCriticalSection.Enter(); m_mixer->Mix(soundStruct->realtimeBuffer, numBytesToRender); soundCriticalSection.Leave(); soundSyncEvent.Wait(); - } + }while(!threadData); + + err = AudioOutputUnitStop(soundStruct->audioUnit); + if(err) + printf("error when sopping audiounit\n"); + + err = AudioUnitUninitialize(soundStruct->audioUnit); + if(err) + printf("Error uninitializing audiounit\n"); + + err = CloseComponent(soundStruct->audioUnit); + if(err) + printf("Error while closing component\n"); + return true; } @@ -148,6 +161,8 @@ bool CoreAudioSound::Start() void CoreAudioSound::Stop() { + threadData = 1; + soundSyncEvent.Set(); delete thread; thread = NULL; diff --git a/Source/Core/DolphinWX/Src/MainNoGUI.cpp b/Source/Core/DolphinWX/Src/MainNoGUI.cpp index 583470b16c..f137e6ef70 100644 --- a/Source/Core/DolphinWX/Src/MainNoGUI.cpp +++ b/Source/Core/DolphinWX/Src/MainNoGUI.cpp @@ -188,7 +188,7 @@ int main(int argc, char *argv[]) event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES ]; if(cocoaSendEvent(event)) { - PowerPC::Shutdown(); + Core::Stop(); break; } } diff --git a/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp b/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp index a05754a9b2..7fed4efabe 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp @@ -567,6 +567,7 @@ void OpenGL_Update() // Close plugin void OpenGL_Shutdown() { + printf("Deleting\n"); #if defined(USE_WX) && USE_WX delete GLWin.glCanvas; delete GLWin.frame;