MusicManager.h
Go to the documentation of this file.00001 00010 #ifndef __MusicManager_H__ 00011 #define __MusicManager_H__ 00012 00013 // Includes 00014 #include "Singleton.h" 00015 #include "Filename.h" 00016 00017 // Forward declares 00018 class Music; 00019 00020 // MusicManager 00021 class MusicManager:public Singleton<MusicManager> 00022 { 00023 public: 00024 MusicManager(); 00025 virtual ~MusicManager(); 00026 00027 void PlayMusic(const Filename& filename, bool loop = true, float volume = 1, float fadeInTime_ = 0); 00028 void StopMusic(float fadeOutTime = 0.5f); 00029 00030 void SwitchMusic(const Filename& filename, bool loop = true, float volume = 1, float fadeOutTime = 0.5f, float fadeInTime = 0); 00031 void CrossFadeMusic(const Filename& filename, bool loop = true, float volume = 1, float crossFadeTime = 1.0f); 00032 00033 const Filename& GetCurrentMusicFilename(); 00034 Music* GetCurrentMusic(); 00035 00036 void Update(float deltaTime); 00037 00038 00039 private: 00040 Filename currentMusicFilename_; 00041 Music* currentMusic_; 00042 float currentMusicVolume_; 00043 bool currentMusicLoop_; 00044 00045 Filename switchMusicFilename_; 00046 Music* switchMusic_; 00047 float switchMusicVolume_; 00048 bool switchMusicLoop_; 00049 00050 enum State 00051 { 00052 State_Playing, 00053 State_NotPlaying, 00054 State_FadingIn, 00055 State_FadingOut, 00056 State_SwitchFadingOut, 00057 State_CrossFading, 00058 }; 00059 State state_; 00060 00061 float fadeInTime_; 00062 float fadeOutTime_; 00063 float crossFadeTime_; 00064 float currentTime_; 00065 }; 00066 00067 #define siMusicManager MusicManager::GetInstance() 00068 00069 #endif /* __MusicManager_H__ */ 00070
Reproduction/republishing of any material on this site without permission is strictly prohibited.
