VoxelEngine
 
Loading...
Searching...
No Matches
Audio.h
1#pragma once
2
3#include <glm/glm.hpp>
4
5#include <soloud_wav.h>
6#include <soloud_wavstream.h>
7#include <variant>
8
9#include "AudioSettings.h"
10
11namespace SoLoud {
12 class Soloud;
13}
14
15namespace engine {
16
17 enum class AudioType {
18 // Invalid,
19 Effect,
20 Music,
21 Background,
22 };
23
24 class Audio {
25 public:
26 //~Audio();
27
28 // void isValid();
29
32 void play();
33
35 void stop();
36
38 void restart();
39
42 bool finished() const;
43
44 void pause();
45 void resume();
46 bool isPaused() const;
47 bool isPlaying() const;
48
49 void setVolume(float volume);
50 void setLooping(bool looping);
51 void setPosition(const glm::vec3& position);
52 void setVelocity(const glm::vec3& velocity);
53
57 void applySettings(const AudioSettings& settings);
58
64 void playWithSettings(const AudioSettings& settings, bool saveSettings = false);
65
66 const AudioSettings& getSettings() const;
67
68 private:
69 friend class AudioManager;
70
71 Audio(
72 SoLoud::Soloud* soloud,
73 SoLoud::Wav* audio,
74 AudioType audioType,
75 const AudioSettings& settings
76 );
77 Audio(
78 SoLoud::Soloud* soloud,
79 SoLoud::WavStream* audio,
80 AudioType audioType,
81 const AudioSettings& settings
82 );
83 // Audio(); // invalid ctor
84
85 SoLoud::Soloud* m_soloud;
86 AudioType m_audioType;
87 SoLoud::AudioSource* m_source;
88 SoLoud::handle m_handle;
89
90 AudioSettings m_settings;
91 };
92} // namespace engine
Definition AudioManager.h:14
Definition Audio.h:24
void play()
Plays the audio with the current settings.
Definition Audio.cpp:36
void restart()
Restarts the audio.
Definition Audio.cpp:45
bool finished() const
Checks if the audio has finished playing.
Definition Audio.cpp:53
void applySettings(const AudioSettings &settings)
Applies the given settings to the audio.
Definition Audio.cpp:93
void playWithSettings(const AudioSettings &settings, bool saveSettings=false)
Plays the audio with the given settings.
Definition Audio.cpp:114
void stop()
Stops the audio.
Definition Audio.cpp:41
Definition AudioSettings.h:9