Skip to content
Snippets Groups Projects
Commit f196d54e authored by Tristan Matthews's avatar Tristan Matthews
Browse files

* #8545: fixed error case

parent 5bae58e0
No related branches found
No related tags found
No related merge requests found
......@@ -39,8 +39,7 @@
#include <cassert>
AudioLoop::AudioLoop() : buffer_(0), size_(0), pos_(0), sampleRate_(0)
{
}
{}
AudioLoop::~AudioLoop()
{
......@@ -55,12 +54,12 @@ AudioLoop::getNext(SFLDataFormat* output, size_t total_samples, short volume)
if (size_ == 0) {
ERROR("AudioLoop: Error: Audio loop size is 0");
return;
} else if (pos < size_) {
} else if (pos >= size_) {
ERROR("AudioLoop: Error: Invalid loop position %d", pos);
return;
}
while (total_samples) {
while (total_samples > 0) {
size_t samples = total_samples;
if (samples > (size_ - pos))
......@@ -69,13 +68,12 @@ AudioLoop::getNext(SFLDataFormat* output, size_t total_samples, short volume)
// short->char conversion
memcpy(output, buffer_ + pos, samples * sizeof(SFLDataFormat));
// Scaling needed
if (volume != 100) {
double gain = volume * 0.01;
const double gain = volume * 0.01;
for (size_t i = 0; i < samples; i++) {
for (size_t i = 0; i < samples; ++i, ++output)
*output *= gain;
output++;
}
} else
output += samples; // this is the destination...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment