]> git.saurik.com Git - wxWidgets.git/commitdiff
renamed wxWave to wxSound; compatibility fixes
authorVáclav Slavík <vslavik@fastmail.fm>
Mon, 2 Feb 2004 13:16:31 +0000 (13:16 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Mon, 2 Feb 2004 13:16:31 +0000 (13:16 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/chkconf.h
include/wx/sound.h
include/wx/unix/sound.h
include/wx/wave.h

index 46ba51d014cac1eeba4e5c59ddf6b4a881b317d7..c752d2570915798a05885c4532a27a09f36ca5f8 100644 (file)
 #   endif
 #endif /* !defined(wxUSE_SLIDER) */
 
 #   endif
 #endif /* !defined(wxUSE_SLIDER) */
 
+#ifndef wxUSE_SOUND
+#   ifdef wxABORT_ON_CONFIG_ERROR
+#       error "wxUSE_SOUND must be defined."
+#   else
+#       define wxUSE_SOUND 0
+#   endif
+#endif /* !defined(wxUSE_SOUND) */
+
 #ifndef wxUSE_SPINBTN
 #   ifdef wxABORT_ON_CONFIG_ERROR
 #       error "wxUSE_SPINBTN must be defined."
 #ifndef wxUSE_SPINBTN
 #   ifdef wxABORT_ON_CONFIG_ERROR
 #       error "wxUSE_SPINBTN must be defined."
index 9cd472ad9b8ed42c2a716359cd90a32ff2b6cb8c..3e470dd11b78b5b29212aa1bb7767a7303310446 100644 (file)
 #pragma interface "soundbase.h"
 #endif
 
 #pragma interface "soundbase.h"
 #endif
 
+#include "wx/defs.h"
+
+#if wxUSE_SOUND
+
 #include "wx/object.h"
 
 // ----------------------------------------------------------------------------
 #include "wx/object.h"
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 
 // Flags for wxSound::Play
 // ----------------------------------------------------------------------------
 
 // Flags for wxSound::Play
-enum wxSoundFlags
-{
-    wxSOUND_SYNC   = 0,
-    wxSOUND_ASYNC  = 1,
-    wxSOUND_LOOP   = 2
-};
+#if WXWIN_COMPATIBILITY_2_4
+    // NB: we can't use enum because there would be ambiguity between the
+    //     two Play() prototypes when called without explicit parameters
+    #define wxSOUND_SYNC  ((unsigned)0)
+    #define wxSOUND_ASYNC ((unsigned)1)
+    #define wxSOUND_LOOP  ((unsigned)2)
+#else
+    enum wxSoundFlags
+    {
+        wxSOUND_SYNC   = 0,
+        wxSOUND_ASYNC  = 1,
+        wxSOUND_LOOP   = 2
+    };
+#endif
 
 
+// Base class for wxSound implementations
 class wxSoundBase : public wxObject
 {
 public:
     // Play the sound:
 class wxSoundBase : public wxObject
 {
 public:
     // Play the sound:
-    bool Play(unsigned flags = wxSOUND_ASYNC)
+    bool Play(unsigned flags = wxSOUND_ASYNC) const
     {
     {
+        wxASSERT_MSG( (flags & wxSOUND_LOOP) == 0 ||
+                      (flags & wxSOUND_ASYNC) != 0,
+                     _T("sound can only be looped asynchronously") );
         return DoPlay(flags);
     }
 #if WXWIN_COMPATIBILITY_2_4
         return DoPlay(flags);
     }
 #if WXWIN_COMPATIBILITY_2_4
-    wxDEPRECATED( bool Play(bool async = true, bool looped = false) );
+    wxDEPRECATED( bool Play(bool async, bool looped = false) const );
 #endif
 
 #endif
 
+    // Plays sound from filename:
+    static bool Play(const wxString& filename, unsigned flags = wxSOUND_ASYNC);
+    
 protected:
 protected:
-    virtual bool DoPlay(unsigned flags) = 0;
+    virtual bool DoPlay(unsigned flags) const = 0;
 };
 };
-    
-#if WXWIN_COMPATIBILITY_2_4
-inline bool wxSoundBase::Play(bool async, bool looped)
-{
-    unsigned flags = 0;
-    if (async) flags |= wxSOUND_ASYNC;
-    if (looped) flags |= wxSOUND_LOOP | wxSOUND_ASYNC;
-    return DoPlay(flags);
-}
-#endif
 
 // ----------------------------------------------------------------------------
 // wxSound class implementation
 // ----------------------------------------------------------------------------
 
 #if defined(__WXMSW__)
 
 // ----------------------------------------------------------------------------
 // wxSound class implementation
 // ----------------------------------------------------------------------------
 
 #if defined(__WXMSW__)
-#include "wx/msw/wave.h"
+    #include "wx/msw/sound.h"
 #elif defined(__UNIX__)
 #elif defined(__UNIX__)
-#include "wx/unix/sound.h"
+    #include "wx/unix/sound.h"
 #elif defined(__WXMAC__)
 #elif defined(__WXMAC__)
-#include "wx/mac/wave.h"
+    #include "wx/mac/sound.h"
 #elif defined(__WXPM__)
 #elif defined(__WXPM__)
-#include "wx/os2/wave.h"
+    #include "wx/os2/sound.h"
 #endif
 
 #endif
 
-// wxSound used to be called wxWave before wxWindows 2.5.1:
-#ifdef __UNIX__ // FIXME: on all platforms when everything is renamed
-    #if WXWIN_COMPATIBILITY_2_4
-        typedef wxSound wxWave;
-    #endif
-#else
-    typedef wxWave wxSound;
+// ----------------------------------------------------------------------------
+// wxSoundBase methods
+// ----------------------------------------------------------------------------
+
+inline bool wxSoundBase::Play(const wxString& filename, unsigned flags)
+{
+    wxSound snd(filename);
+    return snd.IsOk() ? snd.Play(flags) : false;
+}
+
+#if WXWIN_COMPATIBILITY_2_4
+inline bool wxSoundBase::Play(bool async, bool looped) const
+{
+    unsigned flags = 0;
+    if (async) flags |= wxSOUND_ASYNC;
+    if (looped) flags |= wxSOUND_LOOP | wxSOUND_ASYNC;
+    return DoPlay(flags);
+}
 #endif
 
 #endif
 
+#endif // wxUSE_SOUND
+
 #endif // _WX_SOUND_H_BASE_
 #endif // _WX_SOUND_H_BASE_
index c038dfcde15a1aee327199a2cac3c3e39d32ea60..2d2a349869cbc0215ffd772a3b06e491b40784f5 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        wave.h
+// Name:        sound.h
 // Purpose:     wxSound class
 // Author:      Julian Smart, Vaclav Slavik
 // Modified by:
 // Purpose:     wxSound class
 // Author:      Julian Smart, Vaclav Slavik
 // Modified by:
@@ -14,7 +14,7 @@
 
 #include "wx/defs.h"
 
 
 #include "wx/defs.h"
 
-#if wxUSE_WAVE
+#if wxUSE_SOUND
 
 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma interface "sound.h"
 
 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma interface "sound.h"
@@ -84,7 +84,7 @@ public:
     static void UnloadBackend();
     
 protected:
     static void UnloadBackend();
     
 protected:
-    bool DoPlay(unsigned flags);
+    bool DoPlay(unsigned flags) const;
 
     static void EnsureBackend();
     void Free();
 
     static void EnsureBackend();
     void Free();
@@ -159,6 +159,6 @@ public:
 };
 
 
 };
 
 
-#endif // wxUSE_WAVE
+#endif // wxUSE_SOUND
 
 #endif
 
 #endif
index 582841f7e952ee16b0971b296e01676b0e8992d8..275fa39850e8a6309eab4c56da9ce7a52c70b92e 100644 (file)
 
 #include "wx/setup.h"
 
 
 #include "wx/setup.h"
 
+#if wxUSE_SOUND
+
 #if WXWIN_COMPATIBILITY_2_4
     #warning "wx/wave.h header is deprecated, use wx/sound.h and wxSound"
     #include "wx/sound.h"
 #if WXWIN_COMPATIBILITY_2_4
     #warning "wx/wave.h header is deprecated, use wx/sound.h and wxSound"
     #include "wx/sound.h"
+    // wxSound used to be called wxWave before wxWindows 2.5.1:
+    typedef wxSound wxWave;
 #else
     #error "wx/wave.h is only available in compatibility mode"
 #endif
 
 #endif
 #else
     #error "wx/wave.h is only available in compatibility mode"
 #endif
 
 #endif
+
+#endif