1 /////////////////////////////////////////////////////////////////////////////
 
   3 // Purpose:     SWIG interface stuff for wxSound
 
   7 // Created:     18-June-1999
 
   9 // Copyright:   (c) 2003 by Total Control Software
 
  10 // Licence:     wxWindows license
 
  11 /////////////////////////////////////////////////////////////////////////////
 
  16 //---------------------------------------------------------------------------
 
  23 //---------------------------------------------------------------------------
 
  36 // A C++ stub class for wxWave for platforms that don't have it.
 
  37 class wxSound : public wxObject
 
  41         bool blocked = wxPyBeginBlockThreads();
 
  42         PyErr_SetString(PyExc_NotImplementedError,
 
  43                         "wxSound is not available on this platform.");
 
  44         wxPyEndBlockThreads(blocked);
 
  46     wxSound(const wxString&/*, bool*/) {
 
  47         bool blocked = wxPyBeginBlockThreads();
 
  48         PyErr_SetString(PyExc_NotImplementedError,
 
  49                         "wxSound is not available on this platform.");
 
  50         wxPyEndBlockThreads(blocked);
 
  52     wxSound(int, const wxByte*) {
 
  53         bool blocked = wxPyBeginBlockThreads();
 
  54         PyErr_SetString(PyExc_NotImplementedError,
 
  55                         "wxSound is not available on this platform.");
 
  56         wxPyEndBlockThreads(blocked);
 
  61     bool Create(const wxString&/*, bool*/) { return false; }
 
  62     bool Create(int, const wxByte*) { return false; };
 
  63     bool IsOk() { return false; };    
 
  64     bool Play(unsigned) const { return false; }
 
  65     static bool Play(const wxString&, unsigned) { return false; }
 
  75 MustHaveApp(wxSound::Play);
 
  76 MustHaveApp(wxSound::Stop);
 
  78 class wxSound /*: public wxObject*/
 
  82         wxSound(const wxString& fileName = wxPyEmptyString /*, bool isResource = false*/) {
 
  83             if (fileName.Length() == 0)
 
  86                 return new wxSound(fileName);
 
  88         %RenameCtor(SoundFromData,  wxSound(PyObject* data))
 
  90             unsigned char* buffer; int size;
 
  91             wxSound *sound = NULL;
 
  93             bool blocked = wxPyBeginBlockThreads();
 
  94             if (!PyArg_Parse(data, "t#", &buffer, &size))
 
  96             sound = new wxSound(size, buffer);
 
  98             wxPyEndBlockThreads(blocked);
 
 106     // Create from resource or file
 
 107     bool Create(const wxString& fileName/*, bool isResource = false*/);
 
 110         bool CreateFromData(PyObject* data) {
 
 112             unsigned char* buffer;
 
 116             bool blocked = wxPyBeginBlockThreads();
 
 117             if (!PyArg_Parse(data, "t#", &buffer, &size))
 
 119             rv = self->Create(size, buffer);
 
 121             wxPyEndBlockThreads(blocked);
 
 124                  bool blocked = wxPyBeginBlockThreads();
 
 125                  PyErr_SetString(PyExc_NotImplementedError,
 
 126                                  "Create from data is not available on this platform.");
 
 127                  wxPyEndBlockThreads(blocked);
 
 136     bool Play(unsigned flags = wxSOUND_ASYNC) const;
 
 138     // Plays sound from filename:
 
 139     %Rename(PlaySound,  static bool, Play(const wxString& filename, unsigned flags = wxSOUND_ASYNC));
 
 143     %pythoncode { def __nonzero__(self): return self.IsOk() }
 
 149 //---------------------------------------------------------------------------