00001 #ifndef HEADER_SOUNDAGENT_H 00002 #define HEADER_SOUNDAGENT_H 00003 00004 class Path; 00005 class BaseMsg; 00006 00007 #include "BaseAgent.h" 00008 #include "Name.h" 00009 #include "IntMsg.h" 00010 00011 #include "SDL.h" 00012 #include "SDL_mixer.h" 00013 #include <string> 00014 00015 /** 00016 * Sound and music interface. 00017 */ 00018 class SoundAgent : public BaseAgent { 00019 AGENT(SoundAgent, Name::SOUND_NAME); 00020 protected: 00021 void own_init(); 00022 virtual void setSoundVolume(int volume) = 0; 00023 virtual void setMusicVolume(int volume) = 0; 00024 public: 00025 virtual int playSound(Mix_Chunk *sound, int volume, 00026 int loops=0) = 0; 00027 00028 virtual void playMusic(const Path &file, 00029 BaseMsg *finished) = 0; 00030 virtual void stopMusic() = 0; 00031 void receiveString(const StringMsg *msg); 00032 }; 00033 00034 #endif