aboutsummaryrefslogtreecommitdiff
path: root/externals/oboe/samples/iolib/src/main/cpp/player/OneShotSampleSource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'externals/oboe/samples/iolib/src/main/cpp/player/OneShotSampleSource.cpp')
-rw-r--r--externals/oboe/samples/iolib/src/main/cpp/player/OneShotSampleSource.cpp82
1 files changed, 0 insertions, 82 deletions
diff --git a/externals/oboe/samples/iolib/src/main/cpp/player/OneShotSampleSource.cpp b/externals/oboe/samples/iolib/src/main/cpp/player/OneShotSampleSource.cpp
deleted file mode 100644
index 74fef60bd3..0000000000
--- a/externals/oboe/samples/iolib/src/main/cpp/player/OneShotSampleSource.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <string.h>
-
-#include "wav/WavStreamReader.h"
-
-#include "OneShotSampleSource.h"
-
-namespace iolib {
-
-void OneShotSampleSource::mixAudio(float* outBuff, int numChannels, int32_t numFrames) {
- int32_t numSamples = mSampleBuffer->getNumSamples();
- int32_t sampleChannels = mSampleBuffer->getProperties().channelCount;
- int32_t totalSamplesNeeded = numFrames * numChannels; // Total samples to fill the output buffer
- int32_t samplesProcessed = 0;
- bool isLoopMode = mIsLoopMode;
-
- while (samplesProcessed < totalSamplesNeeded && mIsPlaying) {
- int32_t samplesLeft = numSamples - mCurSampleIndex;
- int32_t framesLeft = (totalSamplesNeeded - samplesProcessed) / numChannels;
- int32_t numWriteFrames = std::min(framesLeft, samplesLeft / sampleChannels);
-
- if (numWriteFrames > 0) {
- const float* data = mSampleBuffer->getSampleData();
- if ((sampleChannels == 1) && (numChannels == 1)) {
- // MONO output from MONO samples
- for (int32_t frameIndex = 0; frameIndex < numWriteFrames; frameIndex++) {
- outBuff[samplesProcessed + frameIndex] += data[mCurSampleIndex++] * mGain;
- }
- } else if ((sampleChannels == 1) && (numChannels == 2)) {
- // STEREO output from MONO samples
- int dstSampleIndex = samplesProcessed;
- for (int32_t frameIndex = 0; frameIndex < numWriteFrames; frameIndex++) {
- outBuff[dstSampleIndex++] += data[mCurSampleIndex] * mLeftGain;
- outBuff[dstSampleIndex++] += data[mCurSampleIndex++] * mRightGain;
- }
- } else if ((sampleChannels == 2) && (numChannels == 1)) {
- // MONO output from STEREO samples
- int dstSampleIndex = samplesProcessed;
- for (int32_t frameIndex = 0; frameIndex < numWriteFrames; frameIndex++) {
- outBuff[dstSampleIndex++] += data[mCurSampleIndex++] * mLeftGain +
- data[mCurSampleIndex++] * mRightGain;
- }
- } else if ((sampleChannels == 2) && (numChannels == 2)) {
- // STEREO output from STEREO samples
- int dstSampleIndex = samplesProcessed;
- for (int32_t frameIndex = 0; frameIndex < numWriteFrames; frameIndex++) {
- outBuff[dstSampleIndex++] += data[mCurSampleIndex++] * mLeftGain;
- outBuff[dstSampleIndex++] += data[mCurSampleIndex++] * mRightGain;
- }
- }
-
- samplesProcessed += numWriteFrames * numChannels;
-
- if (mCurSampleIndex >= numSamples) {
- if (isLoopMode) {
- mCurSampleIndex = 0;
- } else {
- mIsPlaying = false;
- }
- }
- } else {
- break; // No more samples to write in the current chunk
- }
- }
-}
-
-} // namespace wavlib