/// /// NativeExternalSubtitle.hpp /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. /// https://github.com/mrousavy/nitro /// Copyright © 2025 Marc Rousavy @ Margelo /// #pragma once #if __has_include() #include #else #error NitroModules cannot be found! Are you sure you installed NitroModules properly? #endif #if __has_include() #include #else #error NitroModules cannot be found! Are you sure you installed NitroModules properly? #endif #if __has_include() #include #else #error NitroModules cannot be found! Are you sure you installed NitroModules properly? #endif // Forward declaration of `SubtitleType` to properly resolve imports. namespace margelo::nitro::video { enum class SubtitleType; } #include #include "SubtitleType.hpp" namespace margelo::nitro::video { /** * A struct which can be represented as a JavaScript object (NativeExternalSubtitle). */ struct NativeExternalSubtitle { public: std::string uri SWIFT_PRIVATE; std::string label SWIFT_PRIVATE; SubtitleType type SWIFT_PRIVATE; std::string language SWIFT_PRIVATE; public: NativeExternalSubtitle() = default; explicit NativeExternalSubtitle(std::string uri, std::string label, SubtitleType type, std::string language): uri(uri), label(label), type(type), language(language) {} }; } // namespace margelo::nitro::video namespace margelo::nitro { // C++ NativeExternalSubtitle <> JS NativeExternalSubtitle (object) template <> struct JSIConverter final { static inline margelo::nitro::video::NativeExternalSubtitle fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { jsi::Object obj = arg.asObject(runtime); return margelo::nitro::video::NativeExternalSubtitle( JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "uri")), JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "label")), JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "type")), JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "language")) ); } static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::video::NativeExternalSubtitle& arg) { jsi::Object obj(runtime); obj.setProperty(runtime, "uri", JSIConverter::toJSI(runtime, arg.uri)); obj.setProperty(runtime, "label", JSIConverter::toJSI(runtime, arg.label)); obj.setProperty(runtime, "type", JSIConverter::toJSI(runtime, arg.type)); obj.setProperty(runtime, "language", JSIConverter::toJSI(runtime, arg.language)); return obj; } static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { if (!value.isObject()) { return false; } jsi::Object obj = value.getObject(runtime); if (!nitro::isPlainObject(runtime, obj)) { return false; } if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "uri"))) return false; if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "label"))) return false; if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "type"))) return false; if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "language"))) return false; return true; } }; } // namespace margelo::nitro