]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/sound.h
reuse wxObjectRefData for various ref-counted classes (closes #10886)
[wxWidgets.git] / include / wx / msw / sound.h
index cdfa05d8d439eaa89dcce022bdc46ad5ce89af59..47a69671565fd3cdfe58392df199d564179c8e5c 100644 (file)
@@ -1,55 +1,52 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        sound.h
+// Name:        wx/msw/sound.h
 // Purpose:     wxSound class
 // Author:      Julian Smart
 // Modified by:
 // Created:     01/02/97
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_SOUND_H_
 #define _WX_SOUND_H_
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "sound.h"
-#endif
-
 #if wxUSE_SOUND
 
-#include "wx/object.h"
-
 class WXDLLIMPEXP_ADV wxSound : public wxSoundBase
 {
 public:
-  wxSound();
-  wxSound(const wxString& fileName, bool isResource = false);
-  wxSound(int size, const wxByte* data);
-  ~wxSound();
+    wxSound();
+    wxSound(const wxString& fileName, bool isResource = false);
+    wxSound(int size, const wxByte* data);
+    virtual ~wxSound();
 
-public:
-  // Create from resource or file
-  bool  Create(const wxString& fileName, bool isResource = false);
-  // Create from data
-  bool Create(int size, const wxByte* data);
+    // Create from resource or file
+    bool Create(const wxString& fileName, bool isResource = false);
+
+    // Create from data
+    bool Create(int size, const wxByte* data);
 
-  bool  IsOk() const { return (m_waveData ? true : false); };
-    
-  static void Stop();
+    bool IsOk() const { return m_data != NULL; }
+
+    static void Stop();
 
 protected:
-  bool  Free();
-    
-  bool DoPlay(unsigned flags) const;
+    void Init() { m_data = NULL; }
+    bool CheckCreatedOk();
+    void Free();
+
+    virtual bool DoPlay(unsigned flags) const;
 
 private:
-  wxByte* m_waveData;
-  int   m_waveLength;
-  bool  m_isResource;
+    // data of this object
+    class wxSoundData *m_data;
 
-    DECLARE_NO_COPY_CLASS(wxSound)
+    wxDECLARE_NO_COPY_CLASS(wxSound);
 };
-#endif
-#endif
+
+#endif // wxUSE_SOUND
+
+#endif // _WX_SOUND_H_