wxWave --> wxSound

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25487 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2004-02-03 03:55:05 +00:00
parent 65cf3a4b6a
commit 78862f240c
10 changed files with 136 additions and 89 deletions

View File

@@ -209,8 +209,8 @@ _treeList = [
'OGL', 'OGL',
'PrintFramework', 'PrintFramework',
'ShapedWindow', 'ShapedWindow',
'Sound',
'Unicode', 'Unicode',
'Wave',
]), ]),
# need libs not coming with the demo # need libs not coming with the demo

View File

@@ -18,16 +18,16 @@ class TestPanel(wx.Panel):
def OnButton1(self, evt): def OnButton1(self, evt):
try: try:
wave = wx.Wave(opj('data/anykey.wav')) sound = wx.Sound(opj('data/anykey.wav'))
wave.Play() sound.Play()
except NotImplementedError, v: except NotImplementedError, v:
wx.MessageBox(str(v), "Exception Message") wx.MessageBox(str(v), "Exception Message")
def OnButton2(self, evt): def OnButton2(self, evt):
try: try:
wave = wx.Wave(opj('data/plan.wav')) sound = wx.Sound(opj('data/plan.wav'))
wave.Play() sound.Play()
except NotImplementedError, v: except NotImplementedError, v:
wx.MessageBox(str(v), "Exception Message") wx.MessageBox(str(v), "Exception Message")
@@ -40,14 +40,16 @@ def runTest(frame, nb, log):
#---------------------------------------------------------------------- #----------------------------------------------------------------------
overview = """\ overview = """<html><body>
<h2>Sound</h2>
This class represents a short wave file, in Windows WAV format, that can This class represents a short wave file, in Windows WAV format, that can
be stored in memory and played. Currently this class is implemented on Windows be stored in memory and played. Currently this class is implemented on Windows
and GTK (Linux) only. and GTK (Linux) only.
<p>
This demo offers two examples, both driven by buttons, but obviously the event This demo offers two examples, both driven by buttons, but obviously the event
that drives the playing of the sound can come from anywhere. that drives the playing of the sound can come from anywhere.
</body></html>
""" """

View File

@@ -49,6 +49,8 @@ for the Demo, PyCrust and XRCed) are now top-level items in the disk
image (.dmg file) that users can just drag and drop to wherever they image (.dmg file) that users can just drag and drop to wherever they
want to put them. want to put them.
The wxWave class has been renamed to wxSound, and now has a slightly
different API.

View File

@@ -414,3 +414,6 @@ wxPyTypeCast at all.
If you use the old wxPython package and wxPython.wx namespace then If you use the old wxPython package and wxPython.wx namespace then
there are compatibility aliases for much of the above items. there are compatibility aliases for much of the above items.
The wxWave class has been renamed to wxSound, and now has a slightly
different API.

View File

@@ -830,7 +830,7 @@ swig_sources = run_swig(['misc.i'], 'src', GENDIR, PKGDIR,
'src/_misc.i', 'src/_tipdlg.i', 'src/_misc.i', 'src/_tipdlg.i',
'src/_timer.i', 'src/_log.i', 'src/_timer.i', 'src/_log.i',
'src/_process.i', 'src/_joystick.i', 'src/_process.i', 'src/_joystick.i',
'src/_wave.i', 'src/_mimetype.i', 'src/_sound.i', 'src/_mimetype.i',
'src/_artprov.i', 'src/_config.i', 'src/_artprov.i', 'src/_config.i',
'src/_datetime.i', 'src/_dataobj.i', 'src/_datetime.i', 'src/_dataobj.i',
'src/_dnd.i', 'src/_dnd.i',

View File

@@ -259,7 +259,10 @@
%rename(JOY_BUTTON4) wxJOY_BUTTON4; %rename(JOY_BUTTON4) wxJOY_BUTTON4;
%rename(Joystick) wxJoystick; %rename(Joystick) wxJoystick;
%rename(JoystickEvent) wxJoystickEvent; %rename(JoystickEvent) wxJoystickEvent;
%rename(Wave) wxWave; %rename(SOUND_SYNC) wxSOUND_SYNC;
%rename(SOUND_ASYNC) wxSOUND_ASYNC;
%rename(SOUND_LOOP) wxSOUND_LOOP;
%rename(Sound) wxSound;
%rename(MAILCAP_STANDARD) wxMAILCAP_STANDARD; %rename(MAILCAP_STANDARD) wxMAILCAP_STANDARD;
%rename(MAILCAP_NETSCAPE) wxMAILCAP_NETSCAPE; %rename(MAILCAP_NETSCAPE) wxMAILCAP_NETSCAPE;
%rename(MAILCAP_KDE) wxMAILCAP_KDE; %rename(MAILCAP_KDE) wxMAILCAP_KDE;

109
wxPython/src/_sound.i Normal file
View File

@@ -0,0 +1,109 @@
/////////////////////////////////////////////////////////////////////////////
// Name: _sound.i
// Purpose: SWIG interface stuff for wxSound
//
// Author: Robin Dunn
//
// Created: 18-June-1999
// RCS-ID: $Id$
// Copyright: (c) 2003 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// Not a %module
//---------------------------------------------------------------------------
%newgroup
%{
#include <wx/sound.h>
%}
//---------------------------------------------------------------------------
enum wxSoundFlags
{
wxSOUND_SYNC = 0,
wxSOUND_ASYNC = 1,
wxSOUND_LOOP = 2
};
%{
#if !wxUSE_SOUND
// A C++ stub class for wxWave for platforms that don't have it.
class wxSound : public wxObject
{
public:
wxSound() {
wxPyBeginBlockThreads();
PyErr_SetString(PyExc_NotImplementedError,
"wxSound is not available on this platform.");
wxPyEndBlockThreads();
}
wxSound(const wxString&, bool) {
wxPyBeginBlockThreads();
PyErr_SetString(PyExc_NotImplementedError,
"wxSound is not available on this platform.");
wxPyEndBlockThreads();
}
wxSound(int, const wxByte*) {
wxPyBeginBlockThreads();
PyErr_SetString(PyExc_NotImplementedError,
"wxSound is not available on this platform.");
wxPyEndBlockThreads();
}
~wxSound() {};
bool Create(const wxString&, bool) { return false; }
bool Create(int, const wxByte*) { return false; };
bool IsOk() { return false; };
bool Play(unsigned) const { return false; }
static bool Play(const wxString&, unsigned) { return false; }
static void Stop() {}
};
#endif
%}
class wxSound /*: public wxObject*/
{
public:
%nokwargs wxSound;
wxSound();
wxSound(const wxString& fileName, bool isResource = false);
wxSound(int size, const wxByte* data);
~wxSound();
%nokwargs Create;
%nokwargs Play;
// 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();
// Play the sound:
bool Play(unsigned flags = wxSOUND_ASYNC) const;
// Plays sound from filename:
%name(PlaySound)static bool Play(const wxString& filename, unsigned flags = wxSOUND_ASYNC);
static void Stop();
%pythoncode { def __nonzero__(self): return self.IsOk() }
};
//---------------------------------------------------------------------------

View File

@@ -1,76 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: _joystick.i
// Purpose: SWIG interface stuff for wxWave
//
// Author: Robin Dunn
//
// Created: 18-June-1999
// RCS-ID: $Id$
// Copyright: (c) 2003 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// Not a %module
//---------------------------------------------------------------------------
%newgroup
%{
#include <wx/wave.h>
%}
//---------------------------------------------------------------------------
%{
#if !wxUSE_SOUND
// A C++ stub class for wxWave for platforms that don't have it.
class wxWave : public wxObject
{
public:
wxWave(const wxString& fileName, bool isResource = False) {
wxPyBeginBlockThreads();
PyErr_SetString(PyExc_NotImplementedError,
"wxWave is not available on this platform.");
wxPyEndBlockThreads();
}
wxWave(int size, const wxByte* data) {
wxPyBeginBlockThreads();
PyErr_SetString(PyExc_NotImplementedError,
"wxWave is not available on this platform.");
wxPyEndBlockThreads();
}
~wxWave() {}
bool IsOk() const { return False; }
bool Play(bool async = True, bool looped = False) const { return False; }
};
#endif
%}
class wxWave /*: public wxObject*/
{
public:
wxWave(const wxString& fileName, bool isResource = False);
%extend {
%name(WaveData) wxWave(const wxString& data) {
return new wxWave(data.Len(), (wxByte*)data.c_str());
}
}
~wxWave();
bool IsOk() const;
bool Play(bool async = True, bool looped = False);
%pythoncode { def __nonzero__(self): return self.IsOk() }
};
//---------------------------------------------------------------------------

View File

@@ -42,7 +42,7 @@ MAKE_CONST_WXSTRING_NOSWIG(EmptyString);
%include _log.i %include _log.i
%include _process.i %include _process.i
%include _joystick.i %include _joystick.i
%include _wave.i %include _sound.i
%include _mimetype.i %include _mimetype.i
%include _artprov.i %include _artprov.i
%include _config.i %include _config.i

View File

@@ -355,9 +355,13 @@ wxEVT_JOY_MOVE = wx.misc.wxEVT_JOY_MOVE
wxEVT_JOY_ZMOVE = wx.misc.wxEVT_JOY_ZMOVE wxEVT_JOY_ZMOVE = wx.misc.wxEVT_JOY_ZMOVE
wxJoystickEvent = wx.misc.JoystickEvent wxJoystickEvent = wx.misc.JoystickEvent
wxJoystickEventPtr = wx.misc.JoystickEventPtr wxJoystickEventPtr = wx.misc.JoystickEventPtr
wxWave = wx.misc.Wave wxSOUND_SYNC = wx.misc.SOUND_SYNC
wxWavePtr = wx.misc.WavePtr wxSOUND_ASYNC = wx.misc.SOUND_ASYNC
wxWaveData = wx.misc.WaveData wxSOUND_LOOP = wx.misc.SOUND_LOOP
wxSound = wx.misc.Sound
wxSoundPtr = wx.misc.SoundPtr
wxSound_PlaySound = wx.misc.Sound_PlaySound
wxSound_Stop = wx.misc.Sound_Stop
wxMAILCAP_STANDARD = wx.misc.MAILCAP_STANDARD wxMAILCAP_STANDARD = wx.misc.MAILCAP_STANDARD
wxMAILCAP_NETSCAPE = wx.misc.MAILCAP_NETSCAPE wxMAILCAP_NETSCAPE = wx.misc.MAILCAP_NETSCAPE
wxMAILCAP_KDE = wx.misc.MAILCAP_KDE wxMAILCAP_KDE = wx.misc.MAILCAP_KDE