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_DelayReader.cpp')
-rw-r--r--intern/audaspace/FX/AUD_DelayReader.cpp21
1 files changed, 8 insertions, 13 deletions
diff --git a/intern/audaspace/FX/AUD_DelayReader.cpp b/intern/audaspace/FX/AUD_DelayReader.cpp
index 38d3b893b5c..f2521f645aa 100644
--- a/intern/audaspace/FX/AUD_DelayReader.cpp
+++ b/intern/audaspace/FX/AUD_DelayReader.cpp
@@ -77,31 +77,26 @@ void AUD_DelayReader::read(int & length, sample_t* & buffer)
{
if(m_remdelay > 0)
{
- int samplesize = AUD_SAMPLE_SIZE(m_reader->getSpecs());
+ AUD_Specs specs = m_reader->getSpecs();
+ int samplesize = AUD_SAMPLE_SIZE(specs);
- if(m_buffer->getSize() < length*samplesize)
- m_buffer->resize(length*samplesize);
+ if(m_buffer->getSize() < length * samplesize)
+ m_buffer->resize(length * samplesize);
if(length > m_remdelay)
{
- if(getSpecs().format == AUD_FORMAT_U8)
- memset(m_buffer->getBuffer(), 0x80, m_remdelay*samplesize);
- else
- memset(m_buffer->getBuffer(), 0, m_remdelay*samplesize);
+ memset(m_buffer->getBuffer(), 0, m_remdelay * samplesize);
int len = length - m_remdelay;
m_reader->read(len, buffer);
- memcpy(m_buffer->getBuffer()+m_remdelay*samplesize,
- buffer, len*samplesize);
+ memcpy(m_buffer->getBuffer() + m_remdelay * specs.channels,
+ buffer, len * samplesize);
if(len < length-m_remdelay)
length = m_remdelay + len;
m_remdelay = 0;
}
else
{
- if(getSpecs().format == AUD_FORMAT_U8)
- memset(m_buffer->getBuffer(), 0x80, length*samplesize);
- else
- memset(m_buffer->getBuffer(), 0, length*samplesize);
+ memset(m_buffer->getBuffer(), 0, length * samplesize);
m_remdelay -= length;
}
buffer = m_buffer->getBuffer();