Handle rendition selection

This commit is contained in:
2026-05-13 18:23:09 +02:00
parent 9e4fc4aa67
commit e68628daba
18 changed files with 152 additions and 60 deletions
+4
View File
@@ -31,6 +31,7 @@ namespace margelo::nitro::omni {
enum class BoolProperty {
ISPLAYING SWIFT_NAME(isplaying) = 0,
MUTED SWIFT_NAME(muted) = 1,
ISAUTOQUALITY SWIFT_NAME(isautoquality) = 2,
} CLOSED_ENUM;
} // namespace margelo::nitro::omni
@@ -45,6 +46,7 @@ namespace margelo::nitro {
switch (hashString(unionValue.c_str(), unionValue.size())) {
case hashString("isPlaying"): return margelo::nitro::omni::BoolProperty::ISPLAYING;
case hashString("muted"): return margelo::nitro::omni::BoolProperty::MUTED;
case hashString("isAutoQuality"): return margelo::nitro::omni::BoolProperty::ISAUTOQUALITY;
default: [[unlikely]]
throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum BoolProperty - invalid value!");
}
@@ -53,6 +55,7 @@ namespace margelo::nitro {
switch (arg) {
case margelo::nitro::omni::BoolProperty::ISPLAYING: return JSIConverter<std::string>::toJSI(runtime, "isPlaying");
case margelo::nitro::omni::BoolProperty::MUTED: return JSIConverter<std::string>::toJSI(runtime, "muted");
case margelo::nitro::omni::BoolProperty::ISAUTOQUALITY: return JSIConverter<std::string>::toJSI(runtime, "isAutoQuality");
default: [[unlikely]]
throw std::invalid_argument("Cannot convert BoolProperty to JS - invalid value: "
+ std::to_string(static_cast<int>(arg)) + "!");
@@ -66,6 +69,7 @@ namespace margelo::nitro {
switch (hashString(unionValue.c_str(), unionValue.size())) {
case hashString("isPlaying"):
case hashString("muted"):
case hashString("isAutoQuality"):
return true;
default:
return false;
+1
View File
@@ -37,6 +37,7 @@ namespace margelo::nitro::omni {
prototype.registerHybridSetter("volume", &HybridOmniPlayerSpec::setVolume);
prototype.registerHybridGetter("muted", &HybridOmniPlayerSpec::getMuted);
prototype.registerHybridSetter("muted", &HybridOmniPlayerSpec::setMuted);
prototype.registerHybridGetter("isAutoQuality", &HybridOmniPlayerSpec::getIsAutoQuality);
prototype.registerHybridMethod("play", &HybridOmniPlayerSpec::play);
prototype.registerHybridMethod("pause", &HybridOmniPlayerSpec::pause);
prototype.registerHybridMethod("seekBy", &HybridOmniPlayerSpec::seekBy);
+1
View File
@@ -83,6 +83,7 @@ namespace margelo::nitro::omni {
virtual void setVolume(double volume) = 0;
virtual bool getMuted() = 0;
virtual void setMuted(bool muted) = 0;
virtual bool getIsAutoQuality() = 0;
public:
// Methods
+4
View File
@@ -34,6 +34,7 @@ namespace margelo::nitro::omni {
DURATION SWIFT_NAME(duration) = 2,
PLAYBACKRATE SWIFT_NAME(playbackrate) = 3,
VOLUME SWIFT_NAME(volume) = 4,
ISAUTOQUALITY SWIFT_NAME(isautoquality) = 5,
} CLOSED_ENUM;
} // namespace margelo::nitro::omni
@@ -51,6 +52,7 @@ namespace margelo::nitro {
case hashString("duration"): return margelo::nitro::omni::NumberProperty::DURATION;
case hashString("playbackRate"): return margelo::nitro::omni::NumberProperty::PLAYBACKRATE;
case hashString("volume"): return margelo::nitro::omni::NumberProperty::VOLUME;
case hashString("isAutoQuality"): return margelo::nitro::omni::NumberProperty::ISAUTOQUALITY;
default: [[unlikely]]
throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum NumberProperty - invalid value!");
}
@@ -62,6 +64,7 @@ namespace margelo::nitro {
case margelo::nitro::omni::NumberProperty::DURATION: return JSIConverter<std::string>::toJSI(runtime, "duration");
case margelo::nitro::omni::NumberProperty::PLAYBACKRATE: return JSIConverter<std::string>::toJSI(runtime, "playbackRate");
case margelo::nitro::omni::NumberProperty::VOLUME: return JSIConverter<std::string>::toJSI(runtime, "volume");
case margelo::nitro::omni::NumberProperty::ISAUTOQUALITY: return JSIConverter<std::string>::toJSI(runtime, "isAutoQuality");
default: [[unlikely]]
throw std::invalid_argument("Cannot convert NumberProperty to JS - invalid value: "
+ std::to_string(static_cast<int>(arg)) + "!");
@@ -78,6 +81,7 @@ namespace margelo::nitro {
case hashString("duration"):
case hashString("playbackRate"):
case hashString("volume"):
case hashString("isAutoQuality"):
return true;
default:
return false;