// Copyright © 2021-present 650 Industries, Inc. (aka Expo) #pragma once #include #include #include #include #include #include #include "JPlayerData.h" namespace expo { namespace av { namespace jni = facebook::jni; class JAVManager : public jni::HybridClass { public: static auto constexpr kJavaDescriptor = "Lexpo/modules/av/AVManager;"; static auto constexpr TAG = "JAVManager"; static jni::local_ref initHybrid(jni::alias_ref jThis); static void registerNatives(); void installJSIBindings(jlong jsRuntimePointer, jni::alias_ref jsCallInvokerHolder); private: friend HybridBase; jni::global_ref javaPart_; explicit JAVManager(jni::alias_ref jThis) : javaPart_(jni::make_global(jThis)) {} JPlayerData *getMediaPlayerById(int id); }; } // namespace av } // namespace expo