void CCoreAudioAE::Shutdown() { CSingleLock engineLock(m_engineLock); Stop(); Deinitialize(); /* free the streams */ CSingleLock streamLock(m_streamLock); while (!m_streams.empty()) { CCoreAudioAEStream *s = m_streams.front(); m_sounds.pop_front(); delete s; } /* free the sounds */ CSingleLock soundLock(m_soundLock); while (!m_sounds.empty()) { CCoreAudioAESound *s = m_sounds.front(); m_sounds.pop_front(); delete s; } delete HAL; HAL = NULL; }
void CCoreAudioAE::AudioDevicesChanged() { if (!m_Initialized) return; // give CA a bit time to realise that maybe the // default device might have changed now - else // OpenCoreAudio might open the old default device // again (yeah that really is the case - duh) Sleep(500); CSingleLock engineLock(m_engineLock); OpenCoreAudio(m_lastSampleRate, COREAUDIO_IS_RAW(m_lastStreamFormat), m_lastStreamFormat); }
bool CCoreAudioAE::Initialize() { CSingleLock engineLock(m_engineLock); Stop(); Deinitialize(); bool ret = OpenCoreAudio(44100, false, AE_FMT_FLOAT); Start(); return ret; }
bool CCoreAudioAE::Initialize() { CSingleLock engineLock(m_engineLock); Stop(); Deinitialize(); bool ret = OpenCoreAudio(44100, false, AE_FMT_FLOAT); m_lastSampleRate = 44100; m_lastStreamFormat = AE_FMT_FLOAT; Start(); return ret; }