]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cocoa/sound.h
Fix wxPropertyGrid::GetPropertyRect when the last item is collapsed.
[wxWidgets.git] / include / wx / cocoa / sound.h
index e9f71ccfe4c4c13bd37e4bdf0c2f7dafeed54f82..362e2e288dd0e91b1209dc7ee06cdab343d47e8d 100644 (file)
@@ -1,52 +1,51 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        sound.h
+// Name:        wx/cocoa/sound.h
 // Purpose:     wxSound class (loads and plays short Windows .wav files).
 //              Optional on non-Windows platforms.
 // Purpose:     wxSound class (loads and plays short Windows .wav files).
 //              Optional on non-Windows platforms.
-// Author:      Ryan Norton
+// Authors:     David Elliott, Ryan Norton
 // Modified by:
 // Created:     2004-10-02
 // Modified by:
 // Created:     2004-10-02
-// RCS-ID:      $Id$
-// Copyright:   (c) Ryan Norton
+// Copyright:   (c) 2004 David Elliott, Ryan Norton
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_COCOA_SOUND_H_
 #define _WX_COCOA_SOUND_H_
 
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_COCOA_SOUND_H_
 #define _WX_COCOA_SOUND_H_
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "sound.h"
-#endif
-
-#if wxUSE_SOUND
-
 #include "wx/object.h"
 #include "wx/object.h"
+#include "wx/cocoa/ObjcRef.h"
 
 
-class WXDLLEXPORT wxSound : public wxSoundBase
+class WXDLLIMPEXP_ADV wxSound : public wxSoundBase
 {
 public:
 {
 public:
-    wxSound();
-    wxSound(const wxString& fileName, bool isResource = false);
-    wxSound(int size, const wxByte* data);
-    ~wxSound();
+    wxSound()
+    :   m_cocoaNSSound(NULL)
+    {}
+    wxSound(const wxString& fileName, bool isResource = false)
+    :   m_cocoaNSSound(NULL)
+    {   Create(fileName, isResource); }
+    wxSound(size_t size, const void* data)
+    :   m_cocoaNSSound(NULL)
+    {   LoadWAV(data,size,true); }
+    wxSound(const wxSound& sound); // why not?
+    virtual ~wxSound();
 
 public:
     bool Create(const wxString& fileName, bool isResource = false);
 
 public:
     bool Create(const wxString& fileName, bool isResource = false);
-    bool IsOk() const { return m_hSnd != NULL; }
+    bool IsOk() const
+    {   return m_cocoaNSSound; }
     static void Stop();
     static bool IsPlaying();
 
     static void Stop();
     static bool IsPlaying();
 
+    void SetNSSound(WX_NSSound cocoaNSSound);
     inline WX_NSSound GetNSSound()
     inline WX_NSSound GetNSSound()
-    {   return m_hSnd; }
-protected:  
+    {   return m_cocoaNSSound; }
+protected:
     bool DoPlay(unsigned flags) const;
     bool DoPlay(unsigned flags) const;
-
+    bool LoadWAV(const void* data, size_t length, bool copyData);
 private:
 private:
-    WX_NSSound m_hSnd; //NSSound handle
-    wxString m_sndname; //file path
-    int m_waveLength; //size of file in memory mode    
-    struct objc_object * m_cocoaSoundDelegate;
+    WX_NSSound m_cocoaNSSound;
+    static const wxObjcAutoRefFromAlloc<struct objc_object *> sm_cocoaDelegate;
 };
 
 };
 
-#endif
-#endif
-    // _WX_COCOA_SOUND_H_
+#endif //ndef _WX_COCOA_SOUND_H_