Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/audaspace/FX/AUD_ReverseReader.cpp')
-rw-r--r--intern/audaspace/FX/AUD_ReverseReader.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/intern/audaspace/FX/AUD_ReverseReader.cpp b/intern/audaspace/FX/AUD_ReverseReader.cpp
index 043480b91b9..82d6c70ce53 100644
--- a/intern/audaspace/FX/AUD_ReverseReader.cpp
+++ b/intern/audaspace/FX/AUD_ReverseReader.cpp
@@ -65,7 +65,7 @@ int AUD_ReverseReader::getPosition()
void AUD_ReverseReader::read(int & length, sample_t* & buffer)
{
// first correct the length
- if(m_position+length > m_length)
+ if(m_position + length > m_length)
length = m_length-m_position;
if(length <= 0)
@@ -74,7 +74,8 @@ void AUD_ReverseReader::read(int & length, sample_t* & buffer)
return;
}
- int samplesize = AUD_SAMPLE_SIZE(getSpecs());
+ AUD_Specs specs = getSpecs();
+ int samplesize = AUD_SAMPLE_SIZE(specs);
// resize buffer if needed
if(m_buffer->getSize() < length * samplesize)
@@ -86,23 +87,20 @@ void AUD_ReverseReader::read(int & length, sample_t* & buffer)
int len = length;
// read from reader
- m_reader->seek(m_length-m_position-len);
+ m_reader->seek(m_length - m_position - len);
m_reader->read(len, buf);
// set null if reader didn't give enough data
if(len < length)
{
- if(getSpecs().format == AUD_FORMAT_U8)
- memset(buffer, 0x80, (length-len)*samplesize);
- else
- memset(buffer, 0, (length-len)*samplesize);
- buffer += length-len;
+ memset(buffer, 0, (length - len) * samplesize);
+ buffer += (length - len) * specs.channels;
}
// copy the samples reverted
for(int i = 0; i < len; i++)
- memcpy(buffer + i * samplesize,
- buf + (len - 1 - i) * samplesize,
+ memcpy(buffer + i * specs.channels,
+ buf + (len - 1 - i) * specs.channels,
samplesize);
m_position += length;