AireEngine
A 3D Open-World Game Engine
Loading...
Searching...
No Matches
audioSource.h
1#pragma once
2
3#include <AL/al.h>
4#include <AL/alc.h>
5
6#include <glm/glm.hpp>
7
8#include <vector>
9#include <string>
10
11namespace Aire
12{
17 {
18 public:
23 AudioSource(const std::string& soundFile);
24
32 AudioSource(const std::string& soundFile, float x, float y, float z);
33
39 AudioSource(const std::string& soundFile, const glm::vec3& pos);
40
44 void release();
45
49 void play();
50
54 void pause();
55
59 void stop();
60
66 AudioSource* loop(bool shouldLoop);
67
73 AudioSource* spatial(bool isSpatial);
74
82 AudioSource* setPosition(float x, float y, float z);
83
89 AudioSource* setPosition(const glm::vec3& pos);
90
96 AudioSource* setValue(float value);
97
103
110 AudioSource* setExponentialDistanceModel(float refDistance, float rollFactor);
111
116 glm::vec3 getPosition() const;
117
118 private:
125 bool loadWavFile(const std::string& filename, ALuint buffer);
126
127 private:
128 std::vector<ALuint> buffers;
130 ALuint currentBufferIndex = 0;
131 ALuint currentSource = 0;
133 bool playing = false;
135 glm::vec3 position;
136 };
137}
AudioSource class to play sound effects.
Definition audioSource.h:17
AudioSource(const std::string &soundFile)
Constructs an AudioSource object with the specified sound file.
Definition audioSource.cpp:10
AudioSource * setValue(float value)
Set the value of the AudioSource.
Definition audioSource.cpp:92
AudioSource * loop(bool shouldLoop)
Sets whether the audio should loop.
Definition audioSource.cpp:64
void release()
Releases resources associated with the AudioSource.
Definition audioSource.cpp:36
void play()
Plays the audio.
Definition audioSource.cpp:43
glm::vec3 getPosition() const
Gets the position of the AudioSource.
Definition audioSource.cpp:112
void pause()
Pauses the audio.
Definition audioSource.cpp:50
void stop()
Stops the audio.
Definition audioSource.cpp:57
AudioSource * spatial(bool isSpatial)
Sets whether the audio should be spatial.
Definition audioSource.cpp:71
AudioSource * setPosition(float x, float y, float z)
Sets the position of the AudioSource.
Definition audioSource.cpp:79
AudioSource * setExponentialDistanceModel(float refDistance, float rollFactor)
Set the distance model to exponential.
Definition audioSource.cpp:104
AudioSource * setLinearDistanceModel()
Set the distance model to linear.
Definition audioSource.cpp:98