mirror of
https://github.com/zoriya/react-native-omni.git
synced 2026-08-16 02:44:51 +00:00
Basic vlc implementation
This commit is contained in:
@@ -41,7 +41,6 @@ target_sources(
|
||||
# Android-specific Nitrogen C++ sources
|
||||
../nitrogen/generated/android/c++/JHybridOmniPlayerPropsSpec.cpp
|
||||
../nitrogen/generated/android/c++/JHybridOmniPlayerSpec.cpp
|
||||
../nitrogen/generated/android/c++/JVariant_NullType_Rendition.cpp
|
||||
../nitrogen/generated/android/c++/JHybridOmniPlayerFactorySpec.cpp
|
||||
../nitrogen/generated/android/c++/JHybridOmniViewSpec.cpp
|
||||
../nitrogen/generated/android/c++/views/JHybridOmniViewStateUpdater.cpp
|
||||
|
||||
+5
-9
@@ -23,10 +23,6 @@ namespace margelo::nitro::omni { struct Rendition; }
|
||||
#include <optional>
|
||||
#include "Rendition.hpp"
|
||||
#include "JRendition.hpp"
|
||||
#include <NitroModules/Null.hpp>
|
||||
#include <variant>
|
||||
#include "JVariant_NullType_Rendition.hpp"
|
||||
#include <NitroModules/JNull.hpp>
|
||||
|
||||
namespace margelo::nitro::omni {
|
||||
|
||||
@@ -201,13 +197,13 @@ namespace margelo::nitro::omni {
|
||||
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JTrack> /* audio */)>("selectAudio");
|
||||
method(_javaPart, JTrack::fromCpp(audio));
|
||||
}
|
||||
void JHybridOmniPlayerSpec::selectSubtitle(const Track& subtitle) {
|
||||
void JHybridOmniPlayerSpec::selectSubtitle(const std::optional<Track>& subtitle) {
|
||||
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JTrack> /* subtitle */)>("selectSubtitle");
|
||||
method(_javaPart, JTrack::fromCpp(subtitle));
|
||||
method(_javaPart, subtitle.has_value() ? JTrack::fromCpp(subtitle.value()) : nullptr);
|
||||
}
|
||||
void JHybridOmniPlayerSpec::selectRendition(const std::optional<std::variant<nitro::NullType, Rendition>>& rendition) {
|
||||
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JVariant_NullType_Rendition> /* rendition */)>("selectRendition");
|
||||
method(_javaPart, rendition.has_value() ? JVariant_NullType_Rendition::fromCpp(rendition.value()) : nullptr);
|
||||
void JHybridOmniPlayerSpec::selectRendition(const std::optional<Rendition>& rendition) {
|
||||
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JRendition> /* rendition */)>("selectRendition");
|
||||
method(_javaPart, rendition.has_value() ? JRendition::fromCpp(rendition.value()) : nullptr);
|
||||
}
|
||||
|
||||
} // namespace margelo::nitro::omni
|
||||
|
||||
+2
-2
@@ -76,8 +76,8 @@ namespace margelo::nitro::omni {
|
||||
void playNext() override;
|
||||
void selectVideo(const Track& video) override;
|
||||
void selectAudio(const Track& audio) override;
|
||||
void selectSubtitle(const Track& subtitle) override;
|
||||
void selectRendition(const std::optional<std::variant<nitro::NullType, Rendition>>& rendition) override;
|
||||
void selectSubtitle(const std::optional<Track>& subtitle) override;
|
||||
void selectRendition(const std::optional<Rendition>& rendition) override;
|
||||
|
||||
private:
|
||||
jni::global_ref<JHybridOmniPlayerSpec::JavaPart> _javaPart;
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
///
|
||||
/// JVariant_NullType_Rendition.cpp
|
||||
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
||||
/// https://github.com/mrousavy/nitro
|
||||
/// Copyright © Marc Rousavy @ Margelo
|
||||
///
|
||||
|
||||
#include "JVariant_NullType_Rendition.hpp"
|
||||
|
||||
namespace margelo::nitro::omni {
|
||||
/**
|
||||
* Converts JVariant_NullType_Rendition to std::variant<nitro::NullType, Rendition>
|
||||
*/
|
||||
std::variant<nitro::NullType, Rendition> JVariant_NullType_Rendition::toCpp() const {
|
||||
if (isInstanceOf(JVariant_NullType_Rendition_impl::First::javaClassStatic())) {
|
||||
// It's a `nitro::NullType`
|
||||
auto jniValue = static_cast<const JVariant_NullType_Rendition_impl::First*>(this)->getValue();
|
||||
return nitro::null;
|
||||
} else if (isInstanceOf(JVariant_NullType_Rendition_impl::Second::javaClassStatic())) {
|
||||
// It's a `Rendition`
|
||||
auto jniValue = static_cast<const JVariant_NullType_Rendition_impl::Second*>(this)->getValue();
|
||||
return jniValue->toCpp();
|
||||
}
|
||||
throw std::invalid_argument("Variant is unknown Kotlin instance!");
|
||||
}
|
||||
} // namespace margelo::nitro::omni
|
||||
@@ -1,72 +0,0 @@
|
||||
///
|
||||
/// JVariant_NullType_Rendition.hpp
|
||||
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
||||
/// https://github.com/mrousavy/nitro
|
||||
/// Copyright © Marc Rousavy @ Margelo
|
||||
///
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <fbjni/fbjni.h>
|
||||
#include <variant>
|
||||
|
||||
#include <NitroModules/Null.hpp>
|
||||
#include "Rendition.hpp"
|
||||
#include <variant>
|
||||
#include <NitroModules/JNull.hpp>
|
||||
#include "JRendition.hpp"
|
||||
#include <string>
|
||||
|
||||
namespace margelo::nitro::omni {
|
||||
|
||||
using namespace facebook;
|
||||
|
||||
/**
|
||||
* The C++ JNI bridge between the C++ std::variant and the Java class "Variant_NullType_Rendition".
|
||||
*/
|
||||
class JVariant_NullType_Rendition: public jni::JavaClass<JVariant_NullType_Rendition> {
|
||||
public:
|
||||
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/omni/Variant_NullType_Rendition;";
|
||||
|
||||
static jni::local_ref<JVariant_NullType_Rendition> create_0(jni::alias_ref<JNull> value) {
|
||||
static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_Rendition(jni::alias_ref<JNull>)>("create");
|
||||
return method(javaClassStatic(), value);
|
||||
}
|
||||
static jni::local_ref<JVariant_NullType_Rendition> create_1(jni::alias_ref<JRendition> value) {
|
||||
static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_Rendition(jni::alias_ref<JRendition>)>("create");
|
||||
return method(javaClassStatic(), value);
|
||||
}
|
||||
|
||||
static jni::local_ref<JVariant_NullType_Rendition> fromCpp(const std::variant<nitro::NullType, Rendition>& variant) {
|
||||
switch (variant.index()) {
|
||||
case 0: return create_0(JNull::null());
|
||||
case 1: return create_1(JRendition::fromCpp(std::get<1>(variant)));
|
||||
default: throw std::invalid_argument("Variant holds unknown index! (" + std::to_string(variant.index()) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
[[nodiscard]] std::variant<nitro::NullType, Rendition> toCpp() const;
|
||||
};
|
||||
|
||||
namespace JVariant_NullType_Rendition_impl {
|
||||
class First final: public jni::JavaClass<First, JVariant_NullType_Rendition> {
|
||||
public:
|
||||
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/omni/Variant_NullType_Rendition$First;";
|
||||
|
||||
[[nodiscard]] jni::local_ref<JNull> getValue() const {
|
||||
static const auto field = javaClassStatic()->getField<JNull>("value");
|
||||
return getFieldValue(field);
|
||||
}
|
||||
};
|
||||
|
||||
class Second final: public jni::JavaClass<Second, JVariant_NullType_Rendition> {
|
||||
public:
|
||||
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/omni/Variant_NullType_Rendition$Second;";
|
||||
|
||||
[[nodiscard]] jni::local_ref<JRendition> getValue() const {
|
||||
static const auto field = javaClassStatic()->getField<JRendition>("value");
|
||||
return getFieldValue(field);
|
||||
}
|
||||
};
|
||||
} // namespace JVariant_NullType_Rendition_impl
|
||||
} // namespace margelo::nitro::omni
|
||||
+2
-3
@@ -10,7 +10,6 @@ package com.margelo.nitro.omni
|
||||
import androidx.annotation.Keep
|
||||
import com.facebook.jni.HybridData
|
||||
import com.facebook.proguard.annotations.DoNotStrip
|
||||
import com.margelo.nitro.core.NullType
|
||||
import com.margelo.nitro.core.HybridObject
|
||||
|
||||
/**
|
||||
@@ -115,11 +114,11 @@ abstract class HybridOmniPlayerSpec: HybridObject() {
|
||||
|
||||
@DoNotStrip
|
||||
@Keep
|
||||
abstract fun selectSubtitle(subtitle: Track): Unit
|
||||
abstract fun selectSubtitle(subtitle: Track?): Unit
|
||||
|
||||
@DoNotStrip
|
||||
@Keep
|
||||
abstract fun selectRendition(rendition: Variant_NullType_Rendition?): Unit
|
||||
abstract fun selectRendition(rendition: Rendition?): Unit
|
||||
|
||||
// Default implementation of `HybridObject.toString()`
|
||||
override fun toString(): String {
|
||||
|
||||
-53
@@ -1,53 +0,0 @@
|
||||
///
|
||||
/// Variant_NullType_Rendition.kt
|
||||
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
||||
/// https://github.com/mrousavy/nitro
|
||||
/// Copyright © Marc Rousavy @ Margelo
|
||||
///
|
||||
|
||||
package com.margelo.nitro.omni
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip
|
||||
import com.margelo.nitro.core.NullType
|
||||
|
||||
/**
|
||||
* Represents the TypeScript variant "NullType | Rendition".
|
||||
*/
|
||||
@Suppress("ClassName")
|
||||
@DoNotStrip
|
||||
sealed class Variant_NullType_Rendition {
|
||||
@DoNotStrip
|
||||
data class First(@DoNotStrip val value: NullType): Variant_NullType_Rendition()
|
||||
@DoNotStrip
|
||||
data class Second(@DoNotStrip val value: Rendition): Variant_NullType_Rendition()
|
||||
|
||||
val isFirst: Boolean
|
||||
get() = this is First
|
||||
val isSecond: Boolean
|
||||
get() = this is Second
|
||||
|
||||
fun asFirstOrNull(): NullType? {
|
||||
val value = (this as? First)?.value ?: return null
|
||||
return value
|
||||
}
|
||||
fun asSecondOrNull(): Rendition? {
|
||||
val value = (this as? Second)?.value ?: return null
|
||||
return value
|
||||
}
|
||||
|
||||
inline fun <R> match(first: (NullType) -> R, second: (Rendition) -> R): R {
|
||||
return when (this) {
|
||||
is First -> first(value)
|
||||
is Second -> second(value)
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
@DoNotStrip
|
||||
fun create(value: NullType): Variant_NullType_Rendition = First(value)
|
||||
@JvmStatic
|
||||
@DoNotStrip
|
||||
fun create(value: Rendition): Variant_NullType_Rendition = Second(value)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user