// Name: sound.h
// Purpose: wxSound class (loads and plays short Windows .wav files).
// Optional on non-Windows platforms.
-// Author: Stefan Csomor
+// Author: Ryan Norton, Stefan Csomor
// Modified by:
// Created: 1998-01-01
// RCS-ID: $Id$
-// Copyright: (c) Stefan Csomor
+// Copyright: (c) Ryan Norton, Stefan Csomor
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_SOUND_H_
#define _WX_SOUND_H_
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "sound.h"
-#endif
-
#if wxUSE_SOUND
#include "wx/object.h"
-class WXDLLEXPORT wxSound : public wxSoundBase
+class WXDLLIMPEXP_ADV wxSound : public wxSoundBase
{
public:
wxSound();
wxSound(const wxString& fileName, bool isResource = FALSE);
wxSound(int size, const wxByte* data);
- ~wxSound();
+ virtual ~wxSound();
public:
bool Create(const wxString& fileName, bool isResource = FALSE);
bool IsOk() const { return !m_sndname.IsEmpty(); }
+ static void Stop();
+ static bool IsPlaying();
-protected:
- // prevent collision with some BSD definitions of macro Free()
- bool FreeData();
-
+ void* GetHandle();
+protected:
bool DoPlay(unsigned flags) const;
private:
- void* m_sndChan;
-
- wxString m_sndname;
- void* m_hSnd;
- int m_waveLength;
- bool m_isResource;
+ wxString m_sndname; //file path
+ char* m_hSnd; //pointer to resource or memory location
+ int m_waveLength; //size of file in memory mode
+ void* m_pTimer; //timer
+
+ enum wxSoundType
+ {
+ wxSound_MEMORY,
+ wxSound_FILE,
+ wxSound_RESOURCE,
+ wxSound_NONE
+ } m_type; //mode
};
#endif