1#ifndef SOUND_SYSTEM_HPP
2#define SOUND_SYSTEM_HPP
10#include <unordered_map>
33 SoundSystem(
int num_sources = 100,
const std::unordered_map<SoundType, std::string> &sound_type_to_file = {});
54 void play_sound(
const std::string &source_name,
const std::string &sound_name);
58 std::map<std::string, ALuint> sound_name_to_loaded_buffer_id;
59 std::map<std::string, ALuint> source_name_to_source_id;
62 std::vector<ALuint> sound_sources;
63 std::unordered_map<SoundType, ALuint> sound_type_to_buffer_id;
64 std::queue<QueuedSound> sound_to_play_queue;
68 ALuint get_available_source_id();
69 void init_sound_buffers(
const std::unordered_map<SoundType, std::string> &sound_type_to_file);
70 void init_sound_sources(
int num_sources);
73 void deinitialize_openal();
void play_all_sounds()
Definition sound_system.cpp:248
void set_listener_orientation(const glm::vec3 &forward, const glm::vec3 &up)
Definition sound_system.cpp:165
void stop_looping_sound(const unsigned int &source_id)
Definition sound_system.cpp:235
~SoundSystem()
Definition sound_system.cpp:18
void create_sound_source(const std::string &source_name)
Definition sound_system.cpp:83
void queue_sound(SoundType type, glm::vec3 position=glm::vec3(0))
Definition sound_system.cpp:214
unsigned int queue_looping_sound(SoundType type, glm::vec3 position)
Definition sound_system.cpp:218
void set_source_looping_by_name(const std::string &source_name, bool looping)
Definition sound_system.cpp:183
void set_source_gain_by_name(const std::string &source_name, float gain)
Definition sound_system.cpp:171
void play_sound(const std::string &source_name, const std::string &sound_name)
Definition sound_system.cpp:99
void load_sound_into_system_for_playback(const std::string &sound_name, const char *filename)
Definition sound_system.cpp:125
void set_listener_position(float x, float y, float z)
Definition sound_system.cpp:141
Logger logger
Definition sound_system.hpp:30
SoundSystem(int num_sources=100, const std::unordered_map< SoundType, std::string > &sound_type_to_file={})
Definition sound_system.cpp:11
void initialize_openal()
Definition openal_utils.cpp:267
SoundType
Definition sound_types.hpp:4
Definition sound_system.hpp:23
SoundType type
Definition sound_system.hpp:24
glm::vec3 position
Definition sound_system.hpp:25