/// /// HybridOmniPlayerSpec.hpp /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. /// https://github.com/mrousavy/nitro /// Copyright © Marc Rousavy @ Margelo /// #pragma once #include #include #include "HybridOmniPlayerSpec.hpp" namespace margelo::nitro::omni { using namespace facebook; class JHybridOmniPlayerSpec: public virtual HybridOmniPlayerSpec, public virtual JHybridObject { public: struct JavaPart: public jni::JavaClass { static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/omni/HybridOmniPlayerSpec;"; std::shared_ptr getJHybridOmniPlayerSpec(); }; struct CxxPart: public jni::HybridClass { static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/omni/HybridOmniPlayerSpec$CxxPart;"; static jni::local_ref initHybrid(jni::alias_ref jThis); static void registerNatives(); using HybridBase::HybridBase; protected: std::shared_ptr createHybridObject(const jni::local_ref& javaPart) override; }; public: explicit JHybridOmniPlayerSpec(const jni::local_ref& javaPart): HybridObject(HybridOmniPlayerSpec::TAG), JHybridObject(javaPart), _javaPart(jni::make_global(javaPart)) {} ~JHybridOmniPlayerSpec() override { // Hermes GC can destroy JS objects on a non-JNI Thread. jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); }); } public: inline const jni::global_ref& getJavaPart() const noexcept { return _javaPart; } public: // Properties std::shared_ptr getEventMap() override; std::optional getShowNotification() override; void setShowNotification(std::optional showNotification) override; bool getHasPrev() override; bool getHasNext() override; std::vector getVideos() override; std::vector getAudios() override; std::vector getSubtitles() override; std::vector getRendition() override; PlayerStatus getStatus() override; bool getIsPlaying() override; double getCurrentTime() override; void setCurrentTime(double currentTime) override; double getBuffered() override; double getDuration() override; double getPlaybackRate() override; void setPlaybackRate(double playbackRate) override; double getVolume() override; void setVolume(double volume) override; bool getMuted() override; void setMuted(bool muted) override; bool getIsAutoQuality() override; public: // Methods void setSource(const Source& src) override; void play() override; void pause() override; void seekBy(double offset) override; void playPrev() override; void playNext() override; void selectVideo(const Track& video) override; void selectAudio(const Track& audio) override; void selectSubtitle(const std::optional& subtitle) override; void selectRendition(const std::optional& rendition) override; private: jni::global_ref _javaPart; }; } // namespace margelo::nitro::omni