TurtleBrains  0.3.0
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_configuration.h"
14 #if defined(tb_with_audio)
15 
16 #include "../core/tb_noncopyable.h"
17 #include "../core/tb_string.h"
18 #include "../core/tb_types.h"
19 
20 namespace TurtleBrains
21 {
22  namespace Audio
23  {
24 
33 
37  extern const AudioHandle kInvalidAudio;
38 
44 
49  extern const AudioChannel kInvalidChannel;
50 
57  {
58  public:
63  explicit AudioController(const AudioHandle& audioData = kInvalidAudio);
64 
68  AudioController(const AudioController& other);
69 
74  ~AudioController(void);
75 
79  void Stop(void);
80 
85  void StopLooping(void);
86 
91  void SetPitch(const float pitch);
92 
97  void SetVolume(const float volume);
98 
102  float GetVolume(void) const;
103 
107  bool IsComplete(void) const;
108 
109  friend class AudioManager;
110  private:
111  AudioHandle mAudioData;
112  AudioChannel mAudioChannel;
113  };
114 
115 
122  {
123  public:
128  AudioManager(void);
129 
134  ~AudioManager(void);
135 
157  bool LoadEventTable(const tbCore::tbString& eventTableName, const tbCore::tbString& eventTableFile);
158 
165  AudioHandle CreateSoundFromFile(const tbCore::tbString& filename);
166 
174  void DestroySound(const AudioHandle& audioHandle);
175 
184  AudioController PlayEvent(const tbCore::tbString& eventTableName, const tbCore::tbString& eventName);
185 
193  AudioController PlaySound(const AudioHandle& audioHandle, const bool isLooping = false);
194 
202  //AudioController PlaySound(const tbCore::tbString& filename, const bool isLooping = false);
203 
208  void Update(void);
209 
210  private:
211  };
212 
218 
219  }; /* namespace Audio */
220 }; /* namespace TurtleBrains */
221 
222 namespace tbAudio = TurtleBrains::Audio;
223 
224 #endif /* tb_with_audio */
225 #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:43
void DestroySound(const AudioHandle &audioHandle)
AudioHandle CreateSoundFromFile(const tbCore::tbString &filename)
AudioController(const AudioHandle &audioData=kInvalidAudio)
tbCore::uint32 AudioHandle
Definition: tb_audio_manager.h:32
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:56
Definition: tb_audio_manager.h:121
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:22
uint32_t uint32
Unsigned integer with a size of 32 bits. Supports values from 0 to 4294967295, (2^32 - 1)...
Definition: tb_types.h:28
const AudioHandle kInvalidAudio
const AudioChannel kInvalidChannel
std::string tbString
Definition: tb_string.h:335
void SetVolume(const float volume)