aboutsummaryrefslogtreecommitdiff
path: root/externals/oboe/samples/minimaloboe/src/main/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'externals/oboe/samples/minimaloboe/src/main/cpp')
-rw-r--r--externals/oboe/samples/minimaloboe/src/main/cpp/CMakeLists.txt53
-rw-r--r--externals/oboe/samples/minimaloboe/src/main/cpp/MinimalOboeJNI.cpp66
-rw-r--r--externals/oboe/samples/minimaloboe/src/main/cpp/SimpleNoiseMaker.cpp92
-rw-r--r--externals/oboe/samples/minimaloboe/src/main/cpp/SimpleNoiseMaker.h71
4 files changed, 0 insertions, 282 deletions
diff --git a/externals/oboe/samples/minimaloboe/src/main/cpp/CMakeLists.txt b/externals/oboe/samples/minimaloboe/src/main/cpp/CMakeLists.txt
deleted file mode 100644
index 027b27bced..0000000000
--- a/externals/oboe/samples/minimaloboe/src/main/cpp/CMakeLists.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# Copyright 2022 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.
-#
-
-cmake_minimum_required(VERSION 3.4.1)
-
-# Set the path to the Oboe library directory
-set (OBOE_DIR ../../../../../)
-#message("OBOE_DIR = " + ${OBOE_DIR})
-
-add_subdirectory(${OBOE_DIR} ./oboe-bin)
-
-# include folders
-include_directories(
- ${OBOE_DIR}/include
- ${CMAKE_CURRENT_LIST_DIR}
-)
-
-# App specific sources
-set (APP_SOURCES
- SimpleNoiseMaker.cpp
- MinimalOboeJNI.cpp
- )
-
-# Build the minimaloboe (native) library
-add_library(minimaloboe SHARED
- ${APP_SOURCES}
- )
-
-# Enable optimization flags: if having problems with source level debugging,
-# disable -Ofast ( and debug ), re-enable after done debugging.
-target_compile_options(minimaloboe PRIVATE -Wall -Werror "$<$<CONFIG:RELEASE>:-Ofast>")
-
-target_link_libraries( # Specifies the target library.
- minimaloboe
- oboe
-
- # Links the target library to the log library
- # included in the NDK.
- log)
-target_link_options(minimaloboe PRIVATE "-Wl,-z,max-page-size=16384")
diff --git a/externals/oboe/samples/minimaloboe/src/main/cpp/MinimalOboeJNI.cpp b/externals/oboe/samples/minimaloboe/src/main/cpp/MinimalOboeJNI.cpp
deleted file mode 100644
index 295c9efa30..0000000000
--- a/externals/oboe/samples/minimaloboe/src/main/cpp/MinimalOboeJNI.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright 2022 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 <jni.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-static const char *TAG = "MinimalOboeJNI";
-
-#include <android/log.h>
-
-#include <SimpleNoiseMaker.h>
-
-// JNI functions are "C" calling convention
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-using namespace oboe;
-
-// Use a static object so we don't have to worry about it getting deleted at the wrong time.
-static SimpleNoiseMaker sPlayer;
-
-/**
- * Native (JNI) implementation of AudioPlayer.startAudiostreamNative()
- */
-JNIEXPORT jint JNICALL Java_com_example_minimaloboe_AudioPlayer_startAudioStreamNative(
- JNIEnv * /* env */, jobject) {
- __android_log_print(ANDROID_LOG_INFO, TAG, "%s", __func__);
- Result result = sPlayer.open();
- if (result == Result::OK) {
- result = sPlayer.start();
- }
- return (jint) result;
-}
-
-/**
- * Native (JNI) implementation of AudioPlayer.stopAudioStreamNative()
- */
-JNIEXPORT jint JNICALL Java_com_example_minimaloboe_AudioPlayer_stopAudioStreamNative(
- JNIEnv * /* env */, jobject) {
- __android_log_print(ANDROID_LOG_INFO, TAG, "%s", __func__);
- // We need to close() even if the stop() fails because we need to delete the resources.
- Result result1 = sPlayer.stop();
- Result result2 = sPlayer.close();
- // Return first failure code.
- return (jint) ((result1 != Result::OK) ? result1 : result2);
-}
-#ifdef __cplusplus
-}
-#endif
diff --git a/externals/oboe/samples/minimaloboe/src/main/cpp/SimpleNoiseMaker.cpp b/externals/oboe/samples/minimaloboe/src/main/cpp/SimpleNoiseMaker.cpp
deleted file mode 100644
index 40583917b1..0000000000
--- a/externals/oboe/samples/minimaloboe/src/main/cpp/SimpleNoiseMaker.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright 2022 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 <stdlib.h>
-
-static const char *TAG = "SimpleNoiseMaker";
-
-#include <android/log.h>
-
-#include <SimpleNoiseMaker.h>
-
-using namespace oboe;
-
-oboe::Result SimpleNoiseMaker::open() {
- // Use shared_ptr to prevent use of a deleted callback.
- mDataCallback = std::make_shared<MyDataCallback>();
- mErrorCallback = std::make_shared<MyErrorCallback>(this);
-
- AudioStreamBuilder builder;
- oboe::Result result = builder.setSharingMode(oboe::SharingMode::Exclusive)
- ->setPerformanceMode(oboe::PerformanceMode::LowLatency)
- ->setFormat(oboe::AudioFormat::Float)
- ->setChannelCount(kChannelCount)
- ->setDataCallback(mDataCallback)
- ->setErrorCallback(mErrorCallback)
- // Open using a shared_ptr.
- ->openStream(mStream);
- return result;
-}
-
-oboe::Result SimpleNoiseMaker::start() {
- return mStream->requestStart();
-}
-
-oboe::Result SimpleNoiseMaker::stop() {
- return mStream->requestStop();
-}
-
-oboe::Result SimpleNoiseMaker::close() {
- return mStream->close();
-}
-
-/**
- * This callback method will be called from a high priority audio thread.
- * It should only do math and not do any blocking operations like
- * reading or writing files, memory allocation, or networking.
- * @param audioStream
- * @param audioData pointer to an array of samples to be filled
- * @param numFrames number of frames needed
- * @return
- */
-DataCallbackResult SimpleNoiseMaker::MyDataCallback::onAudioReady(
- AudioStream *audioStream,
- void *audioData,
- int32_t numFrames) {
- // We requested float when we built the stream.
- float *output = (float *) audioData;
- // Fill buffer with random numbers to create "white noise".
- int numSamples = numFrames * kChannelCount;
- for (int i = 0; i < numSamples; i++) {
- // drand48() returns a random number between 0.0 and 1.0.
- // Center and scale it to a reasonable value.
- *output++ = (float) ((drand48() - 0.5) * 0.6);
- }
- return oboe::DataCallbackResult::Continue;
-}
-
-void SimpleNoiseMaker::MyErrorCallback::onErrorAfterClose(oboe::AudioStream *oboeStream,
- oboe::Result error) {
- __android_log_print(ANDROID_LOG_INFO, TAG,
- "%s() - error = %s",
- __func__,
- oboe::convertToText(error)
- );
- // Try to open and start a new stream after a disconnect.
- if (mParent->open() == Result::OK) {
- mParent->start();
- }
-}
diff --git a/externals/oboe/samples/minimaloboe/src/main/cpp/SimpleNoiseMaker.h b/externals/oboe/samples/minimaloboe/src/main/cpp/SimpleNoiseMaker.h
deleted file mode 100644
index 6376c0b25b..0000000000
--- a/externals/oboe/samples/minimaloboe/src/main/cpp/SimpleNoiseMaker.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2022 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 SIMPLE_NOISE_MAKER_H
-#define SIMPLE_NOISE_MAKER_H
-
-#include "oboe/Oboe.h"
-
-/**
- * Play white noise using Oboe.
- */
-class SimpleNoiseMaker {
-public:
-
- /**
- * Open an Oboe stream.
- * @return OK or negative error code.
- */
- oboe::Result open();
-
- oboe::Result start();
-
- oboe::Result stop();
-
- oboe::Result close();
-
-private:
-
- class MyDataCallback : public oboe::AudioStreamDataCallback {
- public:
- oboe::DataCallbackResult onAudioReady(
- oboe::AudioStream *audioStream,
- void *audioData,
- int32_t numFrames) override;
-
- };
-
- class MyErrorCallback : public oboe::AudioStreamErrorCallback {
- public:
- MyErrorCallback(SimpleNoiseMaker *parent) : mParent(parent) {}
-
- virtual ~MyErrorCallback() {
- }
-
- void onErrorAfterClose(oboe::AudioStream *oboeStream, oboe::Result error) override;
-
- private:
- SimpleNoiseMaker *mParent;
- };
-
- std::shared_ptr<oboe::AudioStream> mStream;
- std::shared_ptr<MyDataCallback> mDataCallback;
- std::shared_ptr<MyErrorCallback> mErrorCallback;
-
- static constexpr int kChannelCount = 2;
-};
-
-#endif //SIMPLE_NOISE_MAKER_H