Mercurial > hg > svcore
diff transform/RealTimeEffectModelTransformer.cpp @ 1096:4d9816ba0ebe simple-fft-model
Rework audio file reader API to prefer using std containers
author | Chris Cannam |
---|---|
date | Mon, 15 Jun 2015 12:19:47 +0100 |
parents | 9f4505ac9072 |
children | e994747fb9dd |
line wrap: on
line diff
--- a/transform/RealTimeEffectModelTransformer.cpp Sat Jun 13 08:47:05 2015 +0100 +++ b/transform/RealTimeEffectModelTransformer.cpp Mon Jun 15 12:19:47 2015 +0100 @@ -191,10 +191,14 @@ if (channelCount == 1) { if (inbufs && inbufs[0]) { - got = input->getData - (m_input.getChannel(), blockFrame, blockSize, inbufs[0]); + auto data = input->getData + (m_input.getChannel(), blockFrame, blockSize); + got = data.size(); + for (sv_frame_t i = 0; i < got; ++i) { + inbufs[0][i] = data[i]; + } while (got < blockSize) { - inbufs[0][got++] = 0.0; + inbufs[0][got++] = 0.f; } for (int ch = 1; ch < (int)m_plugin->getAudioInputCount(); ++ch) { for (sv_frame_t i = 0; i < blockSize; ++i) { @@ -204,9 +208,14 @@ } } else { if (inbufs && inbufs[0]) { - got = input->getMultiChannelData(0, channelCount - 1, - blockFrame, blockSize, - inbufs); + auto data = input->getMultiChannelData + (0, channelCount - 1, blockFrame, blockSize); + if (!data.empty()) got = data[0].size(); + for (int ch = 0; ch < channelCount; ++ch) { + for (sv_frame_t i = 0; i < got; ++i) { + inbufs[ch][i] = data[ch][i]; + } + } while (got < blockSize) { for (int ch = 0; ch < channelCount; ++ch) { inbufs[ch][got] = 0.0;