Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
'count' parameter for AddStereoSamples and AddStereoSamplesBE in Wave…
…File should be unsigned. Doesn't make sense to have them signed.
  • Loading branch information
lioncash committed Jan 12, 2013
1 parent dfc0c4b commit dcc216a
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 11 deletions.
31 changes: 22 additions & 9 deletions Source/Core/AudioCommon/Src/WaveFile.cpp
Expand Up @@ -100,39 +100,52 @@ void WaveFileWriter::Write4(const char *ptr)
file.WriteBytes(ptr, 4);
}

void WaveFileWriter::AddStereoSamples(const short *sample_data, int count)
void WaveFileWriter::AddStereoSamples(const short *sample_data, u32 count)
{
if (!file)
PanicAlertT("WaveFileWriter - file not open.");
if (skip_silence) {

if (skip_silence)
{
bool all_zero = true;
for (int i = 0; i < count * 2; i++)
if (sample_data[i]) all_zero = false;
if (all_zero) return;

for (u32 i = 0; i < count * 2; i++)
{
if (sample_data[i])
all_zero = false;
}

if (all_zero)
return;
}

file.WriteBytes(sample_data, count * 4);
audio_size += count * 4;
}

void WaveFileWriter::AddStereoSamplesBE(const short *sample_data, int count)
void WaveFileWriter::AddStereoSamplesBE(const short *sample_data, u32 count)
{
if (!file)
PanicAlertT("WaveFileWriter - file not open.");

if (count > BUF_SIZE * 2)
PanicAlert("WaveFileWriter - buffer too small (count = %i).", count);
PanicAlert("WaveFileWriter - buffer too small (count = %u).", count);

if (skip_silence)
{
bool all_zero = true;
for (int i = 0; i < count * 2; i++)

for (u32 i = 0; i < count * 2; i++)
{
if (sample_data[i])
all_zero = false;
}

if (all_zero)
return;
}

for (int i = 0; i < count * 2; i++)
for (u32 i = 0; i < count * 2; i++)
conv_buffer[i] = Common::swap16((u16)sample_data[i]);

file.WriteBytes(conv_buffer, count * 4);
Expand Down
4 changes: 2 additions & 2 deletions Source/Core/AudioCommon/Src/WaveFile.h
Expand Up @@ -50,8 +50,8 @@ class WaveFileWriter

void SetSkipSilence(bool skip) { skip_silence = skip; }

void AddStereoSamples(const short *sample_data, int count);
void AddStereoSamplesBE(const short *sample_data, int count); // big endian
void AddStereoSamples(const short *sample_data, u32 count);
void AddStereoSamplesBE(const short *sample_data, u32 count); // big endian
u32 GetAudioSize() { return audio_size; }
};

Expand Down

0 comments on commit dcc216a

Please sign in to comment.