]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/sound.h
Make storing non-trivial data in wxThreadSpecificInfo possible.
[wxWidgets.git] / interface / wx / sound.h
index 2d22a5b76cb260e0a06a9fd4734e8becf281f261..0fdcb9d9d1662b43cb6f11a8ec821299d5f12646 100644 (file)
@@ -2,45 +2,60 @@
 // Name:        sound.h
 // Purpose:     interface of wxSound
 // Author:      wxWidgets team
-// RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
+
+#define wxSOUND_SYNC  0
+#define wxSOUND_ASYNC 1
+#define wxSOUND_LOOP  2
+
+
 /**
     @class wxSound
-    @wxheader{sound.h}
 
     This class represents a short sound (loaded from Windows WAV file), that
-    can be stored in memory and played. Currently this class is implemented
-    on Windows and Unix (and uses either
-    Open Sound System or
-    Simple DirectMedia Layer).
+    can be stored in memory and played.
+
+    Currently this class is implemented on Windows and Unix (and uses either
+    Open Sound System or Simple DirectMedia Layer).
 
     @library{wxadv}
-    @category{FIXME}
+    @category{media}
 */
 class wxSound : public wxObject
 {
 public:
-    //@{
+    /**
+        Default ctor.
+    */
+    wxSound();
+
     /**
         Constructs a wave object from a file or, under Windows, from a Windows
-        resource. Call IsOk() to determine whether this
-        succeeded.
+        resource. Call IsOk() to determine whether this succeeded.
 
         @param fileName
             The filename or Windows resource.
         @param isResource
             @true if fileName is a resource, @false if it is a filename.
     */
-    wxSound();
     wxSound(const wxString& fileName, bool isResource = false);
-    //@}
+
+    /**
+        Constructs a wave object from in-memory data.
+
+        @param size
+            Size of the buffer pointer to by @a data.
+        @param data
+            The buffer containing the sound data in WAV format.
+     */
+    wxSound(size_t size, const void* data);
 
     /**
         Destroys the wxSound object.
     */
-    ~wxSound();
+    virtual ~wxSound();
 
     /**
         Constructs a wave object from a file or resource.
@@ -54,6 +69,16 @@ public:
     */
     bool Create(const wxString& fileName, bool isResource = false);
 
+    /**
+        Constructs a wave object from in-memory data.
+
+        @param size
+            Size of the buffer pointer to by @a data.
+        @param data
+            The buffer containing the sound data in WAV format.
+     */
+    bool Create(size_t size, const void* data);
+
     /**
         Returns @true if the object contains a successfully loaded file or resource,
         @false otherwise.
@@ -62,41 +87,39 @@ public:
 
     /**
         Returns @true if a sound is played at the moment.
-        This method is currently not implemented under Windows.
+
+        This method is currently not available under Windows and may not be
+        always implemented in Unix ports depending on the compilation options
+        used (in this case it just always returns @false).
+
+        @onlyfor{wxgtk,wxosx}
     */
-    static bool IsPlaying() const;
+    static bool IsPlaying();
 
     //@{
     /**
         Plays the sound file. If another sound is playing, it will be interrupted.
+
         Returns @true on success, @false otherwise. Note that in general it is
-        possible
-        to delete the object which is being asynchronously played any time after
-        calling this function and the sound would continue playing, however this
+        possible to delete the object which is being asynchronously played any time
+        after calling this function and the sound would continue playing, however this
         currently doesn't work under Windows for sound objects loaded from memory data.
-        The possible values for @a flags are:
 
-        wxSOUND_SYNC
-
-        @c Play will block and wait until the sound is
-        replayed.
-
-        wxSOUND_ASYNC
-
-        Sound is played asynchronously,
-        @c Play returns immediately
-
-        wxSOUND_ASYNC | wxSOUND_LOOP
-
-        Sound is played asynchronously
-        and loops until another sound is played,
-        Stop() is called or the program terminates.
+        The possible values for @a flags are:
+        - wxSOUND_SYNC: @c Play will block and wait until the sound is replayed.
+        - wxSOUND_ASYNC: Sound is played asynchronously, @c Play returns immediately.
+        - wxSOUND_ASYNC|wxSOUND_LOOP: Sound is played asynchronously and loops
+                                      until another sound is played, Stop() is
+                                      called or the program terminates.
 
         The static form is shorthand for this code:
+        @code
+        wxSound(filename).Play(flags);
+        @endcode
     */
-    bool Play(unsigned flags = wxSOUND_ASYNC);
-    const static bool Play(const wxString& filename,
-                           unsigned flags = wxSOUND_ASYNC);
+    bool Play(unsigned flags = wxSOUND_ASYNC) const;
+    static bool Play(const wxString& filename,
+                     unsigned flags = wxSOUND_ASYNC);
     //@}
 
     /**