VEGO-Engine  0.1
Loading...
Searching...
No Matches
SoundManager.h
1#pragma once
2
3#include <SDL_mixer.h>
4#include <map>
5#include <vector>
6
7#include "ECS.h"
8#include "TextureManager.h"
9
10class GameInternal;
11
19{
20 public:
21 SoundManager() {}
23 for (auto& it : this->sound_cache) {
24 Mix_FreeChunk(it.second);
25 }
26
27 for (auto& it : this->music_cache) {
28 Mix_FreeMusic(it.second);
29 }
30 }
31
32 SoundManager(SoundManager const&) = delete;
33 void operator=(SoundManager const&) = delete;
34
35 std::map<const char*, Mix_Music*> music_cache;
36 std::map<const char*, Mix_Chunk*> sound_cache;
37
43 Mix_Music* loadMusic(const char* fileName);
49 Mix_Chunk* loadSound(const char* fileName);
50
57 static void playSound(GameInternal* game, std::string sound, bool canOverlap, int loops, int volume, int channel);
63 static void playMusic(GameInternal* game, std::string sound, int loops, int volume, int ms);
64
65 static void setSoundVolume(int volume, int channel);
66 static void setMusicVolume(int volume);
67
68 static void pauseSound(int channel);
69 static void pauseMusic();
70
71 static void restartSound(int channel);
72 static void restartMusic();
73
74 static void fadeOutMusic(int ms);
75
76 private:
77};
Definition GameInternal.h:24
Handles music and sound.
Definition SoundManager.h:19
Mix_Chunk * loadSound(const char *fileName)
Loads sound effects from a file (wav)
Definition SoundManager.cpp:30
static void pauseMusic()
Handles pausing music track.
Definition SoundManager.cpp:114
static void pauseSound(int channel)
Handles pausing sound effects (either all or on a specific channel)
Definition SoundManager.cpp:109
static void playSound(GameInternal *game, std::string sound, bool canOverlap, int loops, int volume, int channel)
Handles playing of sound effects.
Definition SoundManager.cpp:50
static void restartMusic()
Handles resuming music track.
Definition SoundManager.cpp:124
Mix_Music * loadMusic(const char *fileName)
Loads music from a file (mp3)
Definition SoundManager.cpp:10
static void restartSound(int channel)
Handles resuming sound effects (either all or on a specific channel)
Definition SoundManager.cpp:119
static void setMusicVolume(int volume)
Volume handling for music track.
Definition SoundManager.cpp:104
static void playMusic(GameInternal *game, std::string sound, int loops, int volume, int ms)
Handles playing of music.
Definition SoundManager.cpp:77
static void fadeOutMusic(int ms)
Handles fading out a music track.
Definition SoundManager.cpp:129
static void setSoundVolume(int volume, int channel)
Volume handling for sound effects (either all or on a specific channel)
Definition SoundManager.cpp:99