FuncDoodle
Loading...
Searching...
No Matches
FuncDoodle::AudioManager Class Reference

Handles loading and playback of audio data. More...

#include <AudioManager.h>

Public Member Functions

 AudioManager ()=default
 ~AudioManager ()=default

Static Public Member Functions

static void PlayWav (AudioData wavPath)
 Plays decoded WAV audio data.
static AudioData ParseWav (std::filesystem::path wav)
 Loads a WAV file from disk and decodes it.
static void WaitForAllPlayback ()
 Blocks until all active playback operations finish.

Static Private Attributes

static std::mutex s_PlaybackMutex
static std::condition_variable s_PlaybackCv
static int s_ActivePlaybacks = 0

Detailed Description

Handles loading and playback of audio data.

Responsible for parsing WAV files and managing audio playback. Supports asynchronous playback tracking to allow the program to wait for or coordinate active sound instances.

Note
Uses a shared playback counter with synchronization primitives to track currently playing audio.

Constructor & Destructor Documentation

◆ AudioManager()

FuncDoodle::AudioManager::AudioManager ( )
default

◆ ~AudioManager()

FuncDoodle::AudioManager::~AudioManager ( )
default

Member Function Documentation

◆ ParseWav()

AudioData FuncDoodle::AudioManager::ParseWav ( std::filesystem::path wav)
static

Loads a WAV file from disk and decodes it.

Parameters
wavPath to the WAV file.
Returns
Decoded audio data.

◆ PlayWav()

void FuncDoodle::AudioManager::PlayWav ( AudioData wavPath)
static

Plays decoded WAV audio data.

Parameters
wavPathAudio data to play.

◆ WaitForAllPlayback()

void FuncDoodle::AudioManager::WaitForAllPlayback ( )
static

Blocks until all active playback operations finish.

Member Data Documentation

◆ s_ActivePlaybacks

int FuncDoodle::AudioManager::s_ActivePlaybacks = 0
staticprivate

◆ s_PlaybackCv

std::condition_variable FuncDoodle::AudioManager::s_PlaybackCv
staticprivate

◆ s_PlaybackMutex

std::mutex FuncDoodle::AudioManager::s_PlaybackMutex
staticprivate

The documentation for this class was generated from the following files: