WaveFile: Get rid of an explicit delete

This commit is contained in:
Lioncash 2015-12-02 20:00:48 -05:00
parent a759883ae5
commit e0eef7bef4
2 changed files with 10 additions and 14 deletions

View File

@ -9,26 +9,19 @@
#include "Common/Logging/Log.h"
#include "Core/ConfigManager.h"
enum { BUF_SIZE = 32*1024 };
constexpr size_t WaveFileWriter::BUFFER_SIZE;
WaveFileWriter::WaveFileWriter():
skip_silence(false),
audio_size(0),
conv_buffer(nullptr)
WaveFileWriter::WaveFileWriter()
{
}
WaveFileWriter::~WaveFileWriter()
{
delete[] conv_buffer;
Stop();
}
bool WaveFileWriter::Start(const std::string& filename, unsigned int HLESampleRate)
{
if (!conv_buffer)
conv_buffer = new short[BUF_SIZE];
// Check if the file is already open
if (file)
{
@ -121,7 +114,7 @@ void WaveFileWriter::AddStereoSamplesBE(const short *sample_data, u32 count)
if (!file)
PanicAlertT("WaveFileWriter - file not open.");
if (count > BUF_SIZE * 2)
if (count > BUFFER_SIZE * 2)
PanicAlert("WaveFileWriter - buffer too small (count = %u).", count);
if (skip_silence)
@ -145,6 +138,6 @@ void WaveFileWriter::AddStereoSamplesBE(const short *sample_data, u32 count)
conv_buffer[2 * i + 1] = Common::swap16((u16)sample_data[2 * i]);
}
file.WriteBytes(conv_buffer, count * 4);
file.WriteBytes(conv_buffer.data(), count * 4);
audio_size += count * 4;
}

View File

@ -14,6 +14,7 @@
#pragma once
#include <array>
#include <string>
#include "Common/CommonTypes.h"
#include "Common/FileUtil.h"
@ -35,10 +36,12 @@ public:
u32 GetAudioSize() const { return audio_size; }
private:
static constexpr size_t BUFFER_SIZE = 32 * 1024;
File::IOFile file;
bool skip_silence;
u32 audio_size;
short* conv_buffer;
bool skip_silence = false;
u32 audio_size = 0;
std::array<short, BUFFER_SIZE> conv_buffer{};
void Write(u32 value);
void Write4(const char* ptr);
};