00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _ABSTRACTAUDIOSYSTEM_
00019 #define _ABSTRACTAUDIOSYSTEM_
00020
00021 #include <boost/shared_ptr.hpp>
00022
00023 #include "sound/AbstractSoundEffect.h"
00024 #include "sound/SoundResourceHandle.h"
00025
00026 #include "util/Settings.h"
00027
00028 enum AUDIOFILETYPE
00029 {
00030 AUDIOFILETYPE_WAV,
00031 AUDIOFILETYPE_OGG,
00032 AUDIOFILETYPE_MP3,
00033 AUDIOFILETYPE_UNSUPPORTED
00034 };
00035
00036 class SoundResource;
00037
00038 class AbstractAudioSystem
00039 {
00040 public:
00041 virtual bool Initialize(const Settings& settings) = 0;
00042 virtual void Shutdown() = 0;
00043
00044 virtual void StopAllSounds() = 0;
00045 virtual void ResumeAllSounds() = 0;
00046
00047 virtual void SetVolume(const int nVolume) = 0;
00048 virtual int GetVolume() const = 0;
00049
00050 virtual AbstractSoundEffectPtr CreateSoundEffect(SoundResourceHandlePtr pSoundResourceHandle) = 0;
00051 virtual void DestroySoundEffect(AbstractSoundEffectPtr pEffect) = 0;
00052 };
00053
00054 #endif