// Write C++ code here. // // Do not forget to dynamically load the C++ library into your application. // // For instance, // // In at.lockstep.app.MainActivity.java: // static { // System.loadLibrary("lockstep"); // } // // Or, in at.lockstep.app.MainActivity.kt: // companion object { // init { // System.loadLibrary("lockstep") // } // } #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*/) { /* 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(); return reinterpret_cast(engine); } JNIEXPORT void JNICALL Java_at_lockstep_pb_PlaybackEngine_native_1deleteEngine( JNIEnv *env, jclass, jlong engineHandle) { delete reinterpret_cast(engineHandle); } } // extern "C"