This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/wxWidgets-3.0.5/include/wx/osx/sound.h

84 lines
2.1 KiB
C
Raw Permalink Normal View History

/////////////////////////////////////////////////////////////////////////////
// Name: wx/osx/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
// 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();
// mark this to be deleted
virtual void MarkForDeletion();
virtual bool IsMarkedForDeletion() const { return m_markedForDeletion; }
// does the true work of stopping and cleaning up
virtual void DoStop() = 0;
protected :
void CreateAndStartTimer();
unsigned int m_flags;
wxSoundTimer* m_pTimer;
bool m_markedForDeletion;
} ;
class WXDLLIMPEXP_ADV wxSound : public wxSoundBase
{
public:
wxSound();
wxSound(const wxString& fileName, bool isResource = false);
wxSound(size_t size, const void* data);
virtual ~wxSound();
// Create from resource or file
bool Create(const wxString& fileName, bool isResource = false);
// Create from data
bool Create(size_t size, const void* 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_