49 void AddSound(
const std::string& filepath);
Main interface for the audio system.
Container for playing randomized sounds with pitch variation.
Definition random_sound_container.h:29
SoundHandle last_played_
Handle of the last played sound.
Definition random_sound_container.h:120
void Play()
Play a random sound from the container.
Definition random_sound_container.cpp:102
const std::string & GetName() const
Get the name of this container.
Definition random_sound_container.h:97
RandomSoundContainerConfig config_
Configuration settings.
Definition random_sound_container.h:119
SoundHandle SelectRandomSound()
Select a random sound, avoiding the last played if configured.
Definition random_sound_container.cpp:161
void PlayWithVolume(float volume)
Play a random sound with specific volume.
Definition random_sound_container.cpp:106
void SetAvoidRepeat(bool avoid)
Enable or disable repeat avoidance.
Definition random_sound_container.cpp:141
size_t GetSoundCount() const
Get the number of sounds in this container.
Definition random_sound_container.h:104
void LoadFromFolder(const std::string &folderPath)
Load all .wav files from a folder.
Definition random_sound_container.cpp:57
void StopAll()
Stop all currently playing sounds from this container.
Definition random_sound_container.cpp:129
std::mt19937 rng_
Random number generator.
Definition random_sound_container.h:121
void SetPitchRange(float minPitch, float maxPitch)
Set the pitch range for randomization.
Definition random_sound_container.cpp:136
~RandomSoundContainer()
Destructor.
Definition random_sound_container.cpp:21
std::string name_
Container name.
Definition random_sound_container.h:117
std::vector< SoundHandle > sounds_
Loaded sound handles.
Definition random_sound_container.h:118
void AddSound(const std::string &filepath)
Add a sound to the container.
Definition random_sound_container.cpp:41
SoundHandle GetRandomSound() const
Get a random sound handle without playing it.
Definition random_sound_container.cpp:145
Definition audio_group.cpp:7
Strongly typed handle for audio groups.
Definition audio_manager.h:113
static constexpr GroupHandle Invalid()
Definition audio_manager.h:116
Configuration for a random sound container.
Definition random_sound_container.h:14
float maxDuration
Maximum duration in seconds (0 = no limit)
Definition random_sound_container.h:19
bool avoidRepeat
Avoid playing the same sound twice in a row.
Definition random_sound_container.h:15
float pitchMax
Maximum pitch shift (1.0 = normal pitch)
Definition random_sound_container.h:17
float pitchMin
Minimum pitch shift (1.0 = normal pitch)
Definition random_sound_container.h:16
GroupHandle group
Audio group to assign sounds to.
Definition random_sound_container.h:18
Strongly typed handle for individual sounds.
Definition audio_manager.h:126