source: GTP/trunk/Lib/Illum/GPUObscurancesGT/Libraries/wx/include/wx/sound.h @ 1648

Revision 1648, 3.2 KB checked in by igarcia, 18 years ago (diff)
Line 
1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/sound.h
3// Purpose:     wxSoundBase class
4// Author:      Vaclav Slavik
5// Modified by:
6// Created:     2004/02/01
7// RCS-ID:      $Id: sound.h,v 1.12 2004/10/08 00:47:43 RN Exp $
8// Copyright:   (c) 2004, Vaclav Slavik
9// Licence:     wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_SOUND_H_BASE_
13#define _WX_SOUND_H_BASE_
14
15#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
16#pragma interface "soundbase.h"
17#endif
18
19#include "wx/defs.h"
20
21#if wxUSE_SOUND
22
23#include "wx/object.h"
24
25// ----------------------------------------------------------------------------
26// wxSoundBase: common wxSound code and interface
27// ----------------------------------------------------------------------------
28
29// Flags for wxSound::Play
30
31// NB: We can't use enum because there would be ambiguity between the
32//     two Play() prototypes when called without explicit parameters
33//     if WXWIN_COMPATIBILITY_2_4.
34//     We can't use enum with some compilers either, because they
35//     keep reporting nonexistent ambiguities between
36//     Play(unsigned) and static Play(const wxString&, unsigned).
37#define wxSOUND_SYNC  ((unsigned)0)
38#define wxSOUND_ASYNC ((unsigned)1)
39#define wxSOUND_LOOP  ((unsigned)2)
40
41// Base class for wxSound implementations
42class WXDLLIMPEXP_ADV wxSoundBase : public wxObject
43{
44public:
45    // Play the sound:
46    bool Play(unsigned flags = wxSOUND_ASYNC) const
47    {
48        wxASSERT_MSG( (flags & wxSOUND_LOOP) == 0 ||
49                      (flags & wxSOUND_ASYNC) != 0,
50                     _T("sound can only be looped asynchronously") );
51        return DoPlay(flags);
52    }
53#if WXWIN_COMPATIBILITY_2_4
54    wxDEPRECATED( bool Play(bool async, bool looped = false) const );
55#endif
56
57    // Plays sound from filename:
58    static bool Play(const wxString& filename, unsigned flags = wxSOUND_ASYNC);
59
60protected:
61    virtual bool DoPlay(unsigned flags) const = 0;
62};
63
64// ----------------------------------------------------------------------------
65// wxSound class implementation
66// ----------------------------------------------------------------------------
67
68#if defined(__WXMSW__)
69    #include "wx/msw/sound.h"
70#elif defined(__WXCOCOA__)
71    #include "wx/cocoa/sound.h"
72#elif defined(__WXMAC__)
73    #include "wx/mac/sound.h"
74#elif defined(__WXPM__)
75    #include "wx/os2/sound.h"
76#elif defined(__UNIX__)
77    #include "wx/unix/sound.h"
78#endif
79
80// ----------------------------------------------------------------------------
81// wxSoundBase methods
82// ----------------------------------------------------------------------------
83
84inline bool wxSoundBase::Play(const wxString& filename, unsigned flags)
85{
86    wxSound snd(filename);
87    return snd.IsOk() ? snd.Play(flags) : false;
88}
89
90#if WXWIN_COMPATIBILITY_2_4
91inline bool wxSoundBase::Play(bool async, bool looped) const
92{
93    unsigned flags = 0;
94    if (async) flags |= wxSOUND_ASYNC;
95    if (looped) flags |= wxSOUND_LOOP | wxSOUND_ASYNC;
96    return DoPlay(flags);
97}
98#endif
99
100#endif // wxUSE_SOUND
101
102#endif // _WX_SOUND_H_BASE_
Note: See TracBrowser for help on using the repository browser.