X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9a78f7856de686581ef77b45f3ddb136d8a907d5..8ec413ce46f5590f2cfcba50f6f1cf1a60392b63:/src/osx/core/sound.cpp diff --git a/src/osx/core/sound.cpp b/src/osx/core/sound.cpp index fd9d6d4b76..386e62a561 100644 --- a/src/osx/core/sound.cpp +++ b/src/osx/core/sound.cpp @@ -1,11 +1,11 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: src/osx/carbon/sound.cpp -// Purpose: wxSound class implementation: optional -// Author: Ryan Norton +// Name: src/osx/core/sound.cpp +// Purpose: wxSound class implementation using AudioToolbox +// Author: Stefan Csomor // Modified by: Stefan Csomor -// Created: 1998-01-01 +// Created: 2009-01-01 // RCS-ID: $Id: sound.cpp 61475 2009-07-20 16:47:54Z VZ $ -// Copyright: (c) Ryan Norton +// Copyright: (c) Stefan Csomor // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -68,6 +68,9 @@ wxOSXAudioToolboxSoundData::CompletionCallback(SystemSoundID WXUNUSED(mySSID), wxOSXAudioToolboxSoundData* data = (wxOSXAudioToolboxSoundData*) soundRef; data->SoundCompleted(); + + if (data->IsMarkedForDeletion()) + delete data; } void wxOSXAudioToolboxSoundData::SoundCompleted() @@ -109,7 +112,7 @@ bool wxOSXAudioToolboxSoundData::Play(unsigned flags) wxCFRef url(CFURLCreateWithFileSystemPath(kCFAllocatorDefault, cfMutableString , kCFURLPOSIXPathStyle, false)); AudioServicesCreateSystemSoundID(url, &m_soundID); - AudioServicesAddSystemSoundCompletion( m_soundID, NULL, NULL, wxOSXAudioToolboxSoundData::CompletionCallback, (void *) this ); + AudioServicesAddSystemSoundCompletion( m_soundID, CFRunLoopGetCurrent(), NULL, wxOSXAudioToolboxSoundData::CompletionCallback, (void *) this ); bool sync = !(flags & wxSOUND_ASYNC);