diff options
| author | Fog <christhecoolist@gmail.com> | 2014-10-15 20:03:31 -0400 |
|---|---|---|
| committer | Fog <christhecoolist@gmail.com> | 2014-10-15 20:50:38 -0400 |
| commit | f2ed5338415d0890df9f45aa2b59829cf0290a68 (patch) | |
| tree | 6b18e2f9e190485c9eb3314f45a869276b757532 /Source/Core/AudioCommon/AudioCommon.cpp | |
| parent | 89123155960021d4a026f98a8fb6c1ca3a03a630 (diff) | |
Start/Stop Audio Dump During Emulation
Diffstat (limited to 'Source/Core/AudioCommon/AudioCommon.cpp')
| -rw-r--r-- | Source/Core/AudioCommon/AudioCommon.cpp | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/Source/Core/AudioCommon/AudioCommon.cpp b/Source/Core/AudioCommon/AudioCommon.cpp index 8afbc1478e..cfd2b9e278 100644 --- a/Source/Core/AudioCommon/AudioCommon.cpp +++ b/Source/Core/AudioCommon/AudioCommon.cpp @@ -23,6 +23,8 @@ // This shouldn't be a global, at least not here. SoundStream* g_sound_stream = nullptr; +static bool s_audio_dump_start = false; + namespace AudioCommon { SoundStream* InitSoundStream() @@ -66,15 +68,8 @@ namespace AudioCommon UpdateSoundStream(); if (g_sound_stream->Start()) { - if (SConfig::GetInstance().m_DumpAudio) - { - std::string audio_file_name_dtk = File::GetUserPath(D_DUMPAUDIO_IDX) + "dtkdump.wav"; - std::string audio_file_name_dsp = File::GetUserPath(D_DUMPAUDIO_IDX) + "dspdump.wav"; - File::CreateFullPath(audio_file_name_dtk); - File::CreateFullPath(audio_file_name_dsp); - mixer->StartLogDTKAudio(audio_file_name_dtk); - mixer->StartLogDSPAudio(audio_file_name_dsp); - } + if (SConfig::GetInstance().m_DumpAudio && !s_audio_dump_start) + StartAudioDump(); return g_sound_stream; } @@ -95,12 +90,8 @@ namespace AudioCommon if (g_sound_stream) { g_sound_stream->Stop(); - if (SConfig::GetInstance().m_DumpAudio) - { - g_sound_stream->GetMixer()->StopLogDTKAudio(); - g_sound_stream->GetMixer()->StopLogDSPAudio(); - //g_sound_stream->StopLogAudio(); - } + if (SConfig::GetInstance().m_DumpAudio && s_audio_dump_start) + StopAudioDump(); delete g_sound_stream; g_sound_stream = nullptr; } @@ -168,6 +159,11 @@ namespace AudioCommon if (!g_sound_stream) return; + if (SConfig::GetInstance().m_DumpAudio && !s_audio_dump_start) + StartAudioDump(); + else if (!SConfig::GetInstance().m_DumpAudio && s_audio_dump_start) + StopAudioDump(); + CMixer* pMixer = g_sound_stream->GetMixer(); if (pMixer && samples) @@ -177,4 +173,22 @@ namespace AudioCommon g_sound_stream->Update(); } + + void StartAudioDump() + { + std::string audio_file_name_dtk = File::GetUserPath(D_DUMPAUDIO_IDX) + "dtkdump.wav"; + std::string audio_file_name_dsp = File::GetUserPath(D_DUMPAUDIO_IDX) + "dspdump.wav"; + File::CreateFullPath(audio_file_name_dtk); + File::CreateFullPath(audio_file_name_dsp); + g_sound_stream->GetMixer()->StartLogDTKAudio(audio_file_name_dtk); + g_sound_stream->GetMixer()->StartLogDSPAudio(audio_file_name_dsp); + s_audio_dump_start = true; + } + + void StopAudioDump() + { + g_sound_stream->GetMixer()->StopLogDTKAudio(); + g_sound_stream->GetMixer()->StopLogDSPAudio(); + s_audio_dump_start = false; + } } |
