// AUTOGENERATED FILE - DO NOT MODIFY!
// This file was generated by Djinni from tts_backend.djinni

#pragma once

#include "java/AudioCallback.hpp"
#include "java/support/jni/djinni_support.hpp"

namespace prism::jni {

class AudioCallback final : ::djinni::JniInterface<::prism::java::AudioCallback, AudioCallback> {
public:
    using CppType = std::shared_ptr<::prism::java::AudioCallback>;
    using CppOptType = std::shared_ptr<::prism::java::AudioCallback>;
    using JniType = jobject;

    using Boxed = AudioCallback;

    ~AudioCallback();

    static CppType toCpp(JNIEnv* jniEnv, JniType j) { return ::djinni::JniClass<AudioCallback>::get()._fromJava(jniEnv, j); }
    static ::djinni::LocalRef<JniType> fromCppOpt(JNIEnv* jniEnv, const CppOptType& c) { return {jniEnv, ::djinni::JniClass<AudioCallback>::get()._toJava(jniEnv, c)}; }
    static ::djinni::LocalRef<JniType> fromCpp(JNIEnv* jniEnv, const CppType& c) { return fromCppOpt(jniEnv, c); }

private:
    AudioCallback();
    friend ::djinni::JniClass<AudioCallback>;
    friend ::djinni::JniInterface<::prism::java::AudioCallback, AudioCallback>;

};
extern const JNINativeMethod AudioCallbackProxyRecords[2];

} // namespace prism::jni
