aboutsummaryrefslogtreecommitdiff
path: root/externals/oboe/samples/shared/Oscillator.h
diff options
context:
space:
mode:
Diffstat (limited to 'externals/oboe/samples/shared/Oscillator.h')
-rw-r--r--externals/oboe/samples/shared/Oscillator.h94
1 files changed, 0 insertions, 94 deletions
diff --git a/externals/oboe/samples/shared/Oscillator.h b/externals/oboe/samples/shared/Oscillator.h
deleted file mode 100644
index 75281b125d..0000000000
--- a/externals/oboe/samples/shared/Oscillator.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2018 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.
- */
-
-
-#ifndef SHARED_OSCILLATOR_H
-#define SHARED_OSCILLATOR_H
-
-
-#include <cstdint>
-#include <atomic>
-#include <math.h>
-#include <memory>
-#include "IRenderableAudio.h"
-
-constexpr double kDefaultFrequency = 440.0;
-constexpr int32_t kDefaultSampleRate = 48000;
-constexpr double kPi = M_PI;
-constexpr double kTwoPi = kPi * 2;
-
-class Oscillator : public IRenderableAudio {
-
-public:
-
- ~Oscillator() = default;
-
- void setWaveOn(bool isWaveOn) {
- mIsWaveOn.store(isWaveOn);
- };
-
- void setSampleRate(int32_t sampleRate) {
- mSampleRate = sampleRate;
- updatePhaseIncrement();
- };
-
- void setFrequency(double frequency) {
- mFrequency = frequency;
- updatePhaseIncrement();
- };
-
- inline void setAmplitude(float amplitude) {
- mAmplitude = amplitude;
- };
-
- // From IRenderableAudio
- void renderAudio(float *audioData, int32_t numFrames) override {
-
- if (mIsWaveOn){
- for (int i = 0; i < numFrames; ++i) {
-
- // Sine wave (sinf)
- //audioData[i] = sinf(mPhase) * mAmplitude;
-
- // Square wave
- if (mPhase <= kPi){
- audioData[i] = -mAmplitude;
- } else {
- audioData[i] = mAmplitude;
- }
-
- mPhase += mPhaseIncrement;
- if (mPhase > kTwoPi) mPhase -= kTwoPi;
- }
- } else {
- memset(audioData, 0, sizeof(float) * numFrames);
- }
- };
-
-private:
- std::atomic<bool> mIsWaveOn { false };
- float mPhase = 0.0;
- std::atomic<float> mAmplitude { 0 };
- std::atomic<double> mPhaseIncrement { 0.0 };
- double mFrequency = kDefaultFrequency;
- int32_t mSampleRate = kDefaultSampleRate;
-
- void updatePhaseIncrement(){
- mPhaseIncrement.store((kTwoPi * mFrequency) / static_cast<double>(mSampleRate));
- };
-};
-
-#endif //SHARED_OSCILLATOR_H