7#include <unordered_map>
26 void Update(
const float deltaT)
override;
35 void PlaySound(
const Sound& sound,
float volume = 1);
55 static void SetSoundPitch(
const Sound& sound,
const float pitch);
62 static void SetSoundPan(
const Sound& sound,
const float pan);
73 void PlayMusic(
const Music& music,
float volume = 1,
const bool loop =
false,
const float crossfadeS = 0);
79 void StopMusic(
const float fadeOutDuration = 0);
155 enum class MusicState : u8
169 float fadeTargetS = 0;
173 void UpdateFade(
const bool fadingIn);
175 void SetMusicVolumeInternal(
float volume);
177 float m_sfxVolume = 1;
178 float m_musicVolume = 1;
180 MusicState m_musicState = MusicState::STOPPED;
181 MusicData m_currentMusic;
182 std::optional<MusicData> m_nextMusic;
183 float m_fadeTargetS = 0;
185 bool m_sfxVolumeChange =
false;
186 std::unordered_map<rAudioBuffer*, std::pair<Sound, float>> m_sounds;
Engine lifelong systems and their managing.
Handles playback of sounds and music with volume control and crossfading.
Definition AudioSystem.hpp:19
void SetMusicVolume(float volume)
Sets the music volume (without affecting sound effects).
Definition AudioSystem.cpp:349
static void SetMasterVolume(float volume)
Sets the master volume for the entire audio device.
Definition AudioSystem.cpp:411
static void SetSoundPan(const Sound &sound, const float pan)
Changes stereo pan of a playing sound.
Definition AudioSystem.cpp:156
void PlayMusic(const Music &music, float volume=1, const bool loop=false, const float crossfadeS=0)
Starts playing background music.
Definition AudioSystem.cpp:168
void SetMusicPitch(const float pitch)
Sets the music pitch.
Definition AudioSystem.cpp:358
void StopSound(const Sound &sound)
Stops a sound effect immediately.
Definition AudioSystem.cpp:115
void SetMusicPan(float pan)
Sets the music stereo pan.
Definition AudioSystem.cpp:373
void PauseMusic()
Pauses the current music stream.
Definition AudioSystem.cpp:256
void SetSFXVolume(float volume)
Sets the volume multiplier for all sound effects.
Definition AudioSystem.cpp:418
std::optional< float > GetMusicPlayedS()
Gets the current playback position.
Definition AudioSystem.cpp:308
void SetSoundVolume(const Sound &sound, float volume)
Changes volume of a currently playing sound.
Definition AudioSystem.cpp:132
void StopMusic(const float fadeOutDuration=0)
Stops the current music, optionally with a fade out.
Definition AudioSystem.cpp:211
bool IsMusicPlaying()
Checks if music is currently playing or fading in.
Definition AudioSystem.cpp:238
void SetMusicLoop(const bool loop)
Enables or disables looping for the current music.
Definition AudioSystem.cpp:392
void SeekMusic(const float timeS)
Seeks to a specific time in the current music.
Definition AudioSystem.cpp:326
void ResumeMusic()
Resumes a paused music stream.
Definition AudioSystem.cpp:273
static void SetSoundPitch(const Sound &sound, const float pitch)
Changes pitch of a playing sound.
Definition AudioSystem.cpp:146
void PlaySound(const Sound &sound, float volume=1)
Plays a sound effect.
Definition AudioSystem.cpp:100
std::optional< float > GetMusicLengthS()
Gets the total length of the current music.
Definition AudioSystem.cpp:290
void Update(const float deltaT) override
Updates music stream and removes finished sounds.
Definition AudioSystem.cpp:7
Base class for all systems.
Definition SystemManager.hpp:27