UGDK  0.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
audiomanager.h
Go to the documentation of this file.
1 #ifndef HORUSEYE_FRAMEWORK_AUDIOMANAGER_H_
2 #define HORUSEYE_FRAMEWORK_AUDIOMANAGER_H_
3 
4 #include <string>
5 #include <map>
6 #include <ugdk/audio/music.h>
7 #include <ugdk/audio/sample.h>
8 
9 #define AUDIO_MANAGER() ugdk::Engine::reference()->audio_manager()
10 
11 namespace ugdk {
12 
13 // Gerenciador de audio
14 class AudioManager {
15  public:
16  AudioManager();
17  ~AudioManager();
18 
20 
22  bool Initialize();
23 
25 
27  bool Release();
28 
30  void Update();
31 
33 
35  Sample* LoadSample(const std::string& filepath);
36 
38 
40  Music* LoadMusic(const std::string& filepath);
41 
43 
45  Music* CurrentMusic() const;
46 
47  private:
48  std::map<std::string, Sample*> sample_data_;
49  std::map<std::string, Music*> music_data_;
50  static const int NUM_CHANNELS = 16;
51 
52  void ReleaseSamples();
53  void ReleaseMusics();
54 };
55 
56 } // namespace ugdk
57 
58 #endif