TurtleBrains  0.2.1
High quality, portable, C++ API for native application and game development.
tb_audio_manager.h
1 
10 #ifndef _TurtleBrains_AudioManager_h_
11 #define _TurtleBrains_AudioManager_h_
12 
13 #include "../core/tb_noncopyable.h"
14 #include "../core/tb_string.h"
15 #include "../core/tb_types.h"
16 
17 namespace TurtleBrains
18 {
19  namespace Audio
20  {
21 
30 
34  extern const AudioHandle kInvalidAudio;
35 
41 
46  extern const AudioChannel kInvalidChannel;
47 
54  {
55  public:
60  explicit AudioController(const AudioHandle& audioData = kInvalidAudio);
61 
65  AudioController(const AudioController& other);
66 
71  ~AudioController(void);
72 
76  void Stop(void);
77 
82  void StopLooping(void);
83 
88  void SetPitch(const float pitch);
89 
94  void SetVolume(const float volume);
95 
99  float GetVolume(void) const;
100 
104  bool IsComplete(void) const;
105 
106  friend class AudioManager;
107  private:
108  AudioHandle mAudioData;
109  AudioChannel mAudioChannel;
110  };
111 
112 
119  {
120  public:
125  AudioManager(void);
126 
131  ~AudioManager(void);
132 
154  bool LoadEventTable(const tbCore::tbString& eventTableName, const tbCore::tbString& eventTableFile);
155 
162  AudioHandle CreateSoundFromFile(const tbCore::tbString& filename);
163 
171  void DestroySound(const AudioHandle& audioHandle);
172 
181  AudioController PlayEvent(const tbCore::tbString& eventTableName, const tbCore::tbString& eventName);
182 
190  AudioController PlaySound(const AudioHandle& audioHandle, const bool isLooping = false);
191 
199  //AudioController PlaySound(const tbCore::tbString& filename, const bool isLooping = false);
200 
205  void Update(void);
206 
207  private:
208  };
209 
215 
216  }; /* namespace Audio */
217 }; /* namespace TurtleBrains */
218 
219 namespace tbAudio = TurtleBrains::Audio;
220 
221 #endif /* _TurtleBrains_AudioManager_h_ */
AudioController PlaySound(const AudioHandle &audioHandle, const bool isLooping=false)
void SetPitch(const float pitch)
tbCore::uint32 AudioChannel
Definition: tb_audio_manager.h:40
void DestroySound(const AudioHandle &audioHandle)
AudioHandle CreateSoundFromFile(const tbCore::tbString &filename)
AudioController(const AudioHandle &audioData=kInvalidAudio)
tbCore::uint32 AudioHandle
Definition: tb_audio_manager.h:29
Definition: tb_noncopyable.h:22
AudioController PlayEvent(const tbCore::tbString &eventTableName, const tbCore::tbString &eventName)
Contains all functions, classes and helpers related to game/application development written by Tim "B...
Definition: tb_application_dialog.h:21
AudioManager theAudioManager
Definition: tb_audio_manager.h:53
Definition: tb_audio_manager.h:118
bool LoadEventTable(const tbCore::tbString &eventTableName, const tbCore::tbString &eventTableFile)
Bring some sound into the games created with TurtleBrains using a very simple fire and forget AudioMa...
Definition: tb_audio_manager.h:19
uint32_t uint32
Unsigned integer with a size of 32 bits. Supports values from 0 to 4294967295, (2^32 - 1)...
Definition: tb_types.h:27
const AudioHandle kInvalidAudio
const AudioChannel kInvalidChannel
std::string tbString
Definition: tb_string.h:293
void SetVolume(const float volume)