summaryrefslogtreecommitdiff
path: root/Source/Core/AudioCommon/AudioCommon.cpp
diff options
context:
space:
mode:
authorFog <christhecoolist@gmail.com>2014-10-15 20:03:31 -0400
committerFog <christhecoolist@gmail.com>2014-10-15 20:50:38 -0400
commitf2ed5338415d0890df9f45aa2b59829cf0290a68 (patch)
tree6b18e2f9e190485c9eb3314f45a869276b757532 /Source/Core/AudioCommon/AudioCommon.cpp
parent89123155960021d4a026f98a8fb6c1ca3a03a630 (diff)
Start/Stop Audio Dump During Emulation
Diffstat (limited to 'Source/Core/AudioCommon/AudioCommon.cpp')
-rw-r--r--Source/Core/AudioCommon/AudioCommon.cpp44
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;
+ }
}