wxWidgets/include/wx/osx/sound.h
Vadim Zeitlin 6f0740beb5 Use FWD version of DLL export macro in forward declaration.
Forward declarations must use WXDLLIMPEXP_FWD_XXX and not WXDLLIMPEXP_XXX to
avoid g++ warnings about "type attributes are honored only at type definition".

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62155 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-26 16:43:37 +00:00

81 lines
2.0 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: sound.h
// Purpose: wxSound class (loads and plays short Windows .wav files).
// Optional on non-Windows platforms.
// Author: Ryan Norton, Stefan Csomor
// Modified by:
// Created: 1998-01-01
// RCS-ID: $Id$
// Copyright: (c) Ryan Norton, Stefan Csomor
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_SOUND_H_
#define _WX_SOUND_H_
#if wxUSE_SOUND
#include "wx/object.h"
class WXDLLIMPEXP_FWD_ADV wxSoundTimer;
class WXDLLIMPEXP_ADV wxSoundData
{
public :
wxSoundData();
virtual ~wxSoundData();
virtual bool Play(unsigned int flags) = 0;
// stops the sound and deletes the optional timer
virtual void Stop();
// can be called by a timer for repeated tasks during playback
virtual void SoundTask();
// does the true work of stopping and cleaning up
virtual void DoStop() = 0;
protected :
void CreateAndStartTimer();
unsigned int m_flags;
wxSoundTimer* m_pTimer;
} ;
class WXDLLIMPEXP_ADV wxSound : public wxSoundBase
{
public:
wxSound();
wxSound(const wxString& fileName, bool isResource = FALSE);
wxSound(int size, const wxByte* data);
virtual ~wxSound();
// 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() const { return m_data != NULL; }
// Stop playing any sound
static void Stop();
// Returns true if a sound is being played
static bool IsPlaying();
// Notification when a sound has stopped
static void SoundStopped(const wxSoundData* data);
protected:
bool DoPlay(unsigned flags) const;
void Init();
private:
// data of this object
class wxSoundData *m_data;
wxDECLARE_NO_COPY_CLASS(wxSound);
};
#endif
#endif
// _WX_SOUND_H_