CPP-TOOLBOX
Loading...
Searching...
No Matches
openal_utils.hpp
Go to the documentation of this file.
1#ifndef OPENAL_UTILS_HPP
2#define OPENAL_UTILS_HPP
3
4#include <AL/al.h>
5#include <AL/alc.h>
6#include <string>
7#include <glm/glm.hpp>
8
9// TODO: renmae to openal_utils and then make it a submodule
10// TODO: on operations that can fail we can return an optional
11
12std::string get_attribute_name(ALenum attribute);
13void display_al_error(const std::string &message, ALenum error);
14
15// source attribute setters and getters
16void set_source_float(ALuint source, ALenum attribute, float value);
17ALfloat get_source_float(ALuint source, ALenum attribute);
18
19void set_source_float_vector(ALuint source, ALenum attribute, const ALfloat *values);
20
21void set_source_int(ALuint source, ALenum attribute, ALint value);
22ALint get_source_int(ALuint source, ALenum attribute);
23
24void set_source_float3(ALuint source, ALenum attribute, float x, float y, float z);
25glm::vec3 get_source_float3(ALuint source, ALenum attribute);
26
27ALfloat get_listener_float(ALenum attribute);
28glm::vec3 get_listener_float3(ALenum attribute);
29
30ALint get_buffer_int(ALuint buffer, ALenum attribute);
31
32ALint get_source_state(ALuint source);
33
34// source control
35void play_source(ALuint source);
36void stop_source(ALuint source);
37void pause_source(ALuint source);
38void rewind_source(ALuint source);
39
40void set_source_buffer(ALuint source, ALuint buffer);
41void detach_source_buffer(ALuint source);
42void set_source_position(ALuint source, const glm::vec3 &position);
43void set_source_velocity(ALuint source, const glm::vec3 &velocity);
44void set_source_direction(ALuint source, const glm::vec3 &direction);
45void set_source_pitch(ALuint source, float pitch);
46void set_source_gain(ALuint source, float gain);
47void set_source_looping(ALuint source, bool loop);
48
49// listener attributes
50void set_listener_attribute_float(ALenum attribute, float value);
51void set_listener_attribute_float_vector(ALenum attribute, const ALfloat *values);
52void set_listener_attribute_float3(ALenum attribute, float x, float y, float z);
53
54void set_listener_position(const glm::vec3 &position);
55void set_listener_velocity(const glm::vec3 &velocity);
56void set_listener_orientation(const glm::vec3 &at, const glm::vec3 &up);
57void set_listener_gain(float gain);
58
59// buffer management
60ALuint create_buffer();
61void delete_buffer(ALuint buffer);
62
63// source management
64ALuint create_source();
65void delete_source(ALuint source);
66
67// global openal context management
69void shutdown_openal();
70
71#endif // OPENAL_UTILS_HPP
@ y
Definition input_state.hpp:51
@ x
Definition input_state.hpp:50
@ z
Definition input_state.hpp:52
void set_listener_gain(float gain)
Definition openal_utils.cpp:201
ALint get_source_int(ALuint source, ALenum attribute)
Definition openal_utils.cpp:59
void set_source_float3(ALuint source, ALenum attribute, float x, float y, float z)
Definition openal_utils.cpp:51
void stop_source(ALuint source)
Definition openal_utils.cpp:139
void set_listener_attribute_float_vector(ALenum attribute, const ALfloat *values)
Definition openal_utils.cpp:172
void delete_buffer(ALuint buffer)
Definition openal_utils.cpp:216
void rewind_source(ALuint source)
Definition openal_utils.cpp:155
void set_source_int(ALuint source, ALenum attribute, ALint value)
Definition openal_utils.cpp:43
void set_source_direction(ALuint source, const glm::vec3 &direction)
Definition openal_utils.cpp:255
void set_source_velocity(ALuint source, const glm::vec3 &velocity)
Definition openal_utils.cpp:251
void set_listener_position(const glm::vec3 &position)
Definition openal_utils.cpp:188
glm::vec3 get_source_float3(ALuint source, ALenum attribute)
Definition openal_utils.cpp:81
void set_source_looping(ALuint source, bool loop)
Definition openal_utils.cpp:263
void set_listener_attribute_float(ALenum attribute, float value)
Definition openal_utils.cpp:164
void shutdown_openal()
Definition openal_utils.cpp:284
ALint get_source_state(ALuint source)
Definition openal_utils.cpp:125
glm::vec3 get_listener_float3(ALenum attribute)
Definition openal_utils.cpp:103
void set_source_float_vector(ALuint source, ALenum attribute, const ALfloat *values)
Definition openal_utils.cpp:35
void display_al_error(const std::string &message, ALenum error)
Definition openal_utils.cpp:22
ALuint create_buffer()
Definition openal_utils.cpp:206
void play_source(ALuint source)
Definition openal_utils.cpp:131
void set_listener_attribute_float3(ALenum attribute, float x, float y, float z)
Definition openal_utils.cpp:180
void set_source_gain(ALuint source, float gain)
Definition openal_utils.cpp:261
void delete_source(ALuint source)
Definition openal_utils.cpp:235
void set_source_buffer(ALuint source, ALuint buffer)
Definition openal_utils.cpp:244
void set_source_position(ALuint source, const glm::vec3 &position)
Definition openal_utils.cpp:247
ALfloat get_source_float(ALuint source, ALenum attribute)
Definition openal_utils.cpp:70
void pause_source(ALuint source)
Definition openal_utils.cpp:147
void set_source_float(ALuint source, ALenum attribute, float value)
Definition openal_utils.cpp:27
void set_source_pitch(ALuint source, float pitch)
Definition openal_utils.cpp:259
ALuint create_source()
Definition openal_utils.cpp:225
void set_listener_orientation(const glm::vec3 &at, const glm::vec3 &up)
Definition openal_utils.cpp:196
std::string get_attribute_name(ALenum attribute)
Definition openal_utils.cpp:17
void initialize_openal()
Definition openal_utils.cpp:267
void detach_source_buffer(ALuint source)
Definition openal_utils.cpp:245
void set_listener_velocity(const glm::vec3 &velocity)
Definition openal_utils.cpp:192
ALint get_buffer_int(ALuint buffer, ALenum attribute)
Definition openal_utils.cpp:114
ALfloat get_listener_float(ALenum attribute)
Definition openal_utils.cpp:92