MCPcopy Create free account
hub / github.com/LabSound/LabSound / createBufferFromRange

Method createBufferFromRange

src/core/AudioBus.cpp:174–199  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

172}
173
174std::unique_ptr<AudioBus> AudioBus::createBufferFromRange(const AudioBus * sourceBuffer, int startFrame, int endFrame)
175{
176 int numberOfSourceFrames = sourceBuffer->length();
177 int numberOfChannels = sourceBuffer->numberOfChannels();
178
179 // Sanity checking
180 bool isRangeSafe = startFrame < endFrame && endFrame <= numberOfSourceFrames;
181 ASSERT(isRangeSafe);
182
183 if (!isRangeSafe)
184 {
185 return nullptr;
186 }
187
188 int rangeLength = endFrame - startFrame;
189
190 std::unique_ptr<AudioBus> audioBus(new AudioBus(numberOfChannels, rangeLength));
191 audioBus->setSampleRate(sourceBuffer->sampleRate());
192
193 for (int i = 0; i < numberOfChannels; ++i)
194 {
195 audioBus->channel(i)->copyFromRange(sourceBuffer->channel(i), startFrame, endFrame);
196 }
197
198 return audioBus;
199}
200
201std::unique_ptr<AudioBus> AudioBus::createByCloning(const AudioBus * sourceBus)
202{

Callers

nothing calls this directly

Calls 6

copyFromRangeMethod · 0.80
channelMethod · 0.80
lengthMethod · 0.45
numberOfChannelsMethod · 0.45
setSampleRateMethod · 0.45
sampleRateMethod · 0.45

Tested by

no test coverage detected