diff options
| author | skidau <skidau@gmail.com> | 2014-10-18 13:16:41 +1100 |
|---|---|---|
| committer | skidau <skidau@gmail.com> | 2014-10-18 13:16:41 +1100 |
| commit | 0d1f8527c7e1b8dd1f3570041737c5b21ec1d16c (patch) | |
| tree | aa007117a1fc74ca0fe1405c6424be2ff9ecfcc2 /Source/Core/AudioCommon/AudioCommon.cpp | |
| parent | c80ba8704c0a2a0d31fbe5bb2cc70fc7546a7a81 (diff) | |
| parent | f2ed5338415d0890df9f45aa2b59829cf0290a68 (diff) | |
Merge pull request #1297 from RisingFog/audio-dump-during-emulation
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; + } } |
