/// /// TextTrack.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 #include #include namespace margelo::nitro::video { /** * A struct which can be represented as a JavaScript object (TextTrack). */ struct TextTrack { public: std::string id SWIFT_PRIVATE; std::string label SWIFT_PRIVATE; std::optional language SWIFT_PRIVATE; bool selected SWIFT_PRIVATE; public: TextTrack() = default; explicit TextTrack(std::string id, std::string label, std::optional language, bool selected): id(id), label(label), language(language), selected(selected) {} }; } // namespace margelo::nitro::video namespace margelo::nitro { // C++ TextTrack <> JS TextTrack (object) template <> struct JSIConverter final { static inline margelo::nitro::video::TextTrack fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { jsi::Object obj = arg.asObject(runtime); return margelo::nitro::video::TextTrack( JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "id")), JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "label")), JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "language")), JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "selected")) ); } static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::video::TextTrack& arg) { jsi::Object obj(runtime); obj.setProperty(runtime, "id", JSIConverter::toJSI(runtime, arg.id)); obj.setProperty(runtime, "label", JSIConverter::toJSI(runtime, arg.label)); obj.setProperty(runtime, "language", JSIConverter>::toJSI(runtime, arg.language)); obj.setProperty(runtime, "selected", JSIConverter::toJSI(runtime, arg.selected)); 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, "id"))) return false; if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "label"))) return false; if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "language"))) return false; if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "selected"))) return false; return true; } }; } // namespace margelo::nitro