]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/core/sound.cpp
adding support for extraControl on osx_carbon
[wxWidgets.git] / src / osx / core / sound.cpp
index fd9d6d4b768c55814a37479394ed43c6484cb5ea..386e62a561503fec192558016d2984bca0a0c3ed 100644 (file)
@@ -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<CFURLRef> 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);