diff options
Diffstat (limited to 'externals/oboe/samples/shared/Oscillator.h')
| -rw-r--r-- | externals/oboe/samples/shared/Oscillator.h | 94 |
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 |
