From 6c655321e6b04b8648802e296bb5ca11d290ae68 Mon Sep 17 00:00:00 2001 From: swurl Date: Sat, 31 May 2025 02:33:02 -0400 Subject: Move dead submodules in-tree Signed-off-by: swurl --- .../app/src/main/cpp/TestErrorCallback.cpp | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 externals/oboe/apps/OboeTester/app/src/main/cpp/TestErrorCallback.cpp (limited to 'externals/oboe/apps/OboeTester/app/src/main/cpp/TestErrorCallback.cpp') diff --git a/externals/oboe/apps/OboeTester/app/src/main/cpp/TestErrorCallback.cpp b/externals/oboe/apps/OboeTester/app/src/main/cpp/TestErrorCallback.cpp new file mode 100644 index 0000000000..ce4285f5c9 --- /dev/null +++ b/externals/oboe/apps/OboeTester/app/src/main/cpp/TestErrorCallback.cpp @@ -0,0 +1,75 @@ +/* + * 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 + +#include "common/OboeDebug.h" +#include "TestErrorCallback.h" + +using namespace oboe; + +oboe::Result TestErrorCallback::open() { + mCallbackMagic = 0; + mDataCallback = std::make_shared(); + mErrorCallback = std::make_shared(this); + AudioStreamBuilder builder; + oboe::Result result = builder.setSharingMode(oboe::SharingMode::Exclusive) + ->setPerformanceMode(oboe::PerformanceMode::LowLatency) + ->setFormat(oboe::AudioFormat::Float) + ->setChannelCount(kChannelCount) +#if 0 + ->setDataCallback(mDataCallback.get()) + ->setErrorCallback(mErrorCallback.get()) // This can lead to a crash or FAIL. +#else + ->setDataCallback(mDataCallback) + ->setErrorCallback(mErrorCallback) // shared_ptr avoids a crash +#endif + ->openStream(mStream); + return result; +} + +oboe::Result TestErrorCallback::start() { + return mStream->requestStart(); +} + +oboe::Result TestErrorCallback::stop() { + return mStream->requestStop(); +} + +oboe::Result TestErrorCallback::close() { + return mStream->close(); +} + +int TestErrorCallback::test() { + oboe::Result result = open(); + if (result != oboe::Result::OK) { + return (int) result; + } + return (int) start(); +} + +DataCallbackResult TestErrorCallback::MyDataCallback::onAudioReady( + AudioStream *audioStream, + void *audioData, + int32_t numFrames) { + float *output = (float *) audioData; + // Fill buffer with random numbers to create "white noise". + int numSamples = numFrames * kChannelCount; + for (int i = 0; i < numSamples; i++) { + *output++ = (float)((drand48() - 0.5) * 0.2); + } + return oboe::DataCallbackResult::Continue; +} -- cgit v1.2.3