Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
272 changes: 272 additions & 0 deletions docs/openrpc/the-spec/firebolt-open-rpc.json
Original file line number Diff line number Diff line change
Expand Up @@ -4112,6 +4112,278 @@
}
}
},
{
"name": "VideoOutput.hdcp",
"summary": "Returns HDCP state for the active video output",
"params": [],
"tags": [
{
"name": "property:readonly"
},
{
"name": "capabilities",
"x-uses": [
"xrn:firebolt:capability:cpp-client-only"
]
}
],
Comment thread
Copilot marked this conversation as resolved.
"result": {
"name": "hdcp",
"schema": {
"type": "string",
"enum": [
"direct",
"hdcp1.4",
"hdcp2.2",
"none"
]
}
},
"examples": [
{
"name": "Getting HDCP state",
"params": [],
"result": {
"name": "Default Result",
"value": "hdcp1.4"
}
}
]
},
{
"name": "VideoOutput.cecState",
"summary": "Returns CEC state for the active video output",
"params": [],
"tags": [
{
"name": "property:readonly"
},
{
"name": "capabilities",
"x-uses": [
"xrn:firebolt:capability:cpp-client-only"
]
}
],
"result": {
"name": "cecState",
"schema": {
"type": "string",
"enum": [
"active",
"inactive",
"unsupported"
]
}
},
"examples": [
{
"name": "Getting CEC state",
"params": [],
"result": {
"name": "Default Result",
"value": "inactive"
}
}
]
},
{
"name": "VideoOutput.refreshRate",
"summary": "Returns refresh rate for the active video output",
"params": [],
"tags": [
{
"name": "property:readonly"
},
{
"name": "capabilities",
"x-uses": [
"xrn:firebolt:capability:cpp-client-only"
]
}
],
"result": {
"name": "refreshRate",
"schema": {
"type": "string",
"enum": [
"0",
"23.976",
"24",
"25",
"29.97",
"30",
"50",
"59.94",
"60"
]
}
},
"examples": [
{
"name": "Getting refresh rate",
"params": [],
"result": {
"name": "Default Result",
"value": "59.94"
}
}
]
},
{
"name": "VideoOutput.onHdcpChanged",
"summary": "Returns HDCP state changes for the active video output",
"params": [
{
"name": "listen",
"schema": {
"type": "boolean"
}
}
],
"tags": [
{
"name": "event",
"x-notifier": "VideoOutput.onHdcpChanged",
"x-subscriber-for": "VideoOutput.hdcp"
},
{
"name": "capabilities",
"x-uses": [
"xrn:firebolt:capability:cpp-client-only"
]
}
],
"examples": [
{
"name": "Getting HDCP state change notifications",
"params": [
{
"name": "listen",
"value": true
}
],
"result": {
"name": "result",
"value": null
}
}
],
"result": {
"name": "result",
"schema": {
"type": "null"
}
}
Comment thread
Copilot marked this conversation as resolved.
},
{
"name": "VideoOutput.onCecStateChanged",
"summary": "Returns CEC state changes for the active video output",
"params": [
{
"name": "listen",
"schema": {
"type": "boolean"
}
}
],
"tags": [
{
"name": "event",
"x-notifier": "VideoOutput.onCecStateChanged",
"x-subscriber-for": "VideoOutput.cecState"
},
{
"name": "capabilities",
"x-uses": [
"xrn:firebolt:capability:cpp-client-only"
]
}
],
"examples": [
{
"name": "Getting CEC state change notifications",
"params": [
{
"name": "listen",
"value": true
}
],
"result": {
"name": "result",
"value": null
}
}
],
"result": {
"name": "result",
"schema": {
"type": "string",
"enum": [
"active",
"inactive",
"unsupported"
]
}
}
},
{
"name": "VideoOutput.onRefreshRateChanged",
"summary": "Returns refresh rate changes for the active video output",
"params": [
{
"name": "listen",
"schema": {
"type": "boolean"
}
}
],
"tags": [
{
"name": "event",
"x-notifier": "VideoOutput.onRefreshRateChanged",
"x-subscriber-for": "VideoOutput.refreshRate"
},
{
"name": "capabilities",
"x-uses": [
"xrn:firebolt:capability:cpp-client-only"
]
}
],
"examples": [
{
"name": "Getting refresh rate change notifications",
"params": [
{
"name": "listen",
"value": true
}
],
"result": {
"name": "result",
"value": null
}
}
],
"result": {
"name": "result",
"schema": {
"type": "string",
"enum": [
"0",
"23.976",
"24",
"25",
"29.97",
"30",
"50",
"59.94",
"60"
]
}
}
},
{
"name": "Localization.onCountryChanged",
"tags": [
Expand Down
104 changes: 104 additions & 0 deletions src/json_types/videooutput.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,110 @@ inline const Firebolt::JSON::EnumType<::Firebolt::VideoOutput::RefreshRateValue>
{"60", ::Firebolt::VideoOutput::RefreshRateValue::R60},
});

class CecStateValueJson : public Firebolt::JSON::NL_Json_Basic<::Firebolt::VideoOutput::CecStateValue>
{
public:
void fromJson(const nlohmann::json& json) override
{
Comment thread
brendanobra marked this conversation as resolved.
cecStateValue_ = CecStateValueEnum.at(json.get<std::string>());
}
[[nodiscard]] ::Firebolt::VideoOutput::CecStateValue value() const override { return cecStateValue_; }

private:
::Firebolt::VideoOutput::CecStateValue cecStateValue_;
};

class ColorDepthValueJson : public Firebolt::JSON::NL_Json_Basic<::Firebolt::VideoOutput::ColorDepthValue>
{
public:
void fromJson(const nlohmann::json& json) override
{
colorDepthValue_ = ColorDepthValueEnum.at(json.get<std::string>());
}
[[nodiscard]] ::Firebolt::VideoOutput::ColorDepthValue value() const override { return colorDepthValue_; }

private:
::Firebolt::VideoOutput::ColorDepthValue colorDepthValue_;
};

class ColorFormatValueJson : public Firebolt::JSON::NL_Json_Basic<::Firebolt::VideoOutput::ColorFormatValue>
{
public:
void fromJson(const nlohmann::json& json) override
{
colorFormatValue_ = ColorFormatValueEnum.at(json.get<std::string>());
}
[[nodiscard]] ::Firebolt::VideoOutput::ColorFormatValue value() const override { return colorFormatValue_; }

private:
::Firebolt::VideoOutput::ColorFormatValue colorFormatValue_;
};

class DynamicRangeValueJson : public Firebolt::JSON::NL_Json_Basic<::Firebolt::VideoOutput::DynamicRangeValue>
{
public:
void fromJson(const nlohmann::json& json) override
{
dynamicRangeValue_ = DynamicRangeValueEnum.at(json.get<std::string>());
}
[[nodiscard]] ::Firebolt::VideoOutput::DynamicRangeValue value() const override { return dynamicRangeValue_; }

private:
::Firebolt::VideoOutput::DynamicRangeValue dynamicRangeValue_;
};

class HdcpStateJson : public Firebolt::JSON::NL_Json_Basic<::Firebolt::VideoOutput::HdcpState>
{
public:
void fromJson(const nlohmann::json& json) override { hdcpState_ = HdcpStateEnum.at(json.get<std::string>()); }
[[nodiscard]] ::Firebolt::VideoOutput::HdcpState value() const override { return hdcpState_; }

private:
::Firebolt::VideoOutput::HdcpState hdcpState_;
};

class OutputColorimetryJson : public Firebolt::JSON::NL_Json_Basic<::Firebolt::VideoOutput::OutputColorimetry>
{
public:
void fromJson(const nlohmann::json& json) override
{
outputColorimetry_ = OutputColorimetryEnum.at(json.get<std::string>());
}
[[nodiscard]] ::Firebolt::VideoOutput::OutputColorimetry value() const override { return outputColorimetry_; }

private:
::Firebolt::VideoOutput::OutputColorimetry outputColorimetry_;
};

class QuantizationRangeValueJson : public Firebolt::JSON::NL_Json_Basic<::Firebolt::VideoOutput::QuantizationRangeValue>
{
public:
void fromJson(const nlohmann::json& json) override
{
quantizationRangeValue_ = QuantizationRangeValueEnum.at(json.get<std::string>());
}
[[nodiscard]] ::Firebolt::VideoOutput::QuantizationRangeValue value() const override
{
return quantizationRangeValue_;
}

private:
::Firebolt::VideoOutput::QuantizationRangeValue quantizationRangeValue_;
};

class RefreshRateValueJson : public Firebolt::JSON::NL_Json_Basic<::Firebolt::VideoOutput::RefreshRateValue>
{
public:
void fromJson(const nlohmann::json& json) override
{
refreshRateValue_ = RefreshRateValueEnum.at(json.get<std::string>());
}
[[nodiscard]] ::Firebolt::VideoOutput::RefreshRateValue value() const override { return refreshRateValue_; }

private:
::Firebolt::VideoOutput::RefreshRateValue refreshRateValue_;
};

class VideoOutputResolution : public Firebolt::JSON::NL_Json_Basic<::Firebolt::VideoOutput::VideoOutputResolution>
{
public:
Expand Down
Loading
Loading