From debc40e85b837c205d040429267332b0f8d15fdd Mon Sep 17 00:00:00 2001 From: Chris Burgener Date: Sat, 17 Dec 2016 22:35:27 -0500 Subject: [PATCH] Display warning when dumping audio if file exists --- Source/Core/AudioCommon/Mixer.cpp | 32 +++++++++++++++++++++------- Source/Core/AudioCommon/WaveFile.cpp | 14 ++++++++++++ 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/Source/Core/AudioCommon/Mixer.cpp b/Source/Core/AudioCommon/Mixer.cpp index 1246cfb489..de5a4fdde8 100644 --- a/Source/Core/AudioCommon/Mixer.cpp +++ b/Source/Core/AudioCommon/Mixer.cpp @@ -214,10 +214,18 @@ void CMixer::StartLogDTKAudio(const std::string& filename) { if (!m_log_dtk_audio) { - m_log_dtk_audio = true; - m_wave_writer_dtk.Start(filename, m_streaming_mixer.GetInputSampleRate()); - m_wave_writer_dtk.SetSkipSilence(false); - NOTICE_LOG(AUDIO, "Starting DTK Audio logging"); + bool success = m_wave_writer_dtk.Start(filename, m_streaming_mixer.GetInputSampleRate()); + if (success) + { + m_log_dtk_audio = true; + m_wave_writer_dtk.SetSkipSilence(false); + NOTICE_LOG(AUDIO, "Starting DTK Audio logging"); + } + else + { + m_wave_writer_dtk.Stop(); + NOTICE_LOG(AUDIO, "Unable to start DTK Audio logging"); + } } else { @@ -243,10 +251,18 @@ void CMixer::StartLogDSPAudio(const std::string& filename) { if (!m_log_dsp_audio) { - m_log_dsp_audio = true; - m_wave_writer_dsp.Start(filename, m_dma_mixer.GetInputSampleRate()); - m_wave_writer_dsp.SetSkipSilence(false); - NOTICE_LOG(AUDIO, "Starting DSP Audio logging"); + bool success = m_wave_writer_dsp.Start(filename, m_dma_mixer.GetInputSampleRate()); + if (success) + { + m_log_dsp_audio = true; + m_wave_writer_dsp.SetSkipSilence(false); + NOTICE_LOG(AUDIO, "Starting DSP Audio logging"); + } + else + { + m_wave_writer_dsp.Stop(); + NOTICE_LOG(AUDIO, "Unable to start DSP Audio logging"); + } } else { diff --git a/Source/Core/AudioCommon/WaveFile.cpp b/Source/Core/AudioCommon/WaveFile.cpp index 1a9fee3319..912dc7fbf0 100644 --- a/Source/Core/AudioCommon/WaveFile.cpp +++ b/Source/Core/AudioCommon/WaveFile.cpp @@ -24,6 +24,20 @@ WaveFileWriter::~WaveFileWriter() bool WaveFileWriter::Start(const std::string& filename, unsigned int HLESampleRate) { + // Ask to delete file + if (File::Exists(filename)) + { + if (AskYesNoT("Delete the existing file '%s'?", filename.c_str())) + { + File::Delete(filename); + } + else + { + // Stop and cancel dumping the audio + return false; + } + } + // Check if the file is already open if (file) {