TazGraph Project
v0.1.0
Loading...
Searching...
No Matches
TazGraphEngine
AudioEngine
AudioEngine.h
1
#pragma once
2
3
#include <SDL2/SDL_mixer.h>
4
#include "../ConsoleLogger.h"
5
6
#include <string>
7
#include <map>
8
9
10
class
SoundEffect
{
11
public
:
12
friend
class
AudioEngine
;
13
14
//@param loops: if loops == -1 --> loop forever
15
// else play it loops+1 times
16
void
play(
int
loops = 0);
17
private
:
18
Mix_Chunk* _chunk =
nullptr
;
19
};
20
21
class
Music
{
22
public
:
23
friend
class
AudioEngine
;
24
25
//@param loops: if loops == -1 --> loop forever
26
// else play it loops times
27
void
play(
int
loops = 1);
28
29
static
void
pause();
30
static
void
stop();
31
static
void
resume();
32
private
:
33
Mix_Music* _music =
nullptr
;
34
};
35
36
37
class
AudioEngine
{
38
public
:
39
AudioEngine
();
40
~AudioEngine
();
41
42
void
init();
43
void
destroy();
44
45
SoundEffect
loadSoundEffect(
const
std::string& filePath);
46
Music
loadMusic(
const
std::string& filePath);
47
private
:
48
49
std::map<std::string, Mix_Chunk*> _effectMap;
50
std::map<std::string, Mix_Music*> _musicMap;
51
52
bool
_isInitialized =
false
;
53
};
54
AudioEngine
Definition
AudioEngine.h:37
Music
Definition
AudioEngine.h:21
SoundEffect
Definition
AudioEngine.h:10
Generated by
1.9.8