enum wxSoundFlags
{
- wxSOUND_SYNC = 0,
- wxSOUND_ASYNC = 1,
- wxSOUND_LOOP = 2
+ wxSOUND_SYNC,
+ wxSOUND_ASYNC,
+ wxSOUND_LOOP
};
+MustHaveApp(wxSound);
+MustHaveApp(wxSound::Play);
+MustHaveApp(wxSound::Stop);
+
class wxSound /*: public wxObject*/
{
public:
else
return new wxSound(fileName);
}
- %name(SoundFromData) wxSound(const wxMemoryBuffer& data) {
- return new wxSound((int)data.GetDataLen(), (wxByte*)data.GetData());
+ %RenameCtor(SoundFromData, wxSound(PyObject* data))
+ {
+ unsigned char* buffer; int size;
+ wxSound *sound = NULL;
+
+ bool blocked = wxPyBeginBlockThreads();
+ if (!PyArg_Parse(data, "t#", &buffer, &size))
+ goto done;
+ sound = new wxSound(size, buffer);
+ done:
+ wxPyEndBlockThreads(blocked);
+ return sound;
}
}
~wxSound();
- %nokwargs Create;
- %nokwargs Play;
// Create from resource or file
bool Create(const wxString& fileName/*, bool isResource = false*/);
%extend {
- bool CreateFromData(const wxMemoryBuffer& data) {
- %#ifndef __WXMAC__
- return self->Create((int)data.GetDataLen(), (wxByte*)data.GetData());
- %#else
+ bool CreateFromData(PyObject* data) {
+ %#ifndef __WXMAC__
+ unsigned char* buffer;
+ int size;
+ bool rv = false;
+
+ bool blocked = wxPyBeginBlockThreads();
+ if (!PyArg_Parse(data, "t#", &buffer, &size))
+ goto done;
+ rv = self->Create(size, buffer);
+ done:
+ wxPyEndBlockThreads(blocked);
+ return rv;
+ %#else
bool blocked = wxPyBeginBlockThreads();
PyErr_SetString(PyExc_NotImplementedError,
"Create from data is not available on this platform.");
wxPyEndBlockThreads(blocked);
- return False;
- %#endif
+ return false;
+ %#endif
}
}
bool Play(unsigned flags = wxSOUND_ASYNC) const;
// Plays sound from filename:
- %name(PlaySound) static bool Play(const wxString& filename, unsigned flags = wxSOUND_ASYNC);
+ %Rename(PlaySound, static bool, Play(const wxString& filename, unsigned flags = wxSOUND_ASYNC));
-#ifndef __WXMAC__
static void Stop();
-#else
- %extend {
- static void Stop()
- { wxPyRaiseNotImplemented(); }
- }
-#endif
%pythoncode { def __nonzero__(self): return self.IsOk() }
};