]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/wave.cpp
added wxShutdown (patch 547443)
[wxWidgets.git] / src / mac / carbon / wave.cpp
index 5df346f8254ccf74f8ed0cffc10cad36e11b3456..7cc1c23534e219a0ca126b1df8e889844296a8c9 100644 (file)
 
 #include "wx/object.h"
 #include "wx/string.h"
-#include "wx/mac/wave.h"
+#include "wx/wave.h"
+
+#ifdef __WXMAC__
+#include "wx/mac/private.h"
+#ifndef __DARWIN__
+#include <Sound.h>
+#endif
+#endif
 
 wxWave::wxWave()
-  : m_hSnd(NULL), m_waveLength(0), m_isResource(true), m_sndChan(0)
+  : m_sndChan(0), m_hSnd(NULL), m_waveLength(0), m_isResource(true)
 {
 }
 
 wxWave::wxWave(const wxString& sFileName, bool isResource)
-  : m_hSnd(NULL), m_waveLength(0), m_isResource(true), m_sndChan(0)
+  : m_sndChan(0), m_hSnd(NULL), m_waveLength(0), m_isResource(true)
 {
     Create(sFileName, isResource);
 }
@@ -34,6 +41,11 @@ wxWave::~wxWave()
     Free();
 }
 
+wxWave::wxWave(int size, const wxByte* data)
+  : m_sndChan(0), m_hSnd(NULL), m_waveLength(0), m_isResource(false)
+{
+    //TODO convert data
+}
 
 bool wxWave::Create(const wxString& fileName, bool isResource)
 {
@@ -126,14 +138,18 @@ bool wxWave::Play(bool async, bool looped) const
        
        if (m_isResource) 
        {
-               strcpy(lpSnd, m_sndname); 
-               c2pstr((char *) lpSnd);
-               SndListHandle hSnd;
-               
-               hSnd = (SndListHandle) GetNamedResource('snd ',(const unsigned char *) lpSnd);
+#if TARGET_CARBON
+         c2pstrcpy((unsigned char *)lpSnd, m_sndname);
+#else
+         strcpy(lpSnd, m_sndname);
+         c2pstr((char *) lpSnd);
+#endif
+         SndListHandle hSnd;
+         
+         hSnd = (SndListHandle) GetNamedResource('snd ',(const unsigned char *) lpSnd);
 
-               if ((hSnd != NULL) && (SndPlay(m_sndChan, hSnd, async) == noErr))
-                       ret = true;
+         if ((hSnd != NULL) && (SndPlay((SndChannelPtr)m_sndChan, (SndListHandle) hSnd, async) == noErr))
+           ret = true;
        } 
        
        return ret;