Wrath of Zeus
Made by Torchlight Games for CSE 125 SP24
Loading...
Searching...
No Matches
audiomanager.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <unordered_map>
4#include <boost/filesystem.hpp>
5#include <SFML/Audio.hpp>
6#include <memory>
7#include <string>
8
9#include "client/core.hpp"
13#include "shared/game/event.hpp"
14
16public:
19
23 void init();
24
25 void playMusic(ClientMusic music);
26 void pauseMusic(ClientMusic music);
27 void stopMusic(ClientMusic music);
28 void playSFX(ClientSFX sfx);
29
30 void doTick(glm::vec3 player_pos,
31 const LoadSoundCommandsEvent& delta,
32 std::array<boost::optional<SharedObject>, MAX_POINT_LIGHTS> light_sources);
33
34private:
35 std::unordered_map<ClientMusic, std::unique_ptr<sf::Music>> clientMusics;
36
37 std::unordered_map<ClientSFX, std::unique_ptr<sf::SoundBuffer>> clientSFXBufs;
38 std::unordered_map<ClientSFX, std::unique_ptr<sf::Sound>> clientSFXs;
39
40 std::unordered_map<ServerSFX, std::unique_ptr<sf::SoundBuffer>> serverSFXBufs;
41 std::unordered_map<SoundID, std::unique_ptr<sf::Sound>> serverSFXs;
42
43 std::array<std::unique_ptr<sf::Sound>, MAX_POINT_LIGHTS> serverLightSFXs;
44
45 std::unique_ptr<sf::SoundBuffer> loadSFXBuf(ClientSFX sfx);
46 std::unique_ptr<sf::SoundBuffer> loadSFXBuf(ServerSFX sfx);
47 std::unique_ptr<sf::SoundBuffer> loadSFXBuf(std::string path);
48
49 void setSoundParams(sf::Sound& sound, const SoundSource& source);
50
51 std::unique_ptr<sf::Sound> makeSound(const SoundSource& source);
52 std::unique_ptr<sf::Music> makeMusic(ClientMusic music);
53};
Definition: audiomanager.hpp:15
void playSFX(ClientSFX sfx)
Definition: audiomanager.cpp:70
void init()
Definition: audiomanager.cpp:24
void doTick(glm::vec3 player_pos, const LoadSoundCommandsEvent &delta, std::array< boost::optional< SharedObject >, MAX_POINT_LIGHTS > light_sources)
Definition: audiomanager.cpp:74
void playMusic(ClientMusic music)
Definition: audiomanager.cpp:58
void stopMusic(ClientMusic music)
Definition: audiomanager.cpp:66
~AudioManager()
Definition: audiomanager.cpp:20
void pauseMusic(ClientMusic music)
Definition: audiomanager.cpp:62
AudioManager()
Definition: audiomanager.cpp:16
GLsizei GLsizei GLchar * source
Definition: glad.h:1897
#define MAX_POINT_LIGHTS
Definition: constants.hpp:7
ServerSFX
Definition: soundtype.hpp:38
ClientSFX
Definition: soundtype.hpp:26
ClientMusic
Definition: soundtype.hpp:11
Definition: event.hpp:130
Definition: soundsource.hpp:10