00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef SDLAUDIO_H
00023 #define SDLAUDIO_H
00024
00025 #include "SDL/SDL.h"
00026 #include "SDL/SDL_mixer.h"
00027 #include <list>
00028
00035 using namespace std;
00036
00044 class DECLSPEC SdlAudio
00045 {
00046 public:
00053 typedef void (*CallBack)( SdlAudio *, void * );
00054
00060 DECLSPEC SdlAudio( const char *name = 0 );
00061 virtual DECLSPEC ~SdlAudio();
00062
00067 DECLSPEC void rename( const char *newname );
00069 const char *getName() const { return chName; }
00070
00077 virtual int play( int loops = 0 ) = 0;
00086 virtual int fadeIn( int ms, int loops = 0 ) = 0;
00088 virtual bool isPlaying() = 0;
00092 virtual void pause() = 0;
00094 virtual bool isPaused() = 0;
00098 virtual void resume() = 0;
00102 virtual void stop() = 0;
00108 virtual int fadeOut( int ms ) = 0;
00114 virtual Mix_Fading fadeStatus() = 0;
00115
00123 virtual void setVolume( int v ) = 0;
00125 virtual int getVolume() = 0;
00126
00130 virtual int getChannel() = 0;
00131
00139 DECLSPEC void setCallBack( CallBack c, void *pData );
00144 virtual bool isMusic() = 0;
00145
00150 bool isFailed() { return bFailed; }
00151
00152 protected:
00157 DECLSPEC virtual void failed();
00159 CallBack cb;
00161 void *cbData;
00162
00163 private:
00164 bool bFailed;
00165 char *chName;
00166 };
00167
00168 #endif