flimEngine
SoundManager Class Reference

#include <SoundManager.h>

Collaboration diagram for SoundManager:
Collaboration graph

Static Public Member Functions

static snd_err SendDataA2F (ThreadCommand val)
 
static snd_err SendDataF2A (ThreadCommand val)
 
static snd_err PanSound (IXAudio2SubmixVoice *&sourceVoice, X3DAUDIO_DSP_SETTINGS *&dspSettings)
 
static snd_err PassCallback (CallbackMailbox *cb)
 
static snd_err EndAudioThread ()
 
static bool AudioThreadEnded ()
 
static snd_err CancelPlaylist (unsigned int i)
 
static snd_err Update ()
 
static snd_err GetInfo (SoundManagerInfo &out)
 
static snd_err InsertTimelineCommand (AudioCommand *cmd)
 
static snd_err InsertTimelineCommand (AudioCommand *cmd, int t)
 
static snd_err LoadSound (std::string key, char *in, void(*cb)(void))
 
static snd_err LoadSound (unsigned int key, char *in, void(*cb)(void))
 
static snd_err LoadSound (unsigned int key, const char *in, void(*cb)(void))
 
static snd_err UnloadSound (Sound *&snd)
 
static snd_err CreateChannel (Channel *&out)
 
static snd_err Unload ()
 
static snd_err GetSound (Sound *&out, std::string in, Playlist *pl)
 
static snd_err GetSound (Sound *&out, unsigned int in, Playlist *pl)
 
static void Print ()
 
static snd_err CreateVoice (Track *&v, WAVEFORMATEXTENSIBLE &wfx)
 
static int GetSoundTime ()
 

Private Member Functions

 SoundManager ()
 
 SoundManager (const SoundManager &)=delete
 
const SoundManageroperator= (const SoundManager &)=delete
 
 ~SoundManager ()
 
snd_err GetXAudio2 (IXAudio2 *&out)
 
snd_err privRemove (Sound *snd)
 
snd_err privCreateVoice (Track *&v, WAVEFORMATEXTENSIBLE &wfx)
 
snd_err privLoadSound (std::string key, char *path, void(*cb)(void))
 
snd_err privLoadSound (unsigned int key, char *path, void(*cb)(void))
 
snd_err privPanSound (IXAudio2SubmixVoice *&sourceVoice, X3DAUDIO_DSP_SETTINGS *&dspSettings)
 
snd_err privLoadSound (unsigned int key, const char *path, void(*cb)(void))
 
snd_err privUnloadSound (Sound *&snd)
 
snd_err privCreateChannel (Channel *&out)
 
snd_err privUnload ()
 
snd_err privGetSound (Sound *&out, std::string in, Playlist *pl)
 
snd_err privGetSound (Sound *&out, unsigned int in, Playlist *pl)
 
snd_err privGetInfo (SoundManagerInfo &out)
 
snd_err privInsertTimelineCommand (AudioCommand *cmd)
 
snd_err privInsertTimelineCommand (AudioCommand *cmd, int trigger_time)
 
snd_err privUpdate ()
 
int privGetTime ()
 
snd_err privEndAudioThread ()
 
bool privAudioThreadEnded ()
 
snd_err privPassCallback (CallbackMailbox *cb)
 
snd_err privSendDataF2A (ThreadCommand val)
 
snd_err privSendDataA2F (ThreadCommand val)
 

Static Private Member Functions

static SoundManagerInstance ()
 
static snd_err Remove (Sound *snd)
 

Private Attributes

Timelinetimeline
 
SoundListlist
 
IXAudio2MasteringVoice * masteringVoice
 
IXAudio2 * xAudio2
 
SoundManagerInfo info
 
bool endAudioThread
 
std::stack< CallbackMailbox * > callbacks
 
const char * assetPath = "Sounds\\"
 
std::thread fileThread
 
CircularDatapF2A
 
CircularDatapA2F
 

Static Private Attributes

static SoundManagerinstance = nullptr
 

Friends

class Sound
 
class VoiceFactory
 

Constructor & Destructor Documentation

◆ SoundManager() [1/2]

SoundManager::SoundManager ( )
private

◆ SoundManager() [2/2]

SoundManager::SoundManager ( const SoundManager )
privatedelete

◆ ~SoundManager()

SoundManager::~SoundManager ( )
private

Member Function Documentation

◆ AudioThreadEnded()

static bool SoundManager::AudioThreadEnded ( )
inlinestatic

◆ CancelPlaylist()

static snd_err SoundManager::CancelPlaylist ( unsigned int  i)
inlinestatic

◆ CreateChannel()

static snd_err SoundManager::CreateChannel ( Channel *&  out)
inlinestatic

◆ CreateVoice()

static snd_err SoundManager::CreateVoice ( Track *&  v,
WAVEFORMATEXTENSIBLE &  wfx 
)
inlinestatic

◆ EndAudioThread()

static snd_err SoundManager::EndAudioThread ( )
inlinestatic

◆ GetInfo()

static snd_err SoundManager::GetInfo ( SoundManagerInfo out)
inlinestatic

◆ GetSound() [1/2]

static snd_err SoundManager::GetSound ( Sound *&  out,
std::string  in,
Playlist pl 
)
inlinestatic

◆ GetSound() [2/2]

static snd_err SoundManager::GetSound ( Sound *&  out,
unsigned int  in,
Playlist pl 
)
inlinestatic

◆ GetSoundTime()

static int SoundManager::GetSoundTime ( )
inlinestatic

◆ GetXAudio2()

snd_err SoundManager::GetXAudio2 ( IXAudio2 *&  out)
private

◆ InsertTimelineCommand() [1/2]

static snd_err SoundManager::InsertTimelineCommand ( AudioCommand cmd)
inlinestatic

◆ InsertTimelineCommand() [2/2]

static snd_err SoundManager::InsertTimelineCommand ( AudioCommand cmd,
int  t 
)
inlinestatic

◆ Instance()

static SoundManager& SoundManager::Instance ( )
inlinestaticprivate

◆ LoadSound() [1/3]

static snd_err SoundManager::LoadSound ( std::string  key,
char *  in,
void(*)(void)  cb 
)
inlinestatic

◆ LoadSound() [2/3]

static snd_err SoundManager::LoadSound ( unsigned int  key,
char *  in,
void(*)(void)  cb 
)
inlinestatic

◆ LoadSound() [3/3]

static snd_err SoundManager::LoadSound ( unsigned int  key,
const char *  in,
void(*)(void)  cb 
)
inlinestatic

◆ operator=()

const SoundManager& SoundManager::operator= ( const SoundManager )
privatedelete

◆ PanSound()

static snd_err SoundManager::PanSound ( IXAudio2SubmixVoice *&  sourceVoice,
X3DAUDIO_DSP_SETTINGS *&  dspSettings 
)
inlinestatic

◆ PassCallback()

static snd_err SoundManager::PassCallback ( CallbackMailbox cb)
inlinestatic

◆ Print()

static void SoundManager::Print ( )
inlinestatic

◆ privAudioThreadEnded()

bool SoundManager::privAudioThreadEnded ( )
private

◆ privCreateChannel()

snd_err SoundManager::privCreateChannel ( Channel *&  out)
private

◆ privCreateVoice()

snd_err SoundManager::privCreateVoice ( Track *&  v,
WAVEFORMATEXTENSIBLE &  wfx 
)
private

◆ privEndAudioThread()

snd_err SoundManager::privEndAudioThread ( )
private

◆ privGetInfo()

snd_err SoundManager::privGetInfo ( SoundManagerInfo out)
private

◆ privGetSound() [1/2]

snd_err SoundManager::privGetSound ( Sound *&  out,
std::string  in,
Playlist pl 
)
private

◆ privGetSound() [2/2]

snd_err SoundManager::privGetSound ( Sound *&  out,
unsigned int  in,
Playlist pl 
)
private

◆ privGetTime()

int SoundManager::privGetTime ( )
private

◆ privInsertTimelineCommand() [1/2]

snd_err SoundManager::privInsertTimelineCommand ( AudioCommand cmd)
private

◆ privInsertTimelineCommand() [2/2]

snd_err SoundManager::privInsertTimelineCommand ( AudioCommand cmd,
int  trigger_time 
)
private

◆ privLoadSound() [1/3]

snd_err SoundManager::privLoadSound ( std::string  key,
char *  path,
void(*)(void)  cb 
)
private

◆ privLoadSound() [2/3]

snd_err SoundManager::privLoadSound ( unsigned int  key,
char *  path,
void(*)(void)  cb 
)
private

◆ privLoadSound() [3/3]

snd_err SoundManager::privLoadSound ( unsigned int  key,
const char *  path,
void(*)(void)  cb 
)
private

◆ privPanSound()

snd_err SoundManager::privPanSound ( IXAudio2SubmixVoice *&  sourceVoice,
X3DAUDIO_DSP_SETTINGS *&  dspSettings 
)
private

◆ privPassCallback()

snd_err SoundManager::privPassCallback ( CallbackMailbox cb)
inlineprivate

◆ privRemove()

snd_err SoundManager::privRemove ( Sound snd)
private

◆ privSendDataA2F()

snd_err SoundManager::privSendDataA2F ( ThreadCommand  val)
private

◆ privSendDataF2A()

snd_err SoundManager::privSendDataF2A ( ThreadCommand  val)
private

◆ privUnload()

snd_err SoundManager::privUnload ( )
private

◆ privUnloadSound()

snd_err SoundManager::privUnloadSound ( Sound *&  snd)
private

◆ privUpdate()

snd_err SoundManager::privUpdate ( )
private

◆ Remove()

static snd_err SoundManager::Remove ( Sound snd)
inlinestaticprivate

◆ SendDataA2F()

static snd_err SoundManager::SendDataA2F ( ThreadCommand  val)
inlinestatic

◆ SendDataF2A()

static snd_err SoundManager::SendDataF2A ( ThreadCommand  val)
inlinestatic

◆ Unload()

static snd_err SoundManager::Unload ( )
inlinestatic

◆ UnloadSound()

static snd_err SoundManager::UnloadSound ( Sound *&  snd)
inlinestatic

◆ Update()

static snd_err SoundManager::Update ( )
inlinestatic

Friends And Related Function Documentation

◆ Sound

friend class Sound
friend

◆ VoiceFactory

friend class VoiceFactory
friend

Member Data Documentation

◆ assetPath

const char* SoundManager::assetPath = "Sounds\\"
private

◆ callbacks

std::stack<CallbackMailbox*> SoundManager::callbacks
private

◆ endAudioThread

bool SoundManager::endAudioThread
private

◆ fileThread

std::thread SoundManager::fileThread
private

◆ info

SoundManagerInfo SoundManager::info
private

◆ instance

SoundManager * SoundManager::instance = nullptr
staticprivate

◆ list

SoundList* SoundManager::list
private

◆ masteringVoice

IXAudio2MasteringVoice* SoundManager::masteringVoice
private

◆ pA2F

CircularData* SoundManager::pA2F
private

◆ pF2A

CircularData* SoundManager::pF2A
private

◆ timeline

Timeline* SoundManager::timeline
private

◆ xAudio2

IXAudio2* SoundManager::xAudio2
private

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