]> git.saurik.com Git - wxWidgets.git/blob - include/wx/cocoa/sound.h
Forward port new wxRenderer methods in 2.8 to trunk.
[wxWidgets.git] / include / wx / cocoa / sound.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: sound.h
3 // Purpose: wxSound class (loads and plays short Windows .wav files).
4 // Optional on non-Windows platforms.
5 // Authors: David Elliott, Ryan Norton
6 // Modified by:
7 // Created: 2004-10-02
8 // RCS-ID: $Id$
9 // Copyright: (c) 2004 David Elliott, Ryan Norton
10 // Licence: wxWindows licence
11 /////////////////////////////////////////////////////////////////////////////
12
13 #ifndef _WX_COCOA_SOUND_H_
14 #define _WX_COCOA_SOUND_H_
15
16 #include "wx/object.h"
17 #include "wx/cocoa/ObjcRef.h"
18
19 class WXDLLIMPEXP_ADV wxSound : public wxSoundBase
20 {
21 public:
22 wxSound()
23 : m_cocoaNSSound(NULL)
24 {}
25 wxSound(const wxString& fileName, bool isResource = false)
26 : m_cocoaNSSound(NULL)
27 { Create(fileName, isResource); }
28 wxSound(int size, const wxByte* data)
29 : m_cocoaNSSound(NULL)
30 { LoadWAV(data,size,true); }
31 wxSound(const wxSound& sound); // why not?
32 virtual ~wxSound();
33
34 public:
35 bool Create(const wxString& fileName, bool isResource = false);
36 bool IsOk() const
37 { return m_cocoaNSSound; }
38 static void Stop();
39 static bool IsPlaying();
40
41 void SetNSSound(WX_NSSound cocoaNSSound);
42 inline WX_NSSound GetNSSound()
43 { return m_cocoaNSSound; }
44 protected:
45 bool DoPlay(unsigned flags) const;
46 bool LoadWAV(const wxUint8 *data, size_t length, bool copyData);
47 private:
48 WX_NSSound m_cocoaNSSound;
49 static const wxObjcAutoRefFromAlloc<struct objc_object *> sm_cocoaDelegate;
50 };
51
52 #endif //ndef _WX_COCOA_SOUND_H_