#include "PlaybackEngine.h" #include #include extern "C" { /** * Creates the audio engine * * @return a pointer to the audio engine. This should be passed to other methods */ JNIEXPORT jlong JNICALL Java_at_lockstep_pb_PlaybackEngine_native_1createEngine( JNIEnv *env, jclass /*unused*/, jstring filesDir, jint resid) { const char* filesDirTemp = env->GetStringUTFChars(filesDir, NULL); std::string filesDirString(filesDirTemp); env->ReleaseStringUTFChars(filesDir, filesDirTemp); // We use std::nothrow so `new` returns a nullptr if the engine creation fails auto *engine = new(std::nothrow) PlaybackEngine(filesDirString, resid); return reinterpret_cast(engine); } JNIEXPORT void JNICALL Java_at_lockstep_pb_PlaybackEngine_native_1deleteEngine( JNIEnv *env, jclass, jlong engineHandle) { delete reinterpret_cast(engineHandle); } JNIEXPORT void JNICALL Java_at_lockstep_pb_PlaybackEngine_native_1setDefaultStreamValues(JNIEnv *env, jclass type, jint sampleRate, jint framesPerBurst) { oboe::DefaultStreamValues::SampleRate = (int32_t) sampleRate; oboe::DefaultStreamValues::FramesPerBurst = (int32_t) framesPerBurst; } } // extern "C"