aboutsummaryrefslogtreecommitdiff
path: root/externals/oboe/samples/hello-oboe/src/main/cpp/jni_bridge.cpp
diff options
context:
space:
mode:
authorswurl <swurl@swurl.xyz>2025-05-31 02:33:02 -0400
committerswurl <swurl@swurl.xyz>2025-05-31 02:33:02 -0400
commit6c655321e6b04b8648802e296bb5ca11d290ae68 (patch)
tree5c906511e4a2910ce8b806bb9d763b524c28619e /externals/oboe/samples/hello-oboe/src/main/cpp/jni_bridge.cpp
parentc0cceff365f754f8859f4c9a0362ebdba7ea388b (diff)
Move dead submodules in-tree
Signed-off-by: swurl <swurl@swurl.xyz>
Diffstat (limited to 'externals/oboe/samples/hello-oboe/src/main/cpp/jni_bridge.cpp')
-rw-r--r--externals/oboe/samples/hello-oboe/src/main/cpp/jni_bridge.cpp90
1 files changed, 90 insertions, 0 deletions
diff --git a/externals/oboe/samples/hello-oboe/src/main/cpp/jni_bridge.cpp b/externals/oboe/samples/hello-oboe/src/main/cpp/jni_bridge.cpp
new file mode 100644
index 0000000000..8d049c5aee
--- /dev/null
+++ b/externals/oboe/samples/hello-oboe/src/main/cpp/jni_bridge.cpp
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2017 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 <oboe/Oboe.h>
+#include "HelloOboeEngine.h"
+#include "logging_macros.h"
+
+extern "C" {
+/* We only need one HelloOboeEngine and it is needed for the entire time.
+ * So just allocate one statically. */
+static HelloOboeEngine sEngine;
+
+JNIEXPORT jint JNICALL
+Java_com_google_oboe_samples_hellooboe_PlaybackEngine_startEngine(
+ JNIEnv *env,
+ jclass,
+ int audioApi, int deviceId, int channelCount) {
+ return static_cast<jint>(sEngine.start((oboe::AudioApi)audioApi, deviceId, channelCount));
+}
+
+JNIEXPORT jint JNICALL
+Java_com_google_oboe_samples_hellooboe_PlaybackEngine_stopEngine(
+ JNIEnv *env,
+ jclass) {
+ return static_cast<jint>(sEngine.stop());
+}
+
+JNIEXPORT void JNICALL
+Java_com_google_oboe_samples_hellooboe_PlaybackEngine_setToneOn(
+ JNIEnv *env,
+ jclass,
+ jboolean isToneOn) {
+
+ sEngine.tap(isToneOn);
+}
+
+
+JNIEXPORT void JNICALL
+Java_com_google_oboe_samples_hellooboe_PlaybackEngine_setBufferSizeInBursts(
+ JNIEnv *env,
+ jclass,
+ jint bufferSizeInBursts) {
+ sEngine.setBufferSizeInBursts(bufferSizeInBursts);
+}
+
+JNIEXPORT jdouble JNICALL
+Java_com_google_oboe_samples_hellooboe_PlaybackEngine_getCurrentOutputLatencyMillis(
+ JNIEnv *env,
+ jclass) {
+ return static_cast<jdouble>(sEngine.getCurrentOutputLatencyMillis());
+}
+
+JNIEXPORT jboolean JNICALL
+Java_com_google_oboe_samples_hellooboe_PlaybackEngine_isLatencyDetectionSupported(
+ JNIEnv *env,
+ jclass) {
+ return (sEngine.isLatencyDetectionSupported() ? JNI_TRUE : JNI_FALSE);
+}
+
+JNIEXPORT jboolean JNICALL
+Java_com_google_oboe_samples_hellooboe_PlaybackEngine_isAAudioRecommended(
+ JNIEnv *env,
+ jclass) {
+ return (sEngine.isAAudioRecommended() ? JNI_TRUE : JNI_FALSE);
+}
+
+JNIEXPORT void JNICALL
+Java_com_google_oboe_samples_hellooboe_PlaybackEngine_setDefaultStreamValues(
+ JNIEnv *env,
+ jclass,
+ jint sampleRate,
+ jint framesPerBurst) {
+ oboe::DefaultStreamValues::SampleRate = (int32_t) sampleRate;
+ oboe::DefaultStreamValues::FramesPerBurst = (int32_t) framesPerBurst;
+}
+} // extern "C"