'OGL',
'PrintFramework',
'ShapedWindow',
+ 'Sound',
'Unicode',
- 'Wave',
]),
# need libs not coming with the demo
--- /dev/null
+
+import wx
+
+from Main import opj
+
+#----------------------------------------------------------------------
+
+class TestPanel(wx.Panel):
+ def __init__(self, parent):
+ wx.Panel.__init__(self, parent, -1)
+
+ b = wx.Button(self, -1, "Play Sound 1", (25, 25))
+ self.Bind(wx.EVT_BUTTON, self.OnButton1, b)
+
+ b = wx.Button(self, -1, "Play Sound 2", (25, 65))
+ self.Bind(wx.EVT_BUTTON, self.OnButton2, b)
+
+
+ def OnButton1(self, evt):
+ try:
+ sound = wx.Sound(opj('data/anykey.wav'))
+ sound.Play()
+ except NotImplementedError, v:
+ wx.MessageBox(str(v), "Exception Message")
+
+
+ def OnButton2(self, evt):
+ try:
+ sound = wx.Sound(opj('data/plan.wav'))
+ sound.Play()
+ except NotImplementedError, v:
+ wx.MessageBox(str(v), "Exception Message")
+
+#----------------------------------------------------------------------
+
+def runTest(frame, nb, log):
+ win = TestPanel(nb)
+ return win
+
+#----------------------------------------------------------------------
+
+
+overview = """<html><body>
+<h2>Sound</h2>
+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
+and GTK (Linux) only.
+<p>
+This demo offers two examples, both driven by buttons, but obviously the event
+that drives the playing of the sound can come from anywhere.
+
+</body></html>
+"""
+
+
+if __name__ == '__main__':
+ import sys,os
+ import run
+ run.main(['', os.path.basename(sys.argv[0])])
+++ /dev/null
-
-import wx
-
-from Main import opj
-
-#----------------------------------------------------------------------
-
-class TestPanel(wx.Panel):
- def __init__(self, parent):
- wx.Panel.__init__(self, parent, -1)
-
- b = wx.Button(self, -1, "Play Sound 1", (25, 25))
- self.Bind(wx.EVT_BUTTON, self.OnButton1, b)
-
- b = wx.Button(self, -1, "Play Sound 2", (25, 65))
- self.Bind(wx.EVT_BUTTON, self.OnButton2, b)
-
-
- def OnButton1(self, evt):
- try:
- wave = wx.Wave(opj('data/anykey.wav'))
- wave.Play()
- except NotImplementedError, v:
- wx.MessageBox(str(v), "Exception Message")
-
-
- def OnButton2(self, evt):
- try:
- wave = wx.Wave(opj('data/plan.wav'))
- wave.Play()
- except NotImplementedError, v:
- wx.MessageBox(str(v), "Exception Message")
-
-#----------------------------------------------------------------------
-
-def runTest(frame, nb, log):
- win = TestPanel(nb)
- return win
-
-#----------------------------------------------------------------------
-
-
-overview = """\
-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
-and GTK (Linux) only.
-
-This demo offers two examples, both driven by buttons, but obviously the event
-that drives the playing of the sound can come from anywhere.
-
-"""
-
-
-if __name__ == '__main__':
- import sys,os
- import run
- run.main(['', os.path.basename(sys.argv[0])])
image (.dmg file) that users can just drag and drop to wherever they
want to put them.
+The wxWave class has been renamed to wxSound, and now has a slightly
+different API.
If you use the old wxPython package and wxPython.wx namespace then
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.
'src/_misc.i', 'src/_tipdlg.i',
'src/_timer.i', 'src/_log.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/_datetime.i', 'src/_dataobj.i',
'src/_dnd.i',
%rename(JOY_BUTTON4) wxJOY_BUTTON4;
%rename(Joystick) wxJoystick;
%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_NETSCAPE) wxMAILCAP_NETSCAPE;
%rename(MAILCAP_KDE) wxMAILCAP_KDE;
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// 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() }
+};
+
+
+
+
+//---------------------------------------------------------------------------
+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// 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() }
-};
-
-
-
-
-//---------------------------------------------------------------------------
%include _log.i
%include _process.i
%include _joystick.i
-%include _wave.i
+%include _sound.i
%include _mimetype.i
%include _artprov.i
%include _config.i
wxEVT_JOY_ZMOVE = wx.misc.wxEVT_JOY_ZMOVE
wxJoystickEvent = wx.misc.JoystickEvent
wxJoystickEventPtr = wx.misc.JoystickEventPtr
-wxWave = wx.misc.Wave
-wxWavePtr = wx.misc.WavePtr
-wxWaveData = wx.misc.WaveData
+wxSOUND_SYNC = wx.misc.SOUND_SYNC
+wxSOUND_ASYNC = wx.misc.SOUND_ASYNC
+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_NETSCAPE = wx.misc.MAILCAP_NETSCAPE
wxMAILCAP_KDE = wx.misc.MAILCAP_KDE