3#include "miniaudio/miniaudio.h"
50 static std::unique_ptr<AudioGroup>
Create(ma_engine* engine) {
51 return std::unique_ptr<AudioGroup>(
new AudioGroup(engine));
92 void FadeVolume(
float targetVolume, std::chrono::milliseconds duration);
Controls multiple sounds as a single unit.
Definition audio_group.h:24
~AudioGroup()
Destructor.
Definition audio_group.cpp:19
void SetFadingState(bool fading)
Allows AudioManager to set fading state directly.
Definition audio_group.h:141
bool IsFading() const
Checks if the group is currently fading.
Definition audio_group.h:127
void SetVolume(float volume)
Sets the volume for this group.
Definition audio_group.cpp:27
void FadeVolume(float targetVolume, std::chrono::milliseconds duration)
Fades the group volume to a target over duration.
Definition audio_group.cpp:36
ma_engine * engine_
Reference to miniaudio engine.
Definition audio_group.h:156
float target_volume_
Target volume for fade.
Definition audio_group.h:146
bool is_fading_
Whether currently fading.
Definition audio_group.h:148
std::chrono::steady_clock::time_point GetFadeEndTime() const
Gets the end time of the current fade.
Definition audio_group.h:106
std::chrono::milliseconds GetFadeDuration() const
Gets the duration of the current fade.
Definition audio_group.h:134
ma_sound_group * GetHandle()
Gets the underlying miniaudio sound group handle.
Definition audio_group.h:99
float GetStartVolume() const
Gets the starting volume for the current fade.
Definition audio_group.h:120
float GetTargetVolume() const
Gets the target volume for the current fade.
Definition audio_group.h:113
float start_volume_
Starting volume for fade.
Definition audio_group.h:147
std::chrono::milliseconds fade_duration_
Duration of the fade.
Definition audio_group.h:150
std::chrono::steady_clock::time_point fade_end_time_
When the fade will end.
Definition audio_group.h:149
static std::unique_ptr< AudioGroup > Create(ma_engine *engine)
Factory method for creating AudioGroup instances.
Definition audio_group.h:50
float GetVolume() const
Gets the current volume for this group.
Definition audio_group.h:84
ma_sound_group * sound_group_
miniaudio sound group handle
Definition audio_group.h:155
float volume_
Current volume level.
Definition audio_group.h:159
Central manager for all audio functionality.
Definition audio_manager.h:179
Low-level audio system that interfaces directly with miniaudio.
Definition audio_system.h:32
Represents an audio file that can be played multiple times simultaneously.
Definition sound.h:51
Definition audio_group.cpp:7