+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;
+} ;
+