Switch to using a Python buffer object for the sound from data methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27153 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -81,8 +81,17 @@ public:
|
|||||||
else
|
else
|
||||||
return new wxSound(fileName);
|
return new wxSound(fileName);
|
||||||
}
|
}
|
||||||
%name(SoundFromData) wxSound(const wxMemoryBuffer& data) {
|
%name(SoundFromData) wxSound(PyObject* data) {
|
||||||
return new wxSound((int)data.GetDataLen(), (wxByte*)data.GetData());
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,9 +104,19 @@ public:
|
|||||||
bool Create(const wxString& fileName/*, bool isResource = false*/);
|
bool Create(const wxString& fileName/*, bool isResource = false*/);
|
||||||
|
|
||||||
%extend {
|
%extend {
|
||||||
bool CreateFromData(const wxMemoryBuffer& data) {
|
bool CreateFromData(PyObject* data) {
|
||||||
%#ifndef __WXMAC__
|
%#ifndef __WXMAC__
|
||||||
return self->Create((int)data.GetDataLen(), (wxByte*)data.GetData());
|
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
|
%#else
|
||||||
bool blocked = wxPyBeginBlockThreads();
|
bool blocked = wxPyBeginBlockThreads();
|
||||||
PyErr_SetString(PyExc_NotImplementedError,
|
PyErr_SetString(PyExc_NotImplementedError,
|
||||||
|
Reference in New Issue
Block a user