X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0c0be4a31821ac6de698e3b569371d95ff00e4c0..7722d490f224d8f292f27fd90b1f42a00e20da8b:/include/wx/cocoa/sound.h diff --git a/include/wx/cocoa/sound.h b/include/wx/cocoa/sound.h index 03655103f9..c85e7d3978 100644 --- a/include/wx/cocoa/sound.h +++ b/include/wx/cocoa/sound.h @@ -2,51 +2,51 @@ // Name: sound.h // Purpose: wxSound class (loads and plays short Windows .wav files). // Optional on non-Windows platforms. -// Author: Ryan Norton -// Modified by: +// Authors: David Elliott, Ryan Norton +// 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_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "sound.h" -#endif - -#if wxUSE_SOUND - #include "wx/object.h" +#include "wx/cocoa/ObjcRef.h" class WXDLLEXPORT wxSound : public wxSoundBase { 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(int size, const wxByte* data) + : m_cocoaNSSound(NULL) + { LoadWAV(data,size,true); } + wxSound(const wxSound& sound); // why not? + ~wxSound(); public: - bool Create(const wxString& fileName, bool isResource = FALSE); - bool IsOk() const { return m_hSnd != NULL; } - static void Stop(); - static bool IsPlaying(); - - inline WX_NSSound GetNSSound() - { return m_hSnd; } + bool Create(const wxString& fileName, bool isResource = false); + bool IsOk() const + { return m_cocoaNSSound; } + static void Stop(); + static bool IsPlaying(); + + void SetNSSound(WX_NSSound cocoaNSSound); + inline WX_NSSound GetNSSound() + { return m_cocoaNSSound; } protected: - bool DoPlay(unsigned flags) const; - + bool DoPlay(unsigned flags) const; + bool LoadWAV(const wxUint8 *data, size_t length, bool copyData); 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 sm_cocoaDelegate; }; -#endif -#endif - // _WX_COCOA_SOUND_H_ +#endif //ndef _WX_COCOA_SOUND_H_