hyperion.ng/libsrc/api/JSONRPC_schema/schema-adjustment.json
xkns 2fb2fc9dd7
Saturation & Brightness/Value Gain using Oklab color space (#1477)
* Imported Oklab reference implementation

* Add Okhsv conversions

* Fixed formatting error

* Add saturation and value gain to schemas

* Add english translation for saturation, value gain

* Created OkhsvTransform

* Make OkhsvTransform configurable

* Apply OkhvsTransform

* Clamped values during transform

* Precalculate isIdentity in OkhsvTransform

* Skip OkhsvTransform if it is the identity function

* Added changelog message

* Allow for full desaturation

* Imported recommended changes by LordGrey

* Fixed typo in constant

* Fixed anti-pattern in ok_color.h

* Correct indentions

* Correct remote-control

* Limited maximum gain settings to practical range

* Renane valueGain to brightnessGain for clarity and understanding

Co-authored-by: LordGrey <lordgrey.emmel@gmail.com>
2022-08-17 23:26:19 +02:00

156 lines
2.8 KiB
JSON

{
"type":"object",
"required":true,
"properties":{
"command": {
"type" : "string",
"required" : true,
"enum" : ["adjustment"]
},
"tan" : {
"type" : "integer"
},
"adjustment": {
"type": "object",
"required": true,
"properties": {
"id" : {
"type" : "string",
"required" : false
},
"red": {
"type": "array",
"required": false,
"items" : {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3
},
"green": {
"type": "array",
"required": false,
"items" : {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3
},
"blue": {
"type": "array",
"required": false,
"items" : {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3
},
"yellow": {
"type": "array",
"required": false,
"items" : {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3
},
"magenta": {
"type": "array",
"required": false,
"items" : {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3
},
"cyan": {
"type": "array",
"required": false,
"items" : {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3
},
"white": {
"type": "array",
"required": false,
"items" : {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3
},
"gammaRed": {
"type" : "number",
"required" : false,
"minimum" : 0.1,
"maximum" : 5.0
},
"gammaGreen": {
"type" : "number",
"required" : false,
"minimum" : 0.1,
"maximum" : 5.0
},
"gammaBlue": {
"type" : "number",
"required" : false,
"minimum" : 0.1,
"maximum" : 5.0
},
"backlightThreshold" : {
"type" : "integer",
"required" : false,
"minimum" : 0,
"maximum" : 100
},
"backlightColored" : {
"type" : "boolean",
"required" : false
},
"brightness" : {
"type" : "integer",
"required" : false,
"minimum" : 0,
"maximum" : 100
},
"brightnessCompensation" : {
"type" : "integer",
"required" : false,
"minimum" : 0,
"maximum" : 100
},
"saturationGain" : {
"type" : "number",
"required" : false,
"minimum" : 0.0,
"maximum": 10.0
},
"brightnessGain" : {
"type" : "number",
"required" : false,
"minimum" : 0.1,
"maximum": 10.0
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}