diff --git a/package-lock.json b/package-lock.json
index c86b5a1df..6ee9d55de 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -72,6 +72,7 @@
"madge": "^4.0.2",
"marked": "^4.0.12",
"mocha": "^9.1.3",
+ "node-html-markdown": "^1.2.0",
"node-run-cmd": "^1.0.1",
"nyc": "^15.1.0",
"object.pick": "^1.3.0",
@@ -1486,6 +1487,12 @@
"node": ">=8"
}
},
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "dev": true
+ },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -1936,6 +1943,34 @@
"node": ">= 8"
}
},
+ "node_modules/css-select": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "dev": true,
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
"node_modules/dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
@@ -2290,12 +2325,76 @@
"node": ">=6.0.0"
}
},
+ "node_modules/dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ]
+ },
+ "node_modules/domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
"node_modules/domino": {
"version": "2.1.6",
"resolved": "https://registry.npmjs.org/domino/-/domino-2.1.6.tgz",
"integrity": "sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==",
"dev": true
},
+ "node_modules/domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dev": true,
+ "dependencies": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
"node_modules/ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -5308,6 +5407,28 @@
"path-to-regexp": "^1.7.0"
}
},
+ "node_modules/node-html-markdown": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/node-html-markdown/-/node-html-markdown-1.2.0.tgz",
+ "integrity": "sha512-mGA53bSqo7j62PjmMuFPdO0efNT9pqiGYhQTNVCWkY7PdduRIECJF7n7NOrr5cb+d/js1GdYRLpoTYDwawRk6A==",
+ "dev": true,
+ "dependencies": {
+ "node-html-parser": "^5.3.3"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/node-html-parser": {
+ "version": "5.4.2",
+ "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.2.tgz",
+ "integrity": "sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==",
+ "dev": true,
+ "dependencies": {
+ "css-select": "^4.2.1",
+ "he": "1.2.0"
+ }
+ },
"node_modules/node-preload": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
@@ -5352,6 +5473,18 @@
"node": ">=0.10.0"
}
},
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
"node_modules/nyc": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
@@ -8849,6 +8982,12 @@
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
"integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ=="
},
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "dev": true
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -9195,6 +9334,25 @@
"which": "^2.0.1"
}
},
+ "css-select": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ }
+ },
+ "css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "dev": true
+ },
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
@@ -9455,12 +9613,57 @@
"esutils": "^2.0.2"
}
},
+ "dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true
+ }
+ }
+ },
+ "domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.2.0"
+ }
+ },
"domino": {
"version": "2.1.6",
"resolved": "https://registry.npmjs.org/domino/-/domino-2.1.6.tgz",
"integrity": "sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==",
"dev": true
},
+ "domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ }
+ },
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -11695,6 +11898,25 @@
"path-to-regexp": "^1.7.0"
}
},
+ "node-html-markdown": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/node-html-markdown/-/node-html-markdown-1.2.0.tgz",
+ "integrity": "sha512-mGA53bSqo7j62PjmMuFPdO0efNT9pqiGYhQTNVCWkY7PdduRIECJF7n7NOrr5cb+d/js1GdYRLpoTYDwawRk6A==",
+ "dev": true,
+ "requires": {
+ "node-html-parser": "^5.3.3"
+ }
+ },
+ "node-html-parser": {
+ "version": "5.4.2",
+ "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.2.tgz",
+ "integrity": "sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==",
+ "dev": true,
+ "requires": {
+ "css-select": "^4.2.1",
+ "he": "1.2.0"
+ }
+ },
"node-preload": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
@@ -11730,6 +11952,15 @@
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
},
+ "nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0"
+ }
+ },
"nyc": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
diff --git a/package.json b/package.json
index 958649681..03f911dd3 100644
--- a/package.json
+++ b/package.json
@@ -100,6 +100,7 @@
"madge": "^4.0.2",
"marked": "^4.0.12",
"mocha": "^9.1.3",
+ "node-html-markdown": "^1.2.0",
"node-run-cmd": "^1.0.1",
"nyc": "^15.1.0",
"object.pick": "^1.3.0",
diff --git a/scripts/scrape-roku-docs.ts b/scripts/scrape-roku-docs.ts
index a6040ec9a..db39c6bd7 100644
--- a/scripts/scrape-roku-docs.ts
+++ b/scripts/scrape-roku-docs.ts
@@ -14,10 +14,18 @@ import { gfm } from '@guyplusplus/turndown-plugin-gfm';
import { marked } from 'marked';
import * as he from 'he';
import * as deepmerge from 'deepmerge';
+import { NodeHtmlMarkdown } from 'node-html-markdown';
type Token = marked.Token;
-const potentialTypes = ['object', 'integer', 'float', 'boolean', 'string', 'dynamic', 'function', 'longinteger', 'double'];
+const potentialTypes = ['object', 'integer', 'float', 'boolean', 'string', 'dynamic', 'function', 'longinteger', 'double', 'roassociativearray', 'object (string array)'];
+
+const foundTypesTranslation = {
+ 'object (string array)': 'object',
+ 'robytearray object': 'roByteArray',
+ 'rolist of roassociativearray items': 'roList',
+ 'roassociative array': 'roAssociativeArray'
+};
const turndownService = new TurndownService({
headingStyle: 'atx',
@@ -71,6 +79,8 @@ class Runner {
private writeTypeDefinitions() {
let data = [] as string[];
for (const iface of Object.values(this.result.interfaces)) {
+ //TODO: Ideally this would use the getTypeDef() method of InterfaceStatement, but that does not include comments
+
//add a single space between interface declarations
data.push('');
if (iface.availableSince) {
@@ -89,14 +99,35 @@ class Runner {
}
for (const method of iface.methods) {
//method doc block
- if (method.returnDescription || method.description) {
+ data.push(`\t'`);
+
+ if (method.description) {
+ data.push(
+ `\t'${method.description}`,
+ `\t'`
+ );
+ }
+ for (const param of method.params) {
+ let paramName = param.name;
+ if (param.default) {
+ paramName += `=${param.default}`;
+ }
+ if (!param.isRequired) {
+ paramName = `[${paramName}]`;
+ }
+ let paramComment = `\t'@param {${param.type}} ${paramName}`;
+ if (param.description) {
+ paramComment += ` ${param.description}`;
+ }
+ data.push(paramComment);
+ }
+ if (method.returnDescription) {
data.push(
- `\t'`,
- method.description ? `\t'${method.description}` : undefined,
method.returnDescription ? `\t'@return ${method.returnDescription}` : undefined,
`\t'`
);
}
+
const params = method.params.map(p => `${p.name} as ${p.type}`).join(', ');
data.push(`\tfunction ${method.name}(${params}) as ${method.returnType}`);
@@ -274,13 +305,6 @@ class Runner {
component.constructors.push(signature);
}
} else if (match[1]) {
- // Docs for some components do not have valid brightscript in the createObject example:
- // it looks like C code
- // Eg: CreateObject("roRegion", Object bitmap, Integer x, Integer y,Integer width, Integer height)
- // or, they forget the "as"
- // Eg: CreateObject("roArray", size As Integer, resizeAs Boolean)
-
- //split args by comma, remove quotes
const foundParamTexts = match[1].split(',').map(x => x.replace(/['"]+/g, '').trim());
if (foundParamTexts[0].toLowerCase() === component.name.toLowerCase()) {
@@ -291,31 +315,7 @@ class Runner {
for (let i = 1; i < foundParamTexts.length; i++) {
const foundParam = foundParamTexts[i];
- // make an array of at the words in each group, removing "as" if it exists
- const words = foundParam.split(' ').filter(word => word.length > 0 && word.toLowerCase() !== 'as');
- // find the index of the word that looks like a type
- const paramTypeIndex = words.findIndex(word => potentialTypes.includes(word.toLowerCase()));
- let paramType = 'dynamic';
- let paramName = `param${i}`;
- if (paramTypeIndex >= 0) {
- // if we found a word that looks like a type, use it for the type, and remove it from the array
- paramType = words[paramTypeIndex];
- words.splice(paramTypeIndex, 1);
- // use the first "left over" word as the param name
- paramName = words[0];
- } else if (words.length > 0) {
- // if we couldn't find a type
- paramName = words[0];
- }
-
- signature.params.push({
- name: paramName,
- default: undefined,
- isRequired: true,
- type: paramType ?? 'dynamic',
- description: undefined
- });
-
+ signature.params.push(this.getParamFromMarkdown(foundParam, `param${i}`));
}
component.constructors.push(signature);
}
@@ -334,6 +334,48 @@ class Runner {
}
}
+
+ /* Gets a param based on text in the docs
+ * Docs for some components do not have valid brightscript in the createObject example:
+ * - it looks like C code
+ * Eg: CreateObject("roRegion", Object bitmap, Integer x, Integer y,Integer width, Integer height)
+ * - or, they forget the "as"
+ * Eg: CreateObject("roArray", size As Integer, resizeAs Boolean)
+ * */
+ private getParamFromMarkdown(foundParam: string, defaultParamName: string) {
+ // make an array of at the words in each group, removing "as" if it exists
+ const words = foundParam.split(' ').filter(word => word.length > 0 && word.toLowerCase() !== 'as');
+ // find the index of the word that looks like a type
+ const paramTypeIndex = words.findIndex(word => potentialTypes.includes(this.sanitizeMarkdownSymbol(word.toLowerCase())));
+ let paramType = 'dynamic';
+ let paramName = defaultParamName;
+
+ const isOptional = foundParam.endsWith(']');
+
+ if (paramTypeIndex >= 0) {
+ // if we found a word that looks like a type, use it for the type, and remove it from the array
+ paramType = this.sanitizeMarkdownSymbol(words[paramTypeIndex]);
+
+ // translate to an actual BRS type if needed
+ paramType = foundTypesTranslation[paramType.toLowerCase()] || paramType;
+
+ words.splice(paramTypeIndex, 1);
+ // use the first "left over" word as the param name
+ paramName = words[0];
+ } else if (words.length > 0) {
+ // if we couldn't find a type
+ paramName = words[0];
+ }
+
+ return {
+ name: this.sanitizeMarkdownSymbol(paramName),
+ default: null,
+ isRequired: !isOptional,
+ type: chooseMoreSpecificType(paramType ?? 'dynamic'),
+ description: undefined
+ } as Param;
+ }
+
private async buildInterfaces() {
const interfaceDocs = this.references.BrightScript.Interfaces;
const count = Object.values(interfaceDocs).length;
@@ -488,10 +530,10 @@ class Runner {
//the turndown plugin doesn't convert inner html tables, so turn that into markdown too
description = turndownService.turndown(description);
result.push({
- name: row.field,
- type: row.type,
- default: row.default,
- accessPermission: row['access permission'],
+ name: this.sanitizeMarkdownSymbol(row.field),
+ type: this.sanitizeMarkdownSymbol(row.type),
+ default: this.sanitizeMarkdownSymbol(row.default, true),
+ accessPermission: this.sanitizeMarkdownSymbol(row['access permission']),
//grab all the markdown from the 4th column (description)
description: description
});
@@ -570,7 +612,7 @@ class Runner {
);
for (const row of manager.tableToObjects(table)) {
iface.properties.push({
- name: row.attribute,
+ name: this.sanitizeMarkdownSymbol(row.attribute),
description: `${row.values}. Screen types: ${row['screen types']}. Example: ${row.example}`,
default: 'invalid',
type: 'string'
@@ -626,10 +668,13 @@ class Runner {
manager.getTableByHeaders(['name', 'type', 'description'], methodHeader, x => x === nextMethodHeader)
);
for (const row of parameterObjects ?? []) {
- const methodParam = method.params.find(p => p?.name && p.name?.toLowerCase() === row.name?.toLowerCase());
+ // Some docs have invalid param names
+ const rowNameSanitized = this.sanitizeMarkdownSymbol(row.name).toLowerCase();
+
+ const methodParam = method.params.find(p => p?.name && p.name?.toLowerCase() === rowNameSanitized);
if (methodParam) {
- methodParam.type = row.type ?? methodParam.type;
- methodParam.description = row.description ?? methodParam.description;
+ methodParam.type = chooseMoreSpecificType(methodParam.type, row.type);
+ methodParam.description = convertHTMLTable(row.description ?? methodParam.description);
}
}
@@ -639,22 +684,37 @@ class Runner {
return result;
}
+ private sanitizeMarkdownSymbol(symbolName: string, allowSquareBrackets = false) {
+ if (allowSquareBrackets) {
+ return symbolName?.replaceAll(/[\\]/g, '');
+ }
+ return symbolName?.replaceAll(/[\[\]\\]/g, '');
+ }
+
private getMethod(text: string) {
// var state = new TranspileState(new BrsFile('', '', new Program({}));
- const { statements } = Parser.parse(`function ${text}\nend function`);
+ const { statements } = Parser.parse(`function ${this.sanitizeMarkdownSymbol(text)}\nend function`);
if (statements.length > 0) {
const func = statements[0] as FunctionStatement;
- return {
+ const signature = {
name: func.name?.text,
- params: func.func.parameters.map(x => ({
- name: x.name?.text,
- isRequired: !x.defaultValue,
- default: null, //x.defaultValue.transpile(state)
- type: x.typeToken?.text
- })),
- returnType: func.func.returnTypeToken?.text
+ params: [],
+ returnType: func.func.returnTypeToken?.text ?? 'Void'
} as Func;
+
+
+ const paramsRegex = /\((.*?)\)/g;
+ let match = paramsRegex.exec(text);
+ if (match[1]) {
+ const foundParamTexts = match[1].split(',').map(x => x.replace(/['"]+/g, '').trim());
+ for (let i = 0; i < foundParamTexts.length; i++) {
+ const foundParam = foundParamTexts[i];
+ signature.params.push(this.getParamFromMarkdown(foundParam, `param${i}`));
+ }
+ }
+ return signature;
}
+
}
private getDocApiUrl(docRelativePath: string) {
@@ -763,6 +823,64 @@ function objectKeySorter(key, value) {
: value;
}
+/**
+ * For two types (or arrays of types), chooses the group that's "more specific"
+ *
+ * @param typeOne the first type group or string
+ * @param typeTwo the first type group or string
+ * @returns a type (or group of types) that is more specific
+ */
+function chooseMoreSpecificType(typeOne: string | string[] = 'dynamic', typeTwo: string | string[] = 'dynamic'): string | string[] {
+
+ // deals with issue where it says "roScreen or roBitmap", etc
+ // also when there is a problematic space, eg "roAssoc Array"
+ const splitRegex = /,|\sor\s/;
+ if (typeof typeOne === 'string') {
+ typeOne = typeOne.split(splitRegex);
+ }
+ if (typeof typeTwo === 'string') {
+ typeTwo = typeTwo.split(splitRegex);
+ }
+ const typeOneArray = typeOne.map(paramType => foundTypesTranslation[paramType.toLowerCase()] || paramType);
+ const typeTwoArray = typeTwo.map(paramType => foundTypesTranslation[paramType.toLowerCase()] || paramType);
+
+ function getSingle(strArray: string[]): string | string[] {
+ return strArray.length === 1 ? strArray[0] : strArray;
+ }
+
+ if (typeTwo.map(a => a.toLowerCase()).includes('dynamic')) {
+ // the second group has "dynamic" in it, so prefer the first group
+ return getSingle(typeOneArray);
+ } else if (typeOne.map(a => a.toLowerCase()).includes('dynamic')) {
+ // second group does not have dynamic, but first does, so 2nd group is more specific
+ return getSingle(typeTwoArray);
+ } else if (typeOneArray.length > typeTwoArray.length) {
+ // first group has more types
+ return getSingle(typeOneArray);
+ } else if (typeTwoArray.length > typeOneArray.length) {
+ // 2nd group has more types
+ return getSingle(typeTwoArray);
+ } else if (typeOneArray.length === 1 && typeTwoArray.length === 1) {
+ // both have one type
+ if (typeOneArray[0].toLowerCase() === 'object' && typeTwoArray[0].toLowerCase().startsWith('ro')) {
+ // the first type is "Object", but is more specific in second type
+ return getSingle(typeTwoArray);
+ }
+ if (typeTwoArray[0].toLowerCase() === 'object') {
+ // Second type is Object ... so prefer the 1st, which usually comes from a code line
+ return getSingle(typeOneArray);
+ }
+ }
+ return getSingle(typeOneArray);
+}
+
+
+function convertHTMLTable(description: string): string {
+ return description.replace(/\
.*\<\/table\>/g, (match) => {
+ return '\n' + NodeHtmlMarkdown.translate(match, {}) + '\n';
+ });
+}
+
/**
* A class to help manage the parsed markdown tokens
*/
@@ -1074,7 +1192,7 @@ interface Param {
isRequired: boolean;
description: string;
default: string;
- type: string;
+ type: string | string[];
}
interface Prop {
name: string;
@@ -1096,3 +1214,4 @@ interface ElementFilter {
//run the builder
new Runner().run().catch((e) => console.error(e));
+
diff --git a/src/roku-types/data.json b/src/roku-types/data.json
index 4b2392edb..6affa7364 100644
--- a/src/roku-types/data.json
+++ b/src/roku-types/data.json
@@ -1,5 +1,5 @@
{
- "generatedDate": "2022-04-11T01:03:18.894Z",
+ "generatedDate": "2022-09-01T19:26:26.512Z",
"nodes": {
"animation": {
"description": "Extends [**AnimationBase**](https://developer.roku.com/docs/references/scenegraph/abstract-nodes/animationbase.md\n\nThe Animation node class provides animations of renderable nodes, by applying interpolator functions to the values in specified renderable node fields. For an animation to take effect, an Animation node definition must include a child field interpolator node ([FloatFieldInterpolator](https://developer.roku.com/docs/references/scenegraph/animation-nodes/floatfieldinterpolator.md\"FloatFieldInterpolator\"), [Vector2DFieldInterpolator](https://developer.roku.com/docs/references/scenegraph/animation-nodes/vector2dfieldinterpolator.md\"Vector2DFieldInterpolator\"), [ColorFieldInterpolator](https://developer.roku.com/docs/references/scenegraph/animation-nodes/colorfieldinterpolator.md\"ColorFieldInterpolator\")) definition for each renderable node field that is animated.\n\nThe Animation node class provides a simple linear interpolator function, where the animation takes place smoothly and simply from beginning to end. The Animation node class also provides several more complex interpolator functions to allow custom animation effects. For example, you can move a graphic image around the screen at differing speeds and curved trajectories at different times in the animation by specifying the appropriate function in the easeFunction field (quadratic and exponential are two examples of functions that can be specified). The interpolator functions are divided into two parts: the beginning of the animation (ease-in), and the end of the animation (ease-out). You can apply a specified interpolator function to either or both ease-in and ease-out, or specify no function for either or both (which is the linear function). You can also change the portion of the animation that is ease-in and ease-out to arbitrary fractional values for a quadratic interpolator function applied to both ease-in and ease-out.",
@@ -10,42 +10,42 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Sets the duration of the animation in seconds",
"name": "duration",
"type": "Time"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"outCubic\"",
"description": "Specifies the interpolator function to be used for the animation:\n\n| Value | Ease-In/Ease-Out Function |\n| --- | --- |\n| linear | No ease-in or ease-out |\n| inQuad | Quadratic ease-in function, no ease-out |\n| inCubic | Cubic ease-in function, no ease-out |\n| inQuartic | Quartic ease-in function, no ease-out |\n| inQuintic | Quintic ease-in function, no ease-out |\n| inExpo | Exponential ease-in function, no ease-out |\n| outQuad | Quadratic ease-out function, no ease-in |\n| outCubic | Cubic ease-out function, no ease-in |\n| outQuartic | Quartic ease-out function, no ease-in |\n| outQuintic | Quintic ease-out function, no ease-in |\n| outExpo | Exponential ease-out function, no ease-in |\n| inOutQuad | Quadratic ease-in and ease-out function |\n| inOutCubic | Cubic ease-in and ease-out function |\n| inOutQuartic | Quartic ease-in and ease-out function |\n| inOutQuintic | Quintic ease-in and ease-out function |\n| inOutExpo | Exponential ease-in and ease-out function |\n| piecewise | Quadratic ease-in and ease-out function with extra control over the percentage of the duration during which ease-in and ease-out occurs. The extra control is specified using the `easeInPercent` and `easeOutPercent` fields. |",
"name": "easeFunction",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.5",
"description": "If easeFunction is set to piecewise, easeInPercent sets the percentage of the animation duration during which ease-in is applied. Note that the values of easeInPercent plus easeOutPercent must be less than or equal to 1. For all other values of easeFunction, easeInPercent is ignored",
"name": "easeInPercent",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.5",
"description": "If easeFunction is set to piecewise, easeOutPercent sets the percentage of the animation duration during which ease-out is applied. Note that the values of easeInPercent plus easeOutPercent must be less than or equal to 1. For all other values of easeFunction, easeOutPercent is ignored",
"name": "easeOutPercent",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Set to true to skip animations on lower performing Roku devices (Paolo, Giga, Jackson, Tyler, and Sugarland). See \\[Roku Devices\\](/docs/specs/hardware.md#current-models \"Roku Devices\") for model numbers and code names. When an Animation has optional set to true, setting the control field to start will cause the state field to change to running and immediately change again to finished. These state changes allow any logic tied to state field observers that run at the start and end of the Animation to be properly called",
"name": "optional",
"type": "boolean"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "false",
"description": "Indicates whether the animation runs or jumps to the end (effectively skipping the animation and rendering it in its final state).",
"name": "willBeSkipped (_Available since Roku OS 10.0_)",
@@ -65,28 +65,28 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "none",
"description": "Controls the animation. Supported options include:\n\n| Option | Effect |\n| --- | --- |\n| none | Initial state with no associated action |\n| start | Always plays the animation from the beginning |\n| stop | Stops the animation in its current state |\n| pause | Pauses the animation in its current state |\n| resume | If paused, resumes the animation from its current state. If the animation is not paused, plays the animation from the beginning. |\n| finish | Jumps to the end of the animation, then stops. All animated fields will be immediately set to their final values as if the animation had completed. |",
"name": "control",
"type": "option string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Delays the start of the animation by the specified number of seconds",
"name": "delay",
"type": "time"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Controls whether the animation stops when it finishes (false) or repeats from the beginning (true)",
"name": "repeat",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "stopped",
"description": "Indicates the state of the animation. Values include:\n\n| Value | Meaning |\n| --- | --- |\n| running | Indicates that the animation is in progress |\n| paused | Indicates that the animation has been paused |\n| stopped | Indicates that the animation has either run to completion or has been explicitly stopped |",
"name": "state",
@@ -106,308 +106,308 @@
},
"fields": [
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "When set to a valid item index, causes the list or grid to quickly scroll so that the item at the specified index moves into focus, or focus moves to the item",
"name": "animateToItem",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[]",
"description": "Specifies differing spaces between each grid column, to allow the spacing between columns to vary from column to column. This field is not used by lists. The specified values override the itemSpacing field vector2d X-value for each grid column corresponding to its position in the array, in left to right order. If the array contains fewer elements than the number of columns needed to display all the items in the grid, the itemSpacing field vector2d X-value is used for any unspecified columns",
"name": "columnSpacings",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[]",
"description": "Specifies differing widths for each grid column, to allow the width of each column to vary from column to column. This field is not used by lists. The specified values override the itemSize field vector2d X-value for each grid column corresponding to its position in the array, in left to right order. If the array contains fewer elements than the number of columns needed to display all the items in the grid, the itemSize field vector2d X-value is used for any unspecified columns",
"name": "columnWidths",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "none",
"description": "Specifies the content meta-data for the list or grid. This field must be set with a ContentNode node that specifies the content meta-data for the list or grid in order for the list or grid to be displayed. See the Data Bindings section of each list or grid reference description for details on the content meta-data that must be specified in the ContentNode node",
"name": "content",
"type": "ContentNode"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Gives access to which column of a grid is in the focus position as the items scrolling around. So, currFocusColumn = 3.7 would mean that item 3 occupies 30% of the focus position while item 4 occupies 70% of the focus position. To maximize performance, the field should be kept to a minimum, as these scripts will run once during each render",
"name": "currFocusColumn",
"type": "float"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "This field provides access to the current opacity of the focus feedback indicator. It can be used to have other items on the screen fade in/out when the focus feedback indicator fades in/out.",
"name": "currFocusFeedbackOpacity",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Gives access to which row of a grid is in the focus position as the items scrolling around. So, currFocusRow = 3.7 would mean that item 3 occupies 30% of the focus position while item 4 occupies 70% of the focus position. To maximize performance, the field should be kept to a minimum, as these scripts will run once during each render",
"name": "currFocusRow",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Gives access to which section of a grid is in the focus position as the items scrolling around. So, currFocusSection = 3.7 would mean that item 3 occupies 30% of the focus position while item 4 occupies 70% of the focus position. To maximize performance, the field should be kept to a minimum, as these scripts will run once during each render",
"name": "currFocusSection",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Causes a specified bitmap to be drawn on list or grid items to indicate focus has moved to that item",
"name": "drawFocusFeedback",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "If the drawFocusFeedback field value is set to true, specifies whether the specified focus indicator bitmap is drawn on top of the focused list or grid items. The default value draws the specified focus indicator bitmap below the focused list or grid item",
"name": "drawFocusFeedbackOnTop",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "When set to true, the focus feedback indicator will quickly fade out when scrolling multiple items and fade back in when the scrolling ends. The focus feedback indicator will also after in and out when using the FFW/Rewind keys to scroll a page at a time. Additionally, the focus behavior has been modified for situations where all the items in a RowList row are visible on screen at once. In the past, the focus would step once, then begin to scroll smoothly. Now, the focus steps one-by-one through each item.",
"name": "fadeFocusFeedbackWhenAutoScrolling",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Specifies that a grid will have a layout of items of different widths configured by parameters included in a ContentNode node for the grid. This field is not used by lists",
"name": "fixedLayout",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Blend the graphic image specified by focusBitmapUri with the specified color. If set to the default, 0xFFFFFFFF, no color blending will occur. Set this field to show a focus indicator graphic image with a different color than the image specified by focusBitmapUri",
"name": "focusBitmapBlendColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "If the drawFocusFeedback field value is set to true, specifies a custom bitmap to be drawn on list or grid items to indicate the focus has moved to that item. Only set this field to use a bitmap with a different appearance than the system default. In most cases, you will want to use a 9-patch PNG bitmap with both expandable regions as well as margins to fit around the item, which is the type of bitmap used as the system default",
"name": "focusBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the column that will have fixed focus for grids if the horizFocusAnimationStyle field value is set to fixedFocusWrap. This field is not used for lists",
"name": "focusColumn",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "If the drawFocusFeedback field value is set to true, specifies a custom bitmap to be drawn on list or grid items to indicate focus on that item, when the list or grid itself does not have focus. Only set this field to use a bitmap with a different appearance than the system default. In most cases, you will want to use a 9-patch PNG bitmap with both expandable regions as well as margins to fit around the item, which is the type of bitmap used as the system default",
"name": "focusFootprintBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Blend the graphic image specified by focusFootprintBitmapUri with the specified color. If set to the default, 0xFFFFFFFF, no color blending will occur. Set this field to show a focus footprint indicator graphic image with a different color than the image specified by focusFootprintBitmapUri",
"name": "focusFootprintBlendColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the row that will have fixed focus if the vertFocusAnimationStyle field value is set to fixedFocusWrap",
"name": "focusRow",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "floatingFocus",
"description": "Specifies the how the focus indicator moves in a row of grid items in response to the remote direction pad Left and Right key presses. This field is not used for lists. The possible values are:\n\n| Option | Effect |\n| --- | --- |\n| floatingFocus | Causes the focus indicator to float left or right until it reaches the end of the row, at which point the focus indicator will stay fixed on the first or last item in the row, and the items will scroll left or right if there were items that were not visible. |\n| fixedFocusWrap | Causes the row to wrap around when the focus indicator reaches the first or last item in the row, as long as the row contains enough items to fill the row. If the row does not contain enough items to fill the row, the focus indicator will float left and right. |",
"name": "horizFocusAnimationStyle",
"type": "option string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ 0.0, 0.0, 0.0, 0.0 \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ 0.0, 0.0, 0.0, 0.0 ]",
"description": "Specifies a clipping region for the list or grid items",
"name": "itemClippingRect",
"type": "rect2d"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "This field provides access to the current opacity of the focus feedback indicator. It can be used to have other items on the screen fade in/out when the focus feedback indicator fades in/out. Additionally, the focus behavior has been modified for situations where all the items in a RowList row are visible on screen at once. In the past, the focus would step once, then begin to scroll smoothly. Now, the focus steps one-by-one through each item.",
"name": "itemcurrFocusFeedbackOpacity",
"type": "Float"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When focus moves to a list or grid item, set to the index of the focused item",
"name": "itemFocused",
"type": "integer"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When a list or grid item is selected, set to the index of the selected item",
"name": "itemSelected",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0,0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0,0]",
"description": "Specifies the width and height of each item in the list or grid. For list or grid items that are posters, itemSize is the value of a basePosterSize field and any sub-elements included with the poster",
"name": "itemSize",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0,0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0,0]",
"description": "Specifies the horizontal and vertical spacing between the list or grid items. For lists, the vector2d Y-value specifies the vertical spacing between items in the list, and the vector2d X-value is ignored",
"name": "itemSpacing",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When focus moves away from a list or grid item, set to the index of the unfocused item",
"name": "itemUnfocused",
"type": "integer"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "When set to a valid item index, causes the list or grid to immediately update so that the item at the specified index moves into focus, or focus moves to the item",
"name": "jumpToItem",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the number of columns in a grid. This field is not used for lists",
"name": "numColumns",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "1",
"description": "Specifies the number of rendering operations to display a complex list or grid. This allows you to achieve a performance increase by specifying that individual sub-elements of the list or grid items occur on sequential rendering operations, rather than all of the item sub-elements being rendered in one rendering operation, which is the default. If you set this field to a value greater than 1, you must specify the rendering operation number for each of the item sub-elements as the renderPass field value for that sub-element. No sub-element that has a renderPass field value of 0 (the default), or has a renderPass field value greater than the value of the numRenderPasses field, will render",
"name": "numRenderPasses",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the number of visible rows displayed. Note that the actual number of rows may be more or less than the number specified depending on the number of items in the list or grid content",
"name": "numRows",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[]",
"description": "Specifies differing heights for each list or grid row, to allow the height of each row to vary from row to row. The specified values override the itemSize field vector2d Y-value for each list or grid row corresponding to its position in the array, in top to bottom order. If the array contains fewer elements than the number of rows needed to display all the items in the list or grid, the itemSize field vector2d Y-value is used for any unspecified rows",
"name": "rowHeights",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[]",
"description": "Specifies differing spaces between each list or grid row, to allow the spacing between rows to vary from row to row. The specified values override the itemSpacing field vector2d Y-value for each list or grid row corresponding to its position in the array, in top to bottom order. If the array contains fewer elements than the number of rows needed to display all the items in the list or grid, the itemSpacing field vector2d Y-value is used for any unspecified rows",
"name": "rowSpacings",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "If the ContentNode node specifies sections for a list or grid, specifies a custom bitmap to use as a visual divider between the sections of the list or grid. Only set this field to use a bitmap with a different appearance than the system default. For sections that do not include an icon or a title, the system default or custom bitmap specified as the wrapDividerBitmapUri field value is used for the section dividers. In most cases, you will want to use a 9-patch PNG bitmap with both expandable regions, which is the type of bitmap used as the system default",
"name": "sectionDividerBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "If the ContentNode node specifies sections for a list or grid, specifies a custom font to use for the section title text. Only set this field to use a different font than the system default",
"name": "sectionDividerFont",
"type": "font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "If the ContentNode node specifies sections for a list or grid, specifies the height of the section divider bitmap",
"name": "sectionDividerHeight",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "If the ContentNode node specifies sections for a list or grid, specifies the left offset of the section divider from the list or grid",
"name": "sectionDividerLeftOffset",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "If the ContentNode node specifies sections for a list or grid, specifies the minimum width of the section divider bitmap",
"name": "sectionDividerMinWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "If the ContentNode node specifies sections for a list or grid, and the section dividers are specified to include an icon and/or a label, specifies the spacing between the icon, label, and section divider bitmap",
"name": "sectionDividerSpacing",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "If the ContentNode node specifies sections for a list or grid, specifies a custom color to use for the section title text. Only set this field to use a different text color than the system default",
"name": "sectionDividerTextColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "If the ContentNode node specifies sections for a list or grid, specifies the width of the section divider bitmap",
"name": "sectionDividerWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "floatingFocus",
"description": "Specifies the how the focus indicator moves in a list or a column of grid items in response to the remote direction pad Up and Down key presses. The possible values are:\n\n| Option | Effect |\n| --- | --- |\n| floatingFocus | Causes the focus indicator to float up or down until it reaches the end of the list or grid column, at which point the focus indicator will stay fixed on the first or last item in the list or grid column, and the items will scroll up or down if there are items that were not visible. Note that when this style is set, section dividers are not rendered. |\n| fixedFocusWrap | Causes the column to wrap around when the focus indicator reaches the first or last item in the list or grid column, as long as the list or grid column contains enough items to fill the list or grid column. If the list or grid column does not contain enough items to fill the list or grid column, the focus indicator will float up and down. |\n| fixedFocus | Causes the focus to stay fixed on the upper leftmost item. As the user scrolls down, the row containing the previously selected item scrolls up off screen. Scrolling continues until the last row is reached. |",
"name": "vertFocusAnimationStyle",
"type": "option string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "If the vertFocusAnimationStyle field value is set to fixedFocusWrap, specifies a custom bitmap to use as a visual divider between the last and first list or grid items, when the list or grid wraps. Only set this field to use a bitmap with a different appearance than the system default. In most cases, you will want to use a 9-patch PNG bitmap with both expandable regions, which is the type of bitmap used as the system default",
"name": "wrapDividerBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "36",
"description": "If the vertFocusAnimationStyle field value is set to fixedFocusWrap, specifies the height of a bitmap used as a visual divider between the last and first list or grid items, when the list or grid wraps. Only set this field to use a value with a different appearance than the system default",
"name": "wrapDividerHeight",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Additionally, the focus behavior has been modified for situations where all the items in a RowList row are visible on screen at once. In the past, the focus would step once, then begin to scroll smoothly. Now, the focus steps one-by-one through each item.If the vertFocusAnimationStyle field value is set to fixedFocusWrap, specifies the width of a bitmap used as a visual divider between the last and first list or grid items when the list or grid wraps. Only set this field to use a value with a different appearance than the system default",
"name": "wrapDividerWidth",
@@ -427,134 +427,134 @@
},
"fields": [
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "",
"description": "Contains the format of the currently playing audio.\n\n| Value | Meaning |\n| --- | --- |\n| \"\" | No stream playing |\n| aac | ISO/IEC 14496-3, Advanced Audio Coding |\n| aac\\_adif | ISO/IEC 14496-3, Advanced Audio Coding, ADIF container |\n| aac\\_adts | ISO/IEC 14496-3, Advanced Audio Coding, ADTS container |\n| aac\\_latm | ISO/IEC 14496-3, Advanced Audio Coding, LATM container |\n| ac3 | Dolby Digital |\n| alac | Apple Lossless |\n| dts | DTS Coherent Acoustics |\n| eac3 | Dolby Digital Plus |\n| flac | Free Lossless Audio Codec |\n| mp2 | ISO/IEC 11172-3, MPEG Audio Layer II |\n| mp3 | ISO/IEC 11172-3, MPEG Audio Layer III |\n| none | Stream contains no playable audio |\n| pcm | linear PCM |\n| unknown | Stream contains unknown audio |\n| vorbis | Ogg Vorbis |\n| wma | Microsoft Windows Media Audio |\n| wmapro | Microsoft Windows Media Pro Audio |",
"name": "audioFormat",
"type": "string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "invalid",
"description": "Contains information about stream buffering progress and status. This field is valid only while buffering is in progress, both at stream startup or when re-buffering is required. Observers will be notified when any element of the array changes, and also when buffering is complete and the field itself becomes invalid. The array contains the following name - value pairs.\n\n| Value | Meaning |\n| --- | --- |\n| percentage | Percent buffering complete as an integer. |\n| isUnderrun | Boolean value indicating if a stream underrun occurred. |",
"name": "bufferingStatus",
"type": "associative array"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "NULL",
"description": "The ContentNode node with the \\[Content Meta-Data\\](/docs/developer-program/getting-started/architecture/content-metadata.md) for the audio or audio playlist (a sequence of audios) to be played. If a audio playlist is to be played, the ContentNode node must include complete child ContentNode nodes for each audio in the playlist, with all attributes required to play that audio.",
"name": "content",
"type": "ContentNode"
},
{
- "accessPermission": "READ\\_ONLY",
- "default": "\\-1",
+ "accessPermission": "READ_ONLY",
+ "default": "-1",
"description": "The index of the audio in the audio playlist that is currently playing. Generally, you would only want to check this field if audio playlists are enabled (by setting the \\`contentIsPlaylist\\` field to true), but it is set to 0 when a single audio is playing and audio playlists are not enabled.",
"name": "contentIndex",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "If set to true, enables audio playlists (a sequence of audios to be played). To enable audio playlists, the ContentNode node set in the \\`content\\` field must have children ContentNode nodes for each audio in the playlist. When audio playback is started, all of the audios in the playlist will be played in sequence.",
"name": "contentIsPlaylist",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "none",
"description": "Sets the desired play state for the audio, such as starting or stopping the audio play. Getting the value of this field returns the most recent value set, or \\`none\\` if no value has been set. In order to dynamically monitor the actual state of the audio, see the \\`state\\` field.\n\n| Option | Effect |\n| --- | --- |\n| none | No play state set |\n| play | Start audio play |\n| start | Start audio play |\n| stop | Stop audio play |\n| pause | Pause audio play |\n| resume | Resume audio play after a pause |\n| replay | Replay audio |\n| prebuffer | Starts buffering the audio stream before the Audio node actually begins playback. Only one audio stream can be buffering in the application at any time. Setting the `control` field to `prebuffer` for another audio stream after setting `prebuffer` for a previous audio stream stops the buffering of the previous audio stream. |\n| skipcontent | Skip the currently-playing content, and begin playing the next content in the playlist. If the content is not a playlist, or if the current content is the end of the playlist, this will end playback. |",
"name": "control",
"type": "option string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "The duration of the audio being played, specified in seconds. This becomes valid when playback begins and may change if the audio is dynamic content, such as a live event.",
"name": "duration",
"type": "time"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "The error code associated with the audio play error set in the \\`state\\` field",
"name": "errorCode",
"type": "integer"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "",
"description": "An error message describing the audio play error set in the \\`state\\` field.",
"name": "errorMsg",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "N/A",
"description": "When a node or one of its children gains or loses the keyboard focus, the focusedChild field will be set and call its observer functions. In the observer function, typically, you use \\[ifSGNodeFocus\\](https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodefocus.md functions to query whether this node or some other node has the key focus or is in the key focus chain. Accessing the value of the field will result in script errors.",
"name": "focusedChild",
"type": "N/A"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "If set to true, the audio or audio playlist (if the \\`contentIsPlaylist\\` field is set to true to enable audio playlists) will be restarted from the beginning after the end is reached.",
"name": "loop",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\-1",
+ "accessPermission": "READ_WRITE",
+ "default": "-1",
"description": "If the \\`contentIsPlaylist\\` field is set to true to enable audio playlists, sets the index of the next audio in the playlist to be played. Setting this field does not immediately change the audio being played, but takes effect when the current audio is completed or skipped. By default, this value is -1, which performs the default index increment operation. After the audio specified by the index in this field begins playing, the field is set to the default -1 again, so the next audio played will be set by the default index increment operation, unless the field is set again to a different index.",
"name": "nextContentIndex",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.5",
"description": "The interval between notifications to observers of the position field, specified as the number of seconds. If the value is 0, no notifications are delivered. This value may be read or modified at any time.",
"name": "notificationInterval",
"type": "time"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "invalid",
"description": "The current position in the audio play, as the number of seconds.",
"name": "position",
"type": "time"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "invalid",
"description": "Sets the current position in the audio. The value is the number seconds from the beginning of the stream, specified as a double.",
"name": "seek",
"type": "time"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "none",
"description": "Describes the current audio play state, such as if the audio play has been paused.\n\n| Value | Meaning |\n| --- | --- |\n| none | No current play state |\n| buffering | Audio stream is currently buffering |\n| playing | Audio is currently playing |\n| paused | Audio is currently paused |\n| stopped | Audio is currently stopped |\n| finished | Audio has completed play |\n| error | An error has occurred in the audio play. The error code and error message can be found in the `errorCode` and `errorMsg` fields respectively. |",
"name": "state",
"type": "value string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "{ }",
"description": "Information about the audio segment that is currently streaming. This is only meaningful for segmented audio transports, such as DASH and HLS. The associative array has the following entries:\n\n| Key | Type | Value |\n| --- | --- | --- |\n| segBitrateBps | integer | Bitrate of the segment in bits per second |\n| segSequence | integer | The sequence number of the segment in the audio |\n| segStartTime | time | The start time of the segment from the start of the audio, specified in seconds |\n| segUrl | string | URL of the segment |",
"name": "streamingSegment",
"type": "associative array"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "{ }",
"description": "The most recent timed meta data that has been decoded from the audio stream. Only meta data with a key that matches an entry in timedMetaDataSelectionKeys will be set into this field. The value of this field is an associative array which contains arbitrary keys and values, as found in the audio stream.",
"name": "timedMetaData",
"type": "associative array"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "If the audio stream contains timed meta data such as ID3 tags, any meta data with a key matching an entry in this array will be set into the timedMetaData field. If any entry in this array is \"\\\\\\*\", then all timed meta data will be selected.",
"name": "timedMetaDataSelectionKeys",
"type": "array of strings"
@@ -573,28 +573,28 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies whether the bitmap rotates in a clockwise or counterclockwise direction",
"name": "clockwise",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "none",
"description": "Sets the operational state of the busy spinner\n\n| Option | Effect |\n| --- | --- |\n| none | No operational state set. The busy spinner will run if not set to `\"stop\"`. |\n| start | Starts the busy spinner if not running |\n| stop | Stops the busy spinner if running |",
"name": "control",
"type": "option string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "internal instance default",
"description": "Set the uri field of the Poster node to select the bitmap for the busy spinner",
"name": "poster",
"type": "Poster node"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "1",
"description": "The number of seconds to complete a 360-degree rotation of the spinner image. A value of 0 will cause the spinner to remain stationary and not spin",
"name": "spinInterval",
@@ -614,98 +614,98 @@
},
"fields": [
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "N/A",
"description": "The buttonSelected field is set whenever the button is selected. The field should be used to call observer callback functions when the button is selected",
"name": "buttonSelected",
"type": "Event"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the button background bitmap file to display when the button has the key focus. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap",
"name": "focusBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies a bitmap file for the button icon when the button has the key focus. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap. For a button with no icon, set this field to an empty string (iconUri=\"\")",
"name": "focusedIconUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0x262626ff",
"description": "Specifies the color of the button label when the button has the key focus",
"name": "focusedTextColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the font of the button label when the button has the key focus",
"name": "focusedTextFont",
"type": "Font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the button focus \"footprint\" bitmap file to display when the button does not have key focus. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap. By default the \"footprint\" bitmap is not displayed when the button does not have the key focus. To display the background when the button is unfocused, the showFocusFootprint field must be set to true",
"name": "focusFootprintBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "64",
"description": "Specifies the height of the button",
"name": "height",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies a bitmap file for the button icon when the button does not have the key focus. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap. For a button with no icon, set this field to an empty string (iconUri=\"\")",
"name": "iconUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "32767",
"description": "Specifies the maximum width of the button. The maxWidth field must be greater than or equal to the minWidth field",
"name": "maxWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the minimum width of the button. The minWidth field must be less than or equal to the maxWidth field",
"name": "minWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Controls whether the focus \"footprint\" bitmap is displayed when the button does not have the key focus. Since the default value of the showFocusFootprint field is false, the \"footprint\" bitmap is not displayed by default",
"name": "showFocusFootprint",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the text to be displayed as the button label",
"name": "text",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xddddddff",
"description": "Specifies the color of the button label when the button does not have the key focus",
"name": "textColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the font of the button label when the button does not have the key focus",
"name": "textFont",
@@ -725,112 +725,112 @@
},
"fields": [
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "Set to the index of the focused button whenever a button in the group receives the key focus",
"name": "buttonFocused",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the height of each Button node in the group. Only set to override the system default",
"name": "buttonHeight",
"type": "float"
},
{
- "accessPermission": "WRITE\\_ONLY",
- "default": "\\[ \\]",
+ "accessPermission": "WRITE_ONLY",
+ "default": "[ ]",
"description": "Allows a set of Button nodes to be easily created by providing an array of button labels. Each string in the array will result in a Button node to be added to the ButtonGroup node, using the string as the button label",
"name": "buttons",
"type": "array of strings"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "Set to the index of the selected button whenever the user selects a button in the group",
"name": "buttonSelected",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap to be used as the background for the Button node that has focus. Only set to override the system default",
"name": "focusBitmapUri",
"type": "uri"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "Causes the button with the specified index to receive the focus when the ButtonGroup node has the key focus. Note that if the ButtonGroup node does not have the key focus when the focusButton field is set, the specified button will display the focus \"footprint\" as its background",
"name": "focusButton",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap for the focused button icon. Only set to override the system default",
"name": "focusedIconUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xffffffff",
"description": "Specifies the button label color for the Button node that has focus, if any. Only set to override the system default",
"name": "focusedTextColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system: MediumBoldSystemFont",
"description": "Specifies the \\[Font\\](https://developer.roku.com/docs/references/scenegraph/typographic-nodes/font.md\"Font\") node for the Button node that has focus, if any. Only set to override the system default. See Font for a list of all system fonts available",
"name": "focusedTextFont",
"type": "Font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap to be used as the focus footprint background, when focus is not on the ButtonGroup node. The focus footprint is a visual indicator of the button that will take focus when focus moves back onto the ButtonGroup node. Only set to override the system default",
"name": "focusFootprintBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap for the button icon for all unfocused Button nodes in the group. Only set to override the system default",
"name": "iconUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "32767",
"description": "When set, specifies the maximum width for the Button nodes in the group. The maxWidth field must be greater than or equal to the minWidth field",
"name": "maxWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the minimum width for the Button nodes in the group. The minWidth field must be less than or equal to the maxWidth field. Only set to override the system default",
"name": "minWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Specifies whether the button labels and icons should be right- or left-justified. When right-justified and there is an icon, it appears to the right of the button label",
"name": "rightJustify",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xffffffff",
"description": "Specifies the button label color for all unfocused Button nodes in the group. Only set to override the system default",
"name": "textColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system: MediumSystemFont",
"description": "Specifies the \\[Font\\](https://developer.roku.com/docs/references/scenegraph/typographic-nodes/font.md\"Font\") node for all unfocused Button nodes in the group. Only set to override the system default. See Font for a list of all system fonts available",
"name": "textFont",
@@ -850,7 +850,7 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the command to be executed: \\* \\[getUserData\\](#getuserdata) \\* \\[getUserRegionData\\](#getuserregiondata) (\\_Available since Roku OS 9.4\\_) \\* \\[getCatalog\\](#getcatalog) and \\[getStoreCatalog\\](#getstorecatalog) \\* \\[doOrder\\](#doorder) \\* \\[getPurchases\\](#getpurchases) and \\[getAllPurchases\\](#getallpurchases) (\\_Available since Roku OS 9.1\\_) \\* \\[storeChannelCredData\\](#storechannelcreddata) (\\_Available since Roku OS 9.1\\_) \\* \\[getChannelCred\\](#getchannelcred) (\\_Available since Roku OS 9.1\\_) \\* \\[requestPartnerOrder\\](#requestpartnerorder) \\* \\[confirmPartnerOrder\\](#confirmpartnerorder)",
"name": "command",
@@ -870,42 +870,42 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the checkbox icon to use for list items that are in the checked state when that list item does not the key focus. Typically, the icon will include the outline of a box with a checkmark indicator inside. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "checkedIconUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "all false",
"description": "Specifies the checked state of each item in the list. A value of true indicates the item is in the checked state. A value of false indicates that the item is in the unchecked state. When reading the value of the field, note that the field array will always include one value for each item in the list. When writing the value of the field, if the specified array includes fewer values than items in the list, the list items that are unspecified will remain in their current state. For example, if there are 10 items in the list and the field value is set to \\\\\\[ \\`true\\`, \\`true\\` \\\\\\], items 0 and 1 will have their checked state set to true, and the checked state of the remaining items (items 3 to 9) will be unchanged.",
"name": "checkedState",
"type": "array of Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Controls whether or not pressing the remote control OK key causes the checkedState field to automatically toggle the checked state of the currently focused list item. By default, field value is set to true, but there are use cases where other behavior may be desired. In those cases, it is up to the developer to manage the checked state of the list items by setting the \\`checkedState\\` field to the desired index.",
"name": "checkOnSelect",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the checkbox icon to use for list items that are in the checked state when that list item has the key focus. Typically, the icon will include the outline of a box with a checkmark indicator inside. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "focusedCheckedIconUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the checkbox icon to use for list items that are in the unchecked state when that list item has the key focus. Typically, the icon will include the outline of an empty box. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "focusedUncheckedIconUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the checkbox icon to use for list items that are in the unchecked state when that list item does not have the key focus. Typically, the icon will include the outline of an empty box. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "uncheckedIconUri",
@@ -925,35 +925,35 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the field to interpolate. This generally refers to the field on a SceneGraph node that contains the color to animate, such as testRectangle.color field in the example below",
"name": "fieldToInterp",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the fraction to be used to compute a value for the field",
"name": "fraction",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies the key fractions for the interpolator keyframes. Each key fraction should be a unique value from 0 to 1 indicating the fraction of the animation where the keyValue field value should occur. Behavior is undefined if the number of values in the key field does not match the number of values in the keyValue field",
"name": "key",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies the key values for the interpolator keyframes. Each value in the keyValue field array corresponds to a value in the key field array. Behavior is undefined if the number of values in the key field does not match the number of values in the keyValue field",
"name": "keyValue",
"type": "array of colors"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Enables animation to be played in reverse",
"name": "reverse",
@@ -973,21 +973,21 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "no default",
"description": "Set to a unique ID for the library for the application",
"name": "id",
"type": "string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "\"none\"",
"description": "Indicates the progress of the library download. The possible values are:\n\n| Value | Meaning |\n| --- | --- |\n| none | The default if the library is not being downloaded |\n| loading | Library is downloading |\n| ready | Library has downloaded successfully |\n| failed | Download of the library has failed |",
"name": "loadStatus",
"type": "value string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "no default",
"description": "The URL of the library to be downloaded",
"name": "uri",
@@ -1019,183 +1019,183 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the bitmap to be displayed as the dialog background. Usually this is a 9-patch image to support dynamic resizing. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap",
"name": "backgroundUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "An array of strings to be displayed as a list of bullet points",
"name": "bulletText",
"type": "array of string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "N/A",
"description": "When set, the color of the bullet point text",
"name": "bulletTextColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "N/A",
"description": "When set, the font of the bullet point text",
"name": "bulletTextFont",
"type": "Font"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "Set to the index of the focused button whenever a button in the group receives the key focus",
"name": "buttonFocused",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "The dialog internal ButtonGroup node. This allows the appearance attributes of all the Button nodes in the dialog to be easily modified. Since the ButtonGroup node class is derived from the LayoutGroup node class, additional non-Button node children can also be added",
"name": "buttonGroup",
"type": "ButtonGroup"
},
{
- "accessPermission": "WRITE\\_ONLY",
- "default": "\\[ \\]",
+ "accessPermission": "WRITE_ONLY",
+ "default": "[ ]",
"description": "Allows a set of Button nodes to be easily created by providing an array of Button labels. Each string in the array will result in a Button node to be added to the ButtonGroup, using the string as the Button label",
"name": "buttons",
"type": "array of string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "Set to the index of the selected button whenever the user selects a button in the group",
"name": "buttonSelected",
"type": "integer"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "false",
"description": "Causes the dialog to be dismissed. The dialog is dismissed whenever the close field is set, regardless of whether the field is set to true or false",
"name": "close",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies a bitmap to be displayed as the divider between the title region and the remainder of the dialog. Usually this is a 9-patch image to support dynamic resizing. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap",
"name": "dividerUri",
"type": "uri"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "Causes the button with the specified index to receive the focus when the ButtonGroup node has the key focus. Note that if the ButtonGroup node does not have the key focus when the focusButton field is set, the specified button will display the focus footprint as its background",
"name": "focusButton",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the height of the bitmap graphic in local coordinates. If set to 0.0, the height of the bitmap from the image file is used. If set to a value greater than 0.0, the bitmap is scaled to that height",
"name": "graphicHeight",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies a bitmap to be displayed in the dialog. The bitmap is displayed below the bullet text region and above the buttons. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap",
"name": "graphicUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the width of the bitmap graphic in local coordinates. If set to 0.0, the width of the bitmap from the image file is used. If set to a value greater than 0.0, the bitmap is scaled to that width",
"name": "graphicWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies a bitmap to be displayed as a small icon next to the dialog title. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap",
"name": "iconUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\-1.0",
+ "accessPermission": "READ_WRITE",
+ "default": "-1.0",
"description": "Sets the maximum height of the dialog. By default, the Dialog will scale the height based on the contents but never larger than the height of the display resolution. Setting maxHeight smaller than the contents will switch to a scrollable text region",
"name": "maxHeight",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "The string to be displayed in the message region of the dialog. Newline and carriage return characters in the string result in the message being displayed as several lines of text. In BrightScript, to include a newline in a string, use chr(10). For example: \\`message = \"First line\" + chr(10) + \"Second line\"\\`",
"name": "message",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "N/A",
"description": "When set, the color of the message text",
"name": "messageColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "N/A",
"description": "When set, the font of the message text",
"name": "messageFont",
"type": "Font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "If set to true, the bulletText will be displayed with numbers rather than bullets",
"name": "numberedBullets",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "If set to true, the dialog is automatically dismissed when the Options key is pressed",
"name": "optionsDialog",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Title of the dialog box",
"name": "title",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "N/A",
"description": "When set, the color of the title",
"name": "titleColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "N/A",
"description": "When set, the font of the title",
"name": "titleFont",
"type": "Font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "N/A",
"description": "Set when the dialog has been closed. The field is set when the dialog close field is set, when the Back or Home key has been pressed, when the Options key has been pressed if the optionsDialog field is set to true, and when the dialog is dismissed because another dialog was displayed",
"name": "wasClosed",
"type": "Event"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\-1.0",
+ "accessPermission": "READ_WRITE",
+ "default": "-1.0",
"description": "Specifies the width of the dialog. By default, this value is pulled from the system theme",
"name": "width",
"type": "float"
@@ -1249,7 +1249,7 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"generic\"",
"description": "The keyboard mode, which may be one of the following: \\* \"email\": letter-by-letter dictation for emails. \\* \"numeric\": letter-by-letter dictation for PIN codes, zip codes, and other numeric input. \\* \"alphanumeric\": letter-by-letter dication for street addresses or other sequences of numbers and letters. \\* \"generic\": Full word input for search queries or other sequences of numbers, letters and symbols. \\* \"password\": letter-by-letter dication for passwords. The domain may be used to: \\* Set options for the speech recognition system. \\* Identify when a complete string has been entered (for example, an email address). \\* Specify whether the entered string is displayed as a single string or a discrete sequence of characters (for example, a PIN code). \\* Enable key suggestions (for example, a pop-up for the ampersand key (&) to provide common email choices).",
"name": "domain",
@@ -1260,10 +1260,10 @@
"default": "The DynamicKeyGrid associated with the keyboard",
"description": "The internal \\[DynamicKeyGrid node\\](https://developer.roku.com/docs/references/scenegraph/dynamic-voice-keyboard-nodes/dynamic-key-grid.md used by this DynamicKeyboardBase node. Do not set this field to null or to a different DynamicKeyGrid node; this field should be only used to access the fields of this node's internal DynamicKeyGrid node, such as the mode or horizWrapping fields.",
"name": "keyGrid",
- "type": "**[DynamicKeyGrid node](/docs/references/scenegraph/dynamic-voice-keyboard-nodes/dynamic-key-grid.md)**"
+ "type": "**DynamicKeyGrid node(/docs/references/scenegraph/dynamic-voice-keyboard-nodes/dynamic-key-grid.md)**"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Contains the string of characters that has been entered. The text written to this field may also be displayed in the VoiceTextEditBox.",
"name": "text",
@@ -1274,7 +1274,7 @@
"default": "The VoiceTextEditBox associated with the keyboard",
"description": "The internal \\[VoiceTextEditBox node\\](https://developer.roku.com/docs/references/scenegraph/dynamic-voice-keyboard-nodes/voice-text-edit-box.md used by this DynamicKeyboardBase node. Do not set this field to null or to a different VoiceTextEditBox node; this field should be used only to access the fields of this node's internal VoiceTextEditBox node.",
"name": "textEditBox",
- "type": "[**VoiceTextEditBox** node](/docs/references/scenegraph/dynamic-voice-keyboard-nodes/voice-text-edit-box.md)"
+ "type": "**VoiceTextEditBox** node(/docs/references/scenegraph/dynamic-voice-keyboard-nodes/voice-text-edit-box.md)"
}
],
"interfaces": [],
@@ -1291,14 +1291,14 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Enables the grid's focus indicator to be hidden. This option is typically used in PinPads to hide the entered characters.",
"name": "focusVisible",
"type": "boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Specifies whether the key grid uses horizontal wrapping. \\* \\*\\*true\\*\\*: A horizontal arrow keypress causes the focus to wrap from the key at the left (or right) edge of the grid to the key at the right (or left) edge. \\* \\*\\*false\\*\\*: The horizontal arrow keypress is not handled by the DynamicKeyGrid node; it is propagated up the scene graph so that it can be handled by one of its ancestor nodes.",
"name": "horizWrap",
@@ -1312,7 +1312,7 @@
"type": "array of integers"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the \\[Key Definition File\\](https://developer.roku.com/docs/references/scenegraph/dynamic-voice-keyboard-nodes/key-defintion-file.md to use to define the key layout metadata.",
"name": "keyDefinitionUri",
@@ -1333,21 +1333,21 @@
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the keyboard mode. When set, the value is used to select which Grid of each Section is used, based on the grid's mode as specified in the Key Definition File.",
"name": "mode",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "not set",
"description": "The RSGPalette node contains the set of color values used by this DynamicKeyGrid node. By default, no RSGPalette is specified; therefore, the RSGPalette colors are inherited from the ancestor nodes in the scene graph. If the DynamicKeyboardBase node is used within a StandardDialog node, the following rules determine the color palette used by the keyboard: \\* If the \\*\\*palette\\*\\* field is set, the key grid uses it. \\* If the \\*\\*palette\\*\\* field is not set, the key grid looks up the scene graph until it finds a \\*\\*PaletteGroup\\*\\* node with its \\*\\*palette\\*\\* field set. This may be found in a \\*\\*DynamicKeyboard\\*\\* node, a \\*\\*StandardDialog\\*\\* node, or the \\*\\*Scene\\*\\* itself. \\* If no node has its \\*\\*palette\\*\\* field set, the key grid uses the default palette (gray background/white text). The RSGPalette color values used by the DynamicKeyboardBase are as follows:\n\n| Palette Color Name | Usages |\n| --- | --- |\n| KeyboardColor | Blend color for key background bitmap. |\n| PrimaryTextColor | Text color used for non-focused keys. Blend color for the icons of non-focused keys. Text color for the label of focused key suggestion items. |\n| SecondaryItemColor | Text color for disabled keys. Blend color for the icons of disabled keys. |\n| FocusColor | Blend color for the focus indicator. Blend color for the background of key suggestion pop-us. |\n| FocusItemColor | Text color for the label of the focused key. Blend color for the icons of the focused key and the focus indicator in key suggestion pop-ups. Text color for the labels of non-focused key suggestion items. |",
"name": "palette",
"type": "RSGPalette node"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Specifies whether the key grid uses vertical wrapping. \\* \\*\\*true\\*\\*: A vertical arrow keypress causes the focus to wrap from the key at the top (or bottom) edge of the grid to the key at the bottom (or top) edge. \\* \\*\\*false\\*\\*: The vertical arrow key press is not be handled by the DynamicKeyGrid node; it is propagated up the scene graph so that it can be handled by one of its ancestor nodes.",
"name": "vertWrap",
@@ -1393,35 +1393,35 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the field to interpolate. The string should contain the ID of a node in the scene and the name of a field of that node, separated by a dot \".\". For example, \"title.width\" would indicate that the interpolator should be applied to the width field of a node whose id field was \"title\". The specified field must be of type float",
"name": "fieldToInterp",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the percentage to be used to compute a value for the field",
"name": "fraction",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies the key percentages for the interpolator's keyframes. Each key percentage should be a unique value from 0 to 1 indicating the percentage of the animation where the keyValue should occur. Behavior is undefined if the number of values in the key field does not match the number of values in the keyValue field",
"name": "key",
"type": "array of float's"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies the key values or the interpolator's keyframes. Each value in the keyValue array corresponds to a value in the key field's array. The interpolator's behavior is undefined if the number of values in the key field does not match the number of values in the keyValue field",
"name": "keyValue",
"type": "array of float's"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Enables animation to be played in reverse.",
"name": "reverse",
@@ -1441,21 +1441,21 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "String representation of a Unicode character to display when an unsupported glyph is encountered. For example, \"u0020\" would render a space for any unrenderable characters",
"name": "fallbackGlyph",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "1",
"description": "Specifies the size of the font in points",
"name": "size",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies a TrueType or OpenType font file. Currently only font files included in the application can be specified",
"name": "uri",
@@ -1475,49 +1475,49 @@
},
"fields": [
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "N/A",
"description": "When the createNextPanelOnItemFocus field is true, createNextPanel is set when a new panel needs to be created and added to the PanelSet. The value of the field is the index of the grid's content that should be used to create and populate the new panel. The createNextPanelIndex field is guaranteed to be set exactly once whenever the next panel for the focused grid item needs to be created.",
"name": "createNextPanelIndex",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "When set to true, the Create Next Panel mechanism is enabled (i.e. the createNextPanelIndex field will be set when a new grid item receives the focus). When set to false, the Create Next Panel mechanism is disabled (i.e. the createNextPanelIndex field will not be set when a new grid item receives the focus).",
"name": "createNextPanelOnItemFocus",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "NULL",
"description": "The grid field should be set to either a PosterGrid or MarkupGrid node to be displayed in the Panel. In general, because the layout of any grid is usually custom, you will generally need to set the grid's itemSize, itemSpacing, numRows and numColumns fields. The GridPanel will position the grid appropriately.",
"name": "grid",
"type": "Node"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "Label node",
"description": "The leftLabel field is set to a Label node that is positioned just above the left/top corner of the grid. Setting the Label node's text field will cause that text string to be displayed. Setting other fields of the Label node can be used to adjust the Label's text color and other visual attributes.",
"name": "leftLabel",
"type": "Node"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "false",
"description": "When the createNextPanelOnItemFocus field is true, the nextPanel field should be set to a Panel node to the next panel to add to the PanelSet in response to the createNextPanelIndex field being set. It must be set immediately in repsonse to the createNextPanelIndex field being set.",
"name": "nextPanel",
"type": "Node"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "Label node",
"description": "The rightLabel field is set to a Label node that is positioned just above the right/top corner of the grid. Setting the Label node's text field will cause that text string to be displayed. Setting other fields of the Label node can be used to adjust the Label's text color and other visual attributes. The rightLabel is often used to display a \"1 of N\" message that reflects the index of the grid's focused item.",
"name": "rightLabel",
"type": "Node"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "If showSectionLabels is set to true and the data for the grid node is divided into sections, the Title attribute of the current section will be displayed as the leftLabel of the grid. As the grid items scroll, the leftLabel will smoothly transition as each section of the grid reaches the focus position.",
"name": "showSectionLabels",
@@ -1537,98 +1537,98 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "renderLast",
"description": "| Option | Description |\n| --- | --- |\n| `\"renderFirst\"` | any drawing done by this node will be done **before** the node children are rendered |\n| `\"renderLast\"` | any drawing done by this node will be done **after** the node children are rendered |",
"name": "childRenderOrder",
"type": "option as string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ 0.0, 0.0, 0.0, 0.0 \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ 0.0, 0.0, 0.0, 0.0 ]",
"description": "Specifies a rectangle in the node local coordinate system that is used to limit the region where this node and its children can render. If a non-empty rectangle is specified, then all drawing by this node and its children will be limited to that rectangular area. \\* \\`ClippingRects\\` can be specified by the node or by any of its ancestors in the SceneGraph. \\* \\`ClippingRects\\` are automatically set by some nodes such as lists and grids. \\* \\`ClippingRects\\` are always clipped to the screen boundaries, so if a \\`clippingRect\\` is specified that is partially or completely offscreen, it will be clipped to the screen boundaries. With respect to render tracking, although the node could be completely within the bounds of the specified \\`clippingRect\\`, it's \\`renderTracking\\` field could be set to \\`\"none\"\\` if the portion of the \\`clippingRect\\` it occupies is completely offscreen.",
"name": "clippingRect",
"type": "array of float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "If true, renderTracking will be set to a string describing how much of the node is rendered on screen",
"name": "enableRenderTracking",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "If true, the node opacity is determined by multiplying opacity attribute of the node by the opacity of the parent node, which may have been determined by multiplying the opacity of its ancestor nodes. If false, the node opacity is determined by the opacity attribute set for the node or the default opacity attribute value",
"name": "inheritParentOpacity",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "If true, the node overall transformation is determined by combining the accumulated transformation matrix of all of its ancestors in the SceneGraph with the node local 2D transformation matrix described by its translation, rotation, scale and scaleRotateCenter fields. If false, the accumulated transformation of all of its ancestors in the SceneGraph is ignored and only the node local transformation matrix is used. This causes the node to be transformed relative to the root of the SceneGraph (that is, the Scene component)",
"name": "inheritParentTransform",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Set to true to suppress the default CVAA text to speech. This allows channels to provide their own custom implementation",
"name": "muteAudioGuide",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "1.0",
"description": "Sets the opacity of the node and its children. Opacity is the opposite of transparency. Opacity values range from 0.0 (fully transparent) to 1.0 (fully opaque). As the SceneGraph is traversed, the opacity values are combined by multiplying the current accumulated opacity with the node opacity, so that if the accumulated opacity of a node ancestors is 0.25 (75% transparent), the node will have opacity of 0.25 or less. This allows entire branches of the SceneGraph to fade in and out by animating the opacity of the node at the root of the branch",
"name": "opacity",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Used in combination with the numRenderPasses field of nodes extended from the \\[ArrayGrid\\](https://developer.roku.com/docs/references/scenegraph/abstract-nodes/arraygrid.md\"ArrayGrid\") abstract node class, to optimize rendering of lists and grids. This should never be set to a non-zero value unless you are optimizing the performance of a list or grid rendering by specifying the sequence of rendering operations for sub-elements of the list or grid items, and have set the numRenderPasses field value for the list or grid to a value greater than 1. If the numRenderPasses field value for the list or grid is set to a value greater than 1, you must set this field to a value greater than 0 for all sub-elements of the list or grid items, and not greater than the numRenderPasses field value. If the numRenderPasses field is set to a value greater than 1, and you set this field for a list or grid item sub-element to 0 (the default), or a value greater than the numRenderPasses field value, the list or grid item sub-element will not render",
"name": "renderPass",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "disabled",
"description": "renderTracking is set to \"disabled\" when enableRenderTracking is set to false. The following options are only available when enableRenderTracking is set to true:\n\n| Option | Description |\n| --- | --- |\n| `\"none\"` | renderTracking is set to `\"none\"` if **one or more** of these conditions is true:the node's `visible` field is set to `false`the node's `opacity` field is set to `0.0`no `clippingRect` is specified and the node is completely offscreena `clippingRect` is specified and the node lies completely outside that `clippingRect's` coordinates or is completely offscreen |\n| `\"partial\"` | renderTracking is set to `\"partial\"` if **all** of the following conditions are true:the node's `visible` field is set to `true`the node's `opacity` field is greater than `0.0`no `clippingRect` is specified and the node is partially offscreena `clippingRect` is specified and the node lies partially inside the `clippingRect's` coordinates |\n| `\"full\"` | renderTracking is set to `\"full\"` if **all** of the following conditions are true:the node's `visible` field is set to `true`the node's `opacity` field is greater than `0.0`no `clippingRect` is specified and the node is completely onscreena `clippingRect` is specified and the node lies completely inside the `clippingRect's` coordinates |",
"name": "renderTracking",
"type": "option as string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Defines the rotation angle about the scaleRotateCenter point (in radians) of the node local coordinate system. Positive values specify a counterclockwise rotation, negative values specify a clockwise rotation. For some Roku Player hardware, specifically Roku Players without OpenGL graphics support, only rotations of 0, 90, 180 and 270 degrees (in equivalent radians) are supported. (See \\[Roku Models and Features\\](/docs/specs/hardware.md#current-models \"Roku Models and Features\") for information on OpenGL support)",
"name": "rotation",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[1.0,1.0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[1.0,1.0]",
"description": "Defines the scale factor to be applied to the node local coordinate",
"name": "scale",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0.0,0.0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0.0,0.0]",
"description": "Describes the location of a point in the node local coordinate that serves as the center of the scale and rotation operations",
"name": "scaleRotateCenter",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0.0,0.0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0.0,0.0]",
"description": "Defines the origin of the node local coordinate system relative to its parent node",
"name": "translation",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "If true, the node and its children are rendered. If false, the node and its children do not render",
"name": "visible",
@@ -1656,49 +1656,49 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the URI of an image file to be loaded to replace the keyboard focus indicator. This should be a 9-patch image so that it can be stretched to the appropriate size for the double width keys",
"name": "focusBitmapUri",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xffffffff",
"description": "Specifies the color of the key labels and icons when the Keyboard node has the focus",
"name": "focusedKeyColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the URI of an image file to be loaded to replace the default keyboard image drawn underneath the key label and icons. This image must be carefully designed so that the key positions match the default image. Template images for SD, HD and FHD resolutions are provided below.",
"name": "keyboardBitmapUri",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xffffffff",
"description": "Specifies the color of the key labels and icons when the Keyboard node does not have the focus",
"name": "keyColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies whether or not the Keyboard node internal TextEditBox node is displayed. In most cases, it is desirable to display the TextEditBox node so that the user can see the string as it is entered. In some cases though, you might want to show only the keyboard part of the Keyboard node. In those cases, the text field of the node will still contain the string entered by the user, so it can displayed in some different manner",
"name": "showTextEditBox",
"type": "boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Contains the string of characters that has been entered",
"name": "text",
"type": "string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "system default",
"description": "This provides access to the Keyboard node internal TextEditBox node so that its appearance can be modified. You should not set this field, but you can set the fields of the TextEditBox node (such as, myKeyboard.textEditBox.textColor = \"0xFF0000FF\")",
"name": "textEditBox",
@@ -1718,14 +1718,14 @@
},
"fields": [
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "system default",
"description": "Provides access to the internal Keyboard node. The field is read-only, but the fields of the Keyboard node it refers to can be read and written, allowing you to fully customize the Keyboard node appearance and behavior",
"name": "keyboard",
"type": "Keyboard node"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Can be used to explicitly set the internal Keyboard node text string, as well as to access the string entered by the user",
"name": "text",
@@ -1745,119 +1745,119 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xddddddff",
"description": "Specifies the text color",
"name": "color",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "If the height field value is greater than zero, used to determine whether or not the last line of visible text is displayed if it would be clipped vertically",
"name": "displayPartialLines",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "By default, three dots (...) are used to ellipsize the last line of text that extends beyond the bounding rectangle. This field specifies alternate characters to be displayed when the last line of text is ellipsized",
"name": "ellipsisText",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "If the width field value is greater than zero, controls whether or not the last line of text displayed should be ellipsized if it extends beyonds the specified width. It is ignored if the truncateOnDelimiter field value is set to a non-empty string \\* When set to true, text will be ellipsized by whole words. Example: \"This is the last line of...\" \\* When set to false, text will be ellipsized by characters. Example: \"This is the last line of tex...\"",
"name": "ellipsizeOnBoundary",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "Specifies the Font node to be used",
"name": "font",
"type": "Font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the height of the label. If set to zero, the actual height is determined by the value of the numLines field if it is greater than zero. See \\[Vertical Alignment\\](https://developer.roku.com/docs/references/scenegraph/typographic-nodes/scrollinglabel.mdalignment \"Vertical Alignment\") and \\[Wrapping\\](https://developer.roku.com/docs/references/scenegraph/renderable-nodes/label.mdwrapping-text \"Wrapping\") for more details",
"name": "height",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "left",
"description": "See \\[Horizontal Alignment\\](https://developer.roku.com/docs/references/scenegraph/typographic-nodes/scrollinglabel.mdalignment \"Vertical Alignment\")",
"name": "horizAlign",
"type": "string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "false",
"description": "Indicates whether the last line of text has been ellipsized",
"name": "isTextEllipsized",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "If the text is displayed on more than one line, specifies the amount of additional space added between lines",
"name": "lineSpacing",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "If the height and numLines field values are both zero, specifies the maximum number of lines of text to be displayed. See \\[Vertical Alignment\\](https://developer.roku.com/docs/references/scenegraph/typographic-nodes/scrollinglabel.mdalignment \"Vertical Alignment\") and \\[Wrapping\\](https://developer.roku.com/docs/references/scenegraph/renderable-nodes/label.mdwrapping-text \"Wrapping\") for more details",
"name": "maxLines",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "If the height field value is zero, provides an alternate way to specify the height of the bounding rectangle of the label. See \\[Vertical Alignment\\](https://developer.roku.com/docs/references/scenegraph/typographic-nodes/scrollinglabel.mdalignment \"Vertical Alignment\") and \\[Wrapping\\](https://developer.roku.com/docs/references/scenegraph/renderable-nodes/label.mdwrapping-text \"Wrapping\") for more details",
"name": "numLines",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the text to be displayed",
"name": "text",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "If the width field value is greater than zero, provides a set of characters that are used to determine how to truncate the last line of text that is displayed if it extends beyond the specified width. If none of the characters in the last line of text are included in the truncateOnDelimiter field value string, the entire last line is not displayed. When the value is set to a non-empty string, the ellipsizeOnBoundary field value is ignored",
"name": "truncateOnDelimiter",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "top",
"description": "See \\[Vertical Alignment\\](https://developer.roku.com/docs/references/scenegraph/renderable-nodes/label.mdwrapping-text \"Wrapping\")",
"name": "vertAlign",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the width of the label. If set to zero, the text is always displayed as a single line",
"name": "width",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "By default, space and hyphen characters are used to determine where lines can be divided. In addition, this field can specify additional characters to be used to determine where the text can be broken into lines",
"name": "wordBreakChars",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "See \\[Horizontal Alignment\\](https://developer.roku.com/docs/references/scenegraph/typographic-nodes/scrollinglabel.mdalignment \"Horizontal Alignment\")",
"name": "wrap",
@@ -1877,217 +1877,217 @@
},
"fields": [
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "\\*\\*Write-Only\\*\\* When set to a valid item index, this causes the list to quickly scroll so that the specified index moves into the focus position.",
"name": "animateToItem",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xddddddff",
"description": "Specifies the text color for unfocused list items",
"name": "color",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "none",
"description": "Specifies the content for the list. See \\[Data bindings\\](https://developer.roku.com/docs/references/scenegraph/list-and-grid-nodes/labellist.mddata-bindings) below for more details. If the data contains section markers, section dividers will be drawn between each section. These section dividers may contain an icon and/or a string.",
"name": "content",
"type": "ContentNode"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies whether or not the focus indicator bitmap is displayed",
"name": "drawFocusFeedback",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Specifies whether the focus indicator bitmap is drawn below or on top of the list items",
"name": "drawFocusFeedbackOnTop",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Blend the graphic image specified by \\`focusBitmapUri\\` with the specified color. If set to the default, 0xFFFFFFFF, no color blending will occur. Set this field to show a focus indicator graphic image with a different color than the image specified by \\`focusBitmapUri.\\`",
"name": "focusBitmapBlendColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file used for the focus indicator when the list has focus. In most cases, this should be a 9-patch image that specifies both expandable regions as well as margins. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "focusBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0x262626ff",
"description": "Specifies the text color for focused list items",
"name": "focusedColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "Specifies the font for focused list items",
"name": "focusedFont",
"type": "font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file used for the focus indicator when the list does not have focus. In most cases, this should be a 9-patch image that specifies both expandable regions as well as margins. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "focusFootprintBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Blend the graphic image specified by \\`focusFootprintBitmapUri\\` with the specified color. If set to the default, 0xFFFFFFFF, no color blending will occur. Set this field to show a focus footprint indicator graphic image with a different color than the image specified by \\`focusFootprintBitmapUri\\`.",
"name": "focusFootprintBlendColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the row that will have fixed focus if the \\`vertFocusAnimationStyle\\` field value is set to \\`fixedFocusWrap\\`.",
"name": "focusRow",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "Specifies the font for unfocused list items",
"name": "font",
"type": "font"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "\\*\\*Read-Only\\*\\* When a list item gains the key focus, set to the index of the focused item.",
"name": "itemFocused",
"type": "integer"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "\\*\\*Read-Only\\*\\* When a list item is selected, itemSelected is set to the index of the selected item.",
"name": "itemSelected",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0,0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0,0]",
"description": "Specifies the width and height of each item in the list",
"name": "itemSize",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0,0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0,0]",
"description": "The second value of the vector specifies the vertical spacing between items in the list. The first value of the vector is ignored.",
"name": "itemSpacing",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "\\*\\*Read-Only\\*\\* When a list item loses the key focus, set to the index of the unfocused item.",
"name": "itemUnfocused",
"type": "integer"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "\\*\\*Write-Only\\*\\* When set to a valid item index, this causes the list to immediately update so that the specified index moves into the focus position.",
"name": "jumpToItem",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "12",
"description": "Specifies the number of visible rows displayed. The actual number of rows may be more or less than the number of visible rows specified depending on the number of items in the list content.",
"name": "numRows",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "If the ContentNode node specifies sections for a list or grid, specifies a custom bitmap to use as a visual divider between the sections of the list or grid. Only set this field to use a bitmap with a different appearance than the system default. For sections that do not include an icon or a title, the system default or custom bitmap specified as the \\`wrapDividerBitmapUri\\` field value is used for the section dividers. In most cases, you will want to use a 9-patch PNG bitmap with both expandable regions, which is the type of bitmap used as the system default.",
"name": "sectionDividerBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "Specifies the font for section divider labels",
"name": "sectionDividerFont",
"type": "font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "40",
"description": "Specifies the height of the section dividers. The width of the section dividers is determined by the width of the list items as specified by the itemSize field width value.",
"name": "sectionDividerHeight",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Number of pixels to offset the left edge of the section divider relative to the left edge of the list items.",
"name": "sectionDividerLeftOffset",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "117",
"description": "Specifies the minimum width of the section divider bitmap. The section divider label will be ellipsized if necessary in order to ensure that the section divider bitmap meets the minimum width.",
"name": "sectionDividerMinWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "10",
"description": "If the ContentNode node specifies sections for a list or grid, and the section dividers are specified to include an icon and/or a label, specifies the spacing between the icon, label, and section divider bitmap.",
"name": "sectionDividerSpacing",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xddddddff",
"description": "Specifies the text color for section divider labels",
"name": "sectionDividerTextColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "left",
"description": "Specifies the horizontal alignment of the text in the list item area specified by the \\`itemSize\\` field value (the text is always centered vertically in the list item area). The possible options are:\n\n| Option | Effect |\n| --- | --- |\n| left | Text is left-aligned |\n| right | Text is right-aligned |\n| center | Text is center-aligned |",
"name": "textHorizAlign",
"type": "option string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "fixedFocusWrap",
"description": "Specifies the how the focus indicator moves in a list of items in response to the remote direction pad Up and Down key presses. The possible values are:\n\n| Option | Effect |\n| --- | --- |\n| fixedFocusWrap | Causes the focus indicator to float up or down until it reaches the end of the list, at which point the focus indicator will stay fixed on the first or last item in the list, and the items will scroll up or down if there are items that were not visible. |\n| floatingFocus | Causes the list to wrap around when the focus indicator reaches the first or last item in the list, as long as the list contains enough items to fill the list. If the list does not contain enough items to fill the list, the focus indicator will float up and down. |",
"name": "vertFocusAnimationStyle",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file to use as a wrap divider, the visual separator between the last and first list items when the list wraps. In most cases, this should be a 9-patch image that specifies both expandable regions. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "wrapDividerBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the height of the wrap divider, the visual separator between the last and first list items when the list wraps. The bitmap for the wrap divider is scaled to this height. The width of the wrap divider is set to the width of the list items as specified by the \\`itemSize\\` field width value.",
"name": "wrapDividerHeight",
@@ -2107,35 +2107,35 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Controls how the spaces specified in the itemSpacings field are inserted. By default, the field value is set to true. This causes the specified spaces to be inserted after the child is positioned. If the field value is set to false, the specified item space is inserted before the child is positioned",
"name": "addItemSpacingAfterChild",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "left",
"description": "Specifies the alignment point in the horizontal direction. The effect of the value set depends on the whether the layoutDirection field value is set to either horiz or vert\n\n| Value | layoutDirection | Use |\n| --- | --- | --- |\n| left | vert | Aligns the left edges of each child in the column, and sets the LayoutGroup node local x-coordinate origin at the left edge of the children |\n| left | horiz | Sets the LayoutGroup node local x-coordinate origin at the left edge of the first child |\n| center | vert | Aligns the centers of each child in the column, and sets the LayoutGroup node local x-coordinate origin at the center alignment point |\n| center | horiz | Sets the LayoutGroup node local x-coordinate origin at the center of the horizontal row of children |\n| right | vert | Aligns the right edges of each child in the column, and sets the **LayoutGroup** node local x-coordinate origin is at the right edge of the children |\n| right | horiz | Sets the LayoutGroup node local x-coordinate origin at the right edge of the last child |\n| custom | vert | Explicitly set the x translation of each child of the LayoutGroup. If the layoutDirection is \"horiz\", custom will not be a valid setting. Instead, \"left\" will be used to do the child layout. |",
"name": "horizAlignment",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Controls the spacing before or after each child in the layout direction. By default, no space is added between the children",
"name": "itemSpacings",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "vert",
"description": "Controls the layout direction\n\n| Value | Use |\n| --- | --- |\n| horiz | Positions the children in a row from left to right |\n| vert | Positions the children in a column from top to bottom |",
"name": "layoutDirection",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "top",
"description": "Specifies the alignment point in the vertical direction. The effect of the value set depends on the whether the layoutDirection field value is set to either horiz or vert\n\n| Value | layoutDirection | Use |\n| --- | --- | --- |\n| top | horiz | Aligns the top edges of each child in the row, and sets the **LayoutGroup** node local y-coordinate origin at the top edge of the children |\n| top | vert | Sets the LayoutGroup node local y-coordinate origin at the top edge of the first child |\n| center | horiz | Aligns the centers of each child in the row, and sets the LayoutGroup node local y-coordinate origin at the center alignment point |\n| vert | vert | Sets the **LayoutGroup** node local y-coordinate origin at the center of the vertical column of children |\n| bottom | horiz | Aligns the bottom edges of each child in the row, and sets the **LayoutGroup** node local y-coordinate origin at the bottom edge of the children |\n| bottom | vert | Sets the LayoutGroup node local y-coordinate origin at the bottom edge of the last child |\n| custom | horiz | Explicitly set the y translation of each child of the LayoutGroup. If the layoutDirection is \"vert\", custom will not be a valid setting. Instead, \"top\" will be used to do the child layout. |",
"name": "vertAlignment",
@@ -2155,49 +2155,49 @@
},
"fields": [
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "N/A",
"description": "When the createNextPanelOnItemFocus field is true, createNextPanel is set when a new panel needs to be created and added to the PanelSet. The value of the field is the index of the list's content that should be used to create and populate the new panel. The createNextPanelIndex field is guaranteed to be set exactly once whenever the next panel for the focused list item needs to be created.",
"name": "createNextPanelIndex",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "When set to true, the Create Next Panel mechanism is enabled (i.e. the createNextPanelIndex field will be set when a new list item receives the focus). When set to false, the Create Next Panel mechanism is disabled (i.e. the createNextPanelIndex field will not be set when a new list item receives the focus).",
"name": "createNextPanelOnItemFocus",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "Label node",
"description": "The leftLabel field is set to a Label node that is positioned just above the left/top corner of the list. Setting the Label node's text field will cause that text string to be displayed. Setting other fields of the Label node can be used to adjust the Label's text color and other visual attributes.",
"name": "leftLabel",
"type": "Node"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "NULL",
"description": "The list field should be set to either a LabelList or MarkupList node to be displayed in the Panel. See the LabelList and MarkupList notes above about setting up the list's layout.",
"name": "list",
"type": "Node"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "false",
"description": "When the createNextPanelOnItemFocus field is true, the nextPanel field should be set to a Panel node to the next panel to add to the PanelSet in response to the createNextPanelIndex field being set. It must be set immediately in repsonse to the createNextPanelIndex field being set.",
"name": "nextPanel",
"type": "Node"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "Label node",
"description": "The rightLabel field is set to a Label node that is positioned just above the right/top corner of the list. Setting the Label node's text field will cause that text string to be displayed. Setting other fields of the Label node can be used to adjust the Label's text color and other visual attributes. The rightLabel is often used to display a \"1 of N\" message that reflects the index of the list's focused item.",
"name": "rightLabel",
"type": "Node"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "If showSectionLabels is set to true and the data for the list node is divided into sections, the Title attribute of the current section will be displayed as the leftLabel of the list. As the list items scroll, the leftLabel will smoothly transition as each section of the list reaches the focus position.",
"name": "showSectionLabels",
@@ -2217,217 +2217,217 @@
},
"fields": [
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "When set to a valid item index, this causes the list to quickly scroll so that the specified index moves into the focus position.",
"name": "animateToItem",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "When specified, the columnSpacings field specifies the spacing after each column of the grid. This allows the spacing between columns to vary from column to column. The columnSpacings values override the horizontal spacing specified in element 0 of the itemSpacing field. If the columnSpacings array contains fewer elements than the number of columns specified by the numColumns field, element 0 of the itemSpacing field is used as the spacing after the excess columns.",
"name": "columnSpacings",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "When specified, the columnWidths field specifies the widths of the poster for each column of the grid. This allows the width of each column of the grid to vary from column to column. The columnWidths values override the width specified in element 0 of the basePosterSize field. If the columnWidths array contains fewer elements than the number of columns specified by the numColumns field, element 0 of the basePosterSize field is used as the width of the excess columns.",
"name": "columnWidths",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "none",
"description": "Specifies the content for the list. See \\[Data bindings\\](https://developer.roku.com/docs/references/scenegraph/list-and-grid-nodes/markupgrid.mddata-bindings) below for more details. If the data contains section markers, section dividers will be drawn between each section. These section dividers may contain an icon and/or a string.",
"name": "content",
"type": "ContentNode"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies whether or not the focus indicator bitmap is displayed",
"name": "drawFocusFeedback",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Specifies whether the focus indicator bitmap is drawn below or on top of the list items",
"name": "drawFocusFeedbackOnTop",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "When fixedLayout is false, the PosterGrid assigns each item in the data model to sequential cells in the grid (or the section if the data model includes section information). When fixedLayout is false, the data models using the X, Y, W and H attributes to specify which cells of the grid each item should occupy, where X is the column number, Y is the row number, W is the number of columns the item occupies and H is the number of rows the item occupies. Fixed layout should only be set to true for cases where one or more items in the grid should span multiple rows or columns.",
"name": "fixedLayout",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Blend the graphic image specified by \\`focusBitmapUri\\` with the specified color. If set to the default, 0xFFFFFFFF, no color blending will occur. Set this field to show a focus indicator graphic image with a different color than the image specified by \\`focusBitmapUri.\\`",
"name": "focusBitmapBlendColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file used for the focus indicator when the list has focus. In most cases, this should be a 9-patch image that specifies both expandable regions as well as margins. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "focusBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file used for the focus indicator when the list does not have focus. In most cases, this should be a 9-patch image that specifies both expandable regions as well as margins. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "focusFootprintBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Blend the graphic image specified by \\`focusFootprintBitmapUri\\` with the specified color. If set to the default, 0xFFFFFFFF, no color blending will occur. Set this field to show a focus footprint indicator graphic image with a different color than the image specified by \\`focusFootprintBitmapUri\\`.",
"name": "focusFootprintBlendColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file to use to suggest where images would appear for empty grids and empty sections of grids. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "imageWellBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the name of a XML component for the grid items. An instance of this component is created on demand for each visible item of the grid. The XML component must define a specific interface as detailed in \\[MarkupGrid XML component\\](https://developer.roku.com/docs/references/scenegraph/list-and-grid-nodes/markupgrid.mdmarkupgrid-xml-component) below.",
"name": "itemComponentName",
"type": "string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When a list item gains the key focus, set to the index of the focused item.",
"name": "itemFocused",
"type": "integer"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When a list item is selected, itemSelected is set to the index of the selected item.",
"name": "itemSelected",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0,0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0,0]",
"description": "Specifies the width and height of the default size for the grid items.",
"name": "itemSize",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When a list item loses the key focus, set to the index of the unfocused item.",
"name": "itemUnfocused",
"type": "integer"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "When set to a valid item index, this causes the list to immediately update so that the specified index moves into the focus position.",
"name": "jumpToItem",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the number of columns in the grid",
"name": "numColumns",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "12",
"description": "Specifies the number of visible rows displayed. The actual number of rows may be more or less than the number of visible rows specified depending on the number of items in the list content.",
"name": "numRows",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "When specified, the rowHeights field specifies the heights of the poster for each row of the grid. This allows the height of each row of the grid to vary from row to row. The rowHeights values override the height specified in element 1 of the basePosterSize field. If the rowHeights array contains fewer elements than the number of rows needed to display all the items in the grid, element 1 of the basePosterSize field is used as the height of the excess rows.",
"name": "rowHeights",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "When specified, the rowSpacings field specifies the spacing after each row of the grid. This allows the spacing between rows to vary from row to row. The rowSpacings values override the vertical spacing specified in element 1 of the itemSpacing field. If the rowSpacings array contains fewer elements than the number of rows needed to display all the items in the grid, element 1 of the itemSpacing field is used as the spacing after the excess rows.",
"name": "rowSpacings",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "If the ContentNode node specifies sections for a list or grid, specifies a custom bitmap to use as a visual divider between the sections of the list or grid. Only set this field to use a bitmap with a different appearance than the system default. For sections that do not include an icon or a title, the system default or custom bitmap specified as the \\`wrapDividerBitmapUri\\` field value is used for the section dividers. In most cases, you will want to use a 9-patch PNG bitmap with both expandable regions, which is the type of bitmap used as the system default.",
"name": "sectionDividerBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "Specifies the font for section divider labels",
"name": "sectionDividerFont",
"type": "font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "40",
"description": "Specifies the height of the section dividers. The width of the section dividers is determined by the width of the list items as specified by the itemSize field width value.",
"name": "sectionDividerHeight",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Number of pixels to offset the left edge of the section divider relative to the left edge of the list items.",
"name": "sectionDividerLeftOffset",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "117",
"description": "Specifies the minimum width of the section divider bitmap. The section divider label will be ellipsized if necessary in order to ensure that the section divider bitmap meets the minimum width.",
"name": "sectionDividerMinWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "10",
"description": "Specifies the spacing between the items appearing in the section divider (e.g. the spacing between the section divider icon, the section divider label, and the section divider bitmap). Note the section divider does not always include an icon and/or a title.",
"name": "sectionDividerSpacing",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xddddddff",
"description": "Specifies the text color for section divider labels",
"name": "sectionDividerTextColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file to use as a wrap divider, the visual separator between the last and first list items when the list wraps. In most cases, this should be a 9-patch image that specifies both expandable regions. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "wrapDividerBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the height of the wrap divider, the visual separator between the last and first list items when the list wraps. The bitmap for the wrap divider is scaled to this height. The width of the wrap divider is set to the width of the list items as specified by the \\`itemSize\\` field width value.",
"name": "wrapDividerHeight",
@@ -2447,182 +2447,182 @@
},
"fields": [
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "\\*\\*Write-Only\\*\\* When set to a valid item index, this causes the list to quickly scroll so that the specified index moves into the focus position.",
"name": "animateToItem",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "none",
"description": "Specifies the content for the list. See \\[Data bindings\\](https://developer.roku.com/docs/references/scenegraph/list-and-grid-nodes/markuplist.mdData-Bindings) below for more details. If the data contains section markers, section dividers will be drawn between each section. These section dividers may contain an icon and/or a string.",
"name": "content",
"type": "ContentNode"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies whether or not the focus indicator bitmap is displayed",
"name": "drawFocusFeedback",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Specifies whether the focus indicator bitmap is drawn below or on top of the list items",
"name": "drawFocusFeedbackOnTop",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Blend the graphic image specified by \\`focusBitmapUri\\` with the specified color. If set to the default, 0xFFFFFFFF, no color blending will occur. Set this field to show a focus indicator graphic image with a different color than the image specified by \\`focusBitmapUri.\\`",
"name": "focusBitmapBlendColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file used for the focus indicator when the list has focus. In most cases, this should be a 9-patch image that specifies both expandable regions as well as margins. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "focusBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file used for the focus indicator when the list does not have focus. In most cases, this should be a 9-patch image that specifies both expandable regions as well as margins. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "focusFootprintBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Blend the graphic image specified by \\`focusFootprintBitmapUri\\` with the specified color. If set to the default, 0xFFFFFFFF, no color blending will occur. Set this field to show a focus footprint indicator graphic image with a different color than the image specified by \\`focusFootprintBitmapUri\\`.",
"name": "focusFootprintBlendColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ 0.0, 0.0, 0.0, 0.0 \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ 0.0, 0.0, 0.0, 0.0 ]",
"description": "Specifies a clipping region for the list or grid items",
"name": "itemClippingRect",
"type": "rect2d"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the name of a XML component for the list items. An instance of this component is created on demand for each visible item of the list. The XML component must define a specific interface as detailed in \\[MarkupList XML component\\](https://developer.roku.com/docs/references/scenegraph/list-and-grid-nodes/markuplist.mdMarkupList-XML-Component) below.",
"name": "itemComponentName",
"type": "string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "\\*\\*Read-Only\\*\\* When a list item gains the key focus, set to the index of the focused item.",
"name": "itemFocused",
"type": "integer"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "\\*\\*Read-Only\\*\\* When a list item is selected, itemSelected is set to the index of the selected item.",
"name": "itemSelected",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0,0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0,0]",
"description": "Specifies the width and height of each item in the list",
"name": "itemSize",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0,0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0,0]",
"description": "The second value of the vector specifies the vertical spacing between items in the list. The first value of the vector is ignored.",
"name": "itemSpacing",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "\\*\\*Read-Only\\*\\* When a list item loses the key focus, set to the index of the unfocused item.",
"name": "itemUnfocused",
"type": "integer"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "\\*\\*Write-Only\\*\\* When set to a valid item index, this causes the list to immediately update so that the specified index moves into the focus position.",
"name": "jumpToItem",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "12",
"description": "Specifies the number of visible rows displayed. The actual number of rows may be more or less than the number of visible rows specified depending on the number of items in the list content.",
"name": "numRows",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "If the ContentNode node specifies sections for a list or grid, specifies a custom bitmap to use as a visual divider between the sections of the list or grid. Only set this field to use a bitmap with a different appearance than the system default. For sections that do not include an icon or a title, the system default or custom bitmap specified as the \\`wrapDividerBitmapUri\\` field value is used for the section dividers. In most cases, you will want to use a 9-patch PNG bitmap with both expandable regions, which is the type of bitmap used as the system default.",
"name": "sectionDividerBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "Specifies the font for section divider labels",
"name": "sectionDividerFont",
"type": "font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "40",
"description": "Specifies the height of the section dividers. The width of the section dividers is determined by the width of the list items as specified by the itemSize field width value.",
"name": "sectionDividerHeight",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Number of pixels to offset the left edge of the section divider relative to the left edge of the list items.",
"name": "sectionDividerLeftOffset",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "117",
"description": "Specifies the minimum width of the section divider bitmap. The section divider label will be ellipsized if necessary in order to ensure that the section divider bitmap meets the minimum width.",
"name": "sectionDividerMinWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "10",
"description": "If the ContentNode node specifies sections for a list or grid, and the section dividers are specified to include an icon and/or a label, specifies the spacing between the icon, label, and section divider bitmap.",
"name": "sectionDividerSpacing",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xddddddff",
"description": "Specifies the text color for section divider labels",
"name": "sectionDividerTextColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file to use as a wrap divider, the visual separator between the last and first list items when the list wraps. In most cases, this should be a 9-patch image that specifies both expandable regions. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "wrapDividerBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the height of the wrap divider, the visual separator between the last and first list items when the list wraps. The bitmap for the wrap divider is scaled to this height. The width of the wrap divider is set to the width of the list items as specified by the \\`itemSize\\` field width value.",
"name": "wrapDividerHeight",
@@ -2642,35 +2642,35 @@
},
"fields": [
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "Contains the actual height of the mask bitmap. The mask bitmap can be stretched vertically by setting the y-dimension of the maskSize field value to a different value than the maskBitmapHeight field value",
"name": "maskBitmapHeight",
"type": "float"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "Contains the actual width of the mask bitmap. The mask bitmap can be stretched horizontally by setting the x-dimension of the maskSize field value to a different value than the maskBitmapWidth field value",
"name": "maskBitmapWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0, 0 \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0, 0 ]",
"description": "Specifies an offset of the mask coordinate system relative to the group coordinate system. For example, if the maskOffset field value is set to \\\\\\[ 100, 0 \\\\\\], then mask pixel \\\\\\[0, 0\\\\\\] is used as the alpha value for pixels rendered for the MaskGroup node coordinate \\\\\\[100, 0\\\\\\]",
"name": "maskOffset",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ 0, 0 \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ 0, 0 ]",
"description": "Specifies a scaling factor of the alpha mask coordinate system relative to the group coordinate system. If either element of the maskSize field value does not match the corresponding size of the mask bitmap, the mask bitmap is scaled to the specified size in the dimension. Setting either element of the maskSize field vector to 0 causes the mask bitmap to be used at its actual size in that dimension",
"name": "maskSize",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the bitmap to use for the group alpha mask. The alpha value of each pixel rendered in the group is multiplied by the value of a pixel in the alpha mask. The mapping from pixel coordinates in the group to mask pixel coordinates is controlled by the maskSize and maskOffset field values. Those fields define a coordinate system for the mask bitmap relative to the group coordinate system. This mask coordinate system is used to map mask pixels to their corresponding pixels in the MaskGroup node",
"name": "maskUri",
@@ -2690,56 +2690,56 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the URI of an image file to be loaded to replace the keyboard focus indicator. This should be a 9-patch image so that it can be stretched to the appropriate size for the double width keys",
"name": "focusBitmapUri",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xffffffff",
"description": "Specifies the color of the key labels and icons when the Keyboard node has the focus",
"name": "focusedKeyColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the URI of an image file to be loaded to replace the default keyboard image drawn underneath the key label and icons. This image must be carefully designed so that the key positions match the default image. Template images for SD, HD and FHD resolutions are provided below.",
"name": "keyboardBitmapUri",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xffffffff",
"description": "Specifies the color of the key labels and icons when the Keyboard node does not have the focus",
"name": "keyColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies whether the 26 letter keys are displayed as lowercase or uppercase",
"name": "lowerCase",
"type": "boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies whether or not the Keyboard node internal TextEditBox node is displayed. In most cases, it is desirable to display the TextEditBox node so that the user can see the string as it is entered. In some cases though, you might want to show only the keyboard part of the Keyboard node. In those cases, the text field of the node will still contain the string entered by the user, so it can displayed in some different manner",
"name": "showTextEditBox",
"type": "boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Contains the string of characters that has been entered",
"name": "text",
"type": "string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "system default",
"description": "This provides access to the Keyboard node internal TextEditBox node so that its appearance can be modified. You should not set this field, but you can set the fields of the TextEditBox node (such as, myKeyboard.textEditBox.textColor = \"0xFF0000FF\")",
"name": "textEditBox",
@@ -2760,28 +2760,28 @@
],
"fields": [
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "{ Index1: 0, Index2: 0, Operation: none }",
"description": "Operations affecting the set of children of a Node are recorded in this field if, and only if, this field has been observed. The field associative array indicates the operation and two indexes, index1 and index 2, involved in the change. The operation is denoted by these value strings:\n\n| Value | Meaning |\n| --- | --- |\n| none | No operation on the children nodes since the change field was observed, indexes are irrelevant |\n| insert | A child node was inserted at _index1_ |\n| add | A child node was added to the end of the children node tree (at _index 1_) |\n| remove | A child node was removed from position _index1_, and if _index2_\\>_index1_, all the children nodes between _index1_ and _index2_ inclusive were removed |\n| set | The child node at position _index1_ was replaced with a new child node |\n| clear | All the children nodes were removed |\n| move | The child node at position _index1_ was moved to the new position _index2_ |\n| setall | All the children nodes were replaced |\n| modify | A pre-defined content meta-data field of a **ContentNode** node child at _index1_ was changed (_only_ set for **ContentNode** node children when a pre-defined content meta-data field changes) |",
"name": "change",
"type": "associative array"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Provides a hint as to whether or not this node can take the key focus.",
"name": "focusable",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "N/A",
"description": "When a node or one of its children gains or loses the keyboard focus, the focusedChild field will be set and call its observer functions. In the observer function, typically, you use \\[ifSGNodeFocus\\](https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodefocus.md\"ifSGNodeFocus\") functions to query whether this node or some other node has the key focus or is in the key focus chain. Accessing the value of the field will result in script errors.",
"name": "focusedChild",
"type": "N/A"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Adds a dictionary entry that allows the node to be retrieved with \\[ifSGNodeDict\\](https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodedict.md\"ifSGNodeDict\") findNode() function.",
"name": "id",
@@ -2866,35 +2866,35 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "605",
"description": "Specifies the height of the PanelSet node. In most cases, this is set to the the display height minus the overhang height.",
"name": "height",
"type": "float"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "false",
"description": "Set to true when the PanelSet node panels are sliding right, \\_back\\_ towards the original home position, as a result of a \\*\\*Left\\*\\* or \\*\\*Back\\*\\* key press.",
"name": "isGoingBack",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "Contains the current number of Panel nodes that are children of the PanelSet node.",
"name": "numPanels",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "500",
"description": "Milliseconds of the slide transition. The default is 1/2 second.",
"name": "slideDuration",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "1280",
"description": "Specifies the width of the PanelSet node. In most cases, this is set to the display width (such as 1280 for HD).",
"name": "width",
@@ -2934,28 +2934,28 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Can be used to explicitly set the internal PinPad node PIN value, as well as to access the PIN value entered by the user",
"name": "pin",
"type": "string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "system default",
"description": "Provides access to the PinDialog node internal PinPad node. The field is read-only, but the fields of the PinPad node it refers to can be read and written, allowing you to fully customize the PinPad node appearance and behavior",
"name": "pinPad",
"type": "PinPad node"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies whether or not PinPad will be focused when PinDialog is created",
"name": "pinPadFocused",
"type": "boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "When set, the color of the privacy hint shown at the bottom of the dialog",
"name": "privacyHintColor",
@@ -2975,84 +2975,84 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the URI of an image file to be loaded to replace the keyboard focus indicator. This should be a 9-patch image so that it can be stretched to the appropriate size for the double width keys",
"name": "focusBitmapUri",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xffffffff",
"description": "Specifies the color of the key labels and icons when the keyboard has the focus",
"name": "focusedKeyColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies whether or not focused key is visible when PinPad is created",
"name": "focusVisible",
"type": "boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies index of the key label that will be in focus when PinPad is created",
"name": "itemFocused",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the URI of an image file to be loaded to replace the default keyboard image drawn underneath the numeric keys and icons This image must be carefully designed so that the key positions match the default image. Template images for SD, HD and FHD resolutions are provided below.",
"name": "keyboardBitmapUri",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xffffffff",
"description": "Specifies the color of the key labels and icons when the keyboard does not have the focus",
"name": "keyColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Contains the string of numbers that have been entered",
"name": "pin",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifed the URI of an image file to be loaded to replace the default box drawn underneath each entered digit in the pin display. This should be a 9-patch image so that it can be stretched to appropriate size depending on the pinLength field",
"name": "pinDisplayBitmapUri",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xffffffff",
"description": "Specifies the color of the numbers displayed in the pin display boxes",
"name": "pinDisplayTextColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "4",
"description": "Contains the maximum number of digits that can be entered",
"name": "pinLength",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "When set to true, each digit entered is displayed briefly, then replaced with an asterisk. When false, the entered digits always remain visible",
"name": "secureMode",
"type": "boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies whether or not the pin display that shows the entered digits is visible. In most cases, it is desirable to display the entered digits so that the user can see the string as it is entered. You may want to only show the keyboard part of the PinPad node. In those cases, the pin field of the node will still contain the string entered by the user, so that it can displayed in some different manner.",
"name": "showPinDisplay",
@@ -3072,119 +3072,119 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "If muteAudioGuide is false, this string will be spoken when the poster is focused",
"name": "audioGuideText",
"type": "string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0.0",
"description": "After the graphical image file is loaded, contains the height of the graphical image in pixels",
"name": "bitmapHeight",
"type": "float"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "invalid",
"description": "This field is set to an associative array with four elements \"left\", \"right\", \"top\" and \"bottom\". If the Poster's bitmap is a 9-patch image, the associative array is set to margin info encoded along the right and bottom edges of the image. If the Poster's bitmap is not a 9-patch image, all values in the associative array are set to 0. The bitmapMargins field is set whenever the Poster's loadStatus field changes (e.g. when the bitmap has been loaded).",
"name": "bitmapMargins",
"type": "associative array"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0.0",
"description": "After the graphical image file is loaded, contains the width of the graphical image in pixels",
"name": "bitmapWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Can be used to tint the image by multiplying the color of each pixel by the specified value. If this value is not set to a value other than the default value, no color blending will be performed",
"name": "blendColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "1.0",
"description": "Used to control the rendering opacity of the graphical image that indicates a bitmap failed to load. This value multiplies the Poster node opacity",
"name": "failedBitmapOpacity",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies a bitmap file to display when the poster image failed to load",
"name": "failedBitmapUri",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the height of the image in local coordinates. If set to 0.0, the height of the bitmap from the image file is used. If set to a value greater than 0.0, the bitmap is scaled to that height",
"name": "height",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "noScale",
"description": "Provides automatic scaling of graphical images after loading. If you intend to load very large graphical images, such as larger than the user interface resolution, you must set one of the scaling options other than noScale, otherwise the image may fail to load. The following are the possible field values:\n\n| Option | Effect |\n| --- | --- |\n| limitSize | Scale the image while loading it into texture memory so that the maximum width and height in either dimension does not exceed the specified loadWidth or loadHeight values. If the image is smaller in both dimensions than the specified values, the image is loaded at its regular size. Aspect ratio is preserved. |\n| noScale | The bitmap will be loaded at the image's original resolution. If the Poster's width and height differ from the bitmap's resolution, it will be scaled to fill the Poster's dimensions. Aspect ratio is not preserved. |\n| scaleToFit | Scale the image to fit into the target screen element area, preserving the aspect ratio but \"letterboxing\" or \"pillarboxing\" the image (background-color bars at the top/bottom or left/right of the image). |\n| scaleToFill | Stretch the image dimensions to fill the target screen element area, distorting the image if the target screen element area has a different aspect ratio than the image. |\n| scaleToZoom | Scale the image to fill the target screen element area, preserving the aspect ratio but not \"letterboxing\" or \"pillarboxing\" the image, with some of the image cropped out. |",
"name": "loadDisplayMode",
"type": "option string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Scale the graphical image to the specified height when loaded, preserving aspect ratio. If set to the default, no load-time scaling occurs. If the height field is not set, the loadHeight field is used as the default height of the displayed image",
"name": "loadHeight",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "1.0",
"description": "Used to control the rendering opacity of the graphical image that indicates a bitmap is loading. This value multiplies the Poster node opacity",
"name": "loadingBitmapOpacity",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies a bitmap file to display while the poster image is loading. To execute a seamless cross-fade transition between posters, set the \\*\\*loadingBitmapUri\\*\\* of the next poster to be shown to the uri of the currently displayed poster.",
"name": "loadingBitmapUri",
"type": "string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "none",
"description": "Can be used to track the progress of loading the graphical image file. A typical use of this field is to set an observer so that when the field value changes to ready, an action can be triggered. The possible values are:\n\n| Value | Meaning |\n| --- | --- |\n| none | No loading or decoding of the graphical image file is taking place |\n| loading | Graphical image file is being fetched and decoded |\n| ready | Graphical image file has been fetched and decoded and is ready to be drawn |\n| failed | Graphical image file could not be loaded for some reason, such as the uri field value is set to a non-existent file location |",
"name": "loadStatus",
"type": "value string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Controls whether the image is loaded synchronously in the render thread, and appears immediately, or loaded asynchronously in a background thread, and may not appear immediately. If set to true, and the uri field specifies a local file (in the pkg:/images directory), the image is loaded synchronously, and appears immediately. If set to false, or if the uri field specifies a file from a remote server (a URL starting with http: or https:), the image is loaded asynchronously in a background thread, and may not appear immediately. Be careful when setting this field to true, as it might cause brief glitches in the rendering while the image is being fetched and loaded",
"name": "loadSync",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Scale the graphical image to the specified width when loaded, preserving aspect ratio. If set to the default, no load-time scaling occurs. If the width field is not set, the loadWidth field is used as the default width of the displayed image",
"name": "loadWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the URI of the image file. Images included as part of the application package can be referenced using the pkg:/images prefix. Images included as part of the application package that are to be localized can be referenced using the pkg:/locale/images/ prefix (see \\[Localizing Graphical Images in the Application Package\\](/docs/developer-program/core-concepts/localization.md#localizing-graphical-images-in-the-application-package \"Localizing Graphical Images in the Application Package\"))",
"name": "uri",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the width of the image in local coordinates. If set to 0.0, the width of the bitmap from the image file is used. If set to a value greater than 0.0, the bitmap is scaled to that width",
"name": "width",
@@ -3204,343 +3204,343 @@
},
"fields": [
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "When set to a valid item index, this causes the list to quickly scroll so that the specified index moves into the focus position.",
"name": "animateToItem",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0,0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0,0]",
"description": "Specifies the width and height of the posters in the grid.",
"name": "basePosterSize",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xddddddff",
"description": "Specifies the color for the grid item first caption",
"name": "caption1Color",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "Specifies the font for the grid item first caption",
"name": "caption1Font",
"type": "font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the number of lines to render for the grid item first caption",
"name": "caption1NumLines",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xddddddff",
"description": "Specifies the color for the grid item second caption",
"name": "caption2Color",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "Specifies the font for the grid item second caption",
"name": "caption2Font",
"type": "font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the number of lines to render for the grid item second caption",
"name": "caption2NumLines",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies a bitmap file to render as a background for the grid item captions",
"name": "captionBackgroundBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "center",
"description": "Specifies the horizontal positioning of the grid item captions. Possible values are:\n\n| Value | Meaning |\n| --- | --- |\n| left | Left-justify the caption relative to the grid item poster |\n| center | Center-justify the caption relative to the grid item poster |\n| right | Right-justify the caption relative to the grid item poster |\n\nSet enableCaptionScrolling to false to use captionHorizAlignment",
"name": "captionHorizAlignment",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the spacing in pixels between lines of the caption",
"name": "captionLineSpacing",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "below",
"description": "Specifies the vertical positioning of the grid item captions. Possible values are:\n\n| Value | Meaning |\n| --- | --- |\n| above | Position the caption so the bottom of the caption lies just above the grid item poster |\n| top | Align the top of the caption with the top edge of the grid item poster |\n| center | Align the vertical center of the caption with the vertical center of the of the grid item poster |\n| bottom | Align the bottom of the caption with the bottom edge of the grid item poster |\n| below | Position the caption so the top of the caption lies just below the grid item poster |",
"name": "captionVertAlignment",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "When specified, the columnSpacings field specifies the spacing after each column of the grid. This allows the spacing between columns to vary from column to column. The columnSpacings values override the horizontal spacing specified in element 0 of the itemSpacing field. If the columnSpacings array contains fewer elements than the number of columns specified by the numColumns field, element 0 of the itemSpacing field is used as the spacing after the excess columns.",
"name": "columnSpacings",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "When specified, the columnWidths field specifies the widths of the poster for each column of the grid. This allows the width of each column of the grid to vary from column to column. The columnWidths values override the width specified in element 0 of the basePosterSize field. If the columnWidths array contains fewer elements than the number of columns specified by the numColumns field, element 0 of the basePosterSize field is used as the width of the excess columns.",
"name": "columnWidths",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "none",
"description": "Specifies the content for the list. See \\[Data bindings\\](https://developer.roku.com/docs/references/scenegraph/list-and-grid-nodes/markuplist.mddata-bindings) below for more details. If the data contains section markers, section dividers will be drawn between each section. These section dividers may contain an icon and/or a string.",
"name": "content",
"type": "ContentNode"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies whether or not the focus indicator bitmap is displayed",
"name": "drawFocusFeedback",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Specifies whether the focus indicator bitmap is drawn below or on top of the list items",
"name": "drawFocusFeedbackOnTop",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies whether or not to scroll single line captions when it is necessary to ellipsize the caption because it is wider the column containing the grid item",
"name": "enableCaptionScrolling",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "1.0",
"description": "Specifies an opacity value used to render the failed bitmap",
"name": "failedBitmapOpacity",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies a bitmap file to display when a grid item poster fails to load",
"name": "failedBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "When fixedLayout is false, the PosterGrid assigns each item in the data model to sequential cells in the grid (or the section if the data model includes section information). When fixedLayout is false, the data models using the X, Y, W and H attributes to specify which cells of the grid each item should occupy, where X is the column number, Y is the row number, W is the number of columns the item occupies and H is the number of rows the item occupies. Fixed layout should only be set to true for cases where one or more items in the grid should span multiple rows or columns.",
"name": "fixedLayout",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Blend the graphic image specified by \\`focusBitmapUri\\` with the specified color. If set to the default, 0xFFFFFFFF, no color blending will occur. Set this field to show a focus indicator graphic image with a different color than the image specified by \\`focusBitmapUri.\\`",
"name": "focusBitmapBlendColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file used for the focus indicator when the list has focus. In most cases, this should be a 9-patch image that specifies both expandable regions as well as margins. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "focusBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file used for the focus indicator when the list does not have focus. In most cases, this should be a 9-patch image that specifies both expandable regions as well as margins. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "focusFootprintBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Blend the graphic image specified by \\`focusFootprintBitmapUri\\` with the specified color. If set to the default, 0xFFFFFFFF, no color blending will occur. Set this field to show a focus footprint indicator graphic image with a different color than the image specified by \\`focusFootprintBitmapUri\\`.",
"name": "focusFootprintBlendColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file to use to suggest where images would appear for empty grids and empty sections of grids. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "imageWellBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When a list item gains the key focus, set to the index of the focused item.",
"name": "itemFocused",
"type": "integer"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When a list item is selected, itemSelected is set to the index of the selected item.",
"name": "itemSelected",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0,0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0,0]",
"description": "The second value of the vector specifies the vertical spacing between items in the list. The first value of the vector is ignored.",
"name": "itemSpacing",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When a list item loses the key focus, set to the index of the unfocused item.",
"name": "itemUnfocused",
"type": "integer"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "When set to a valid item index, this causes the list to immediately update so that the specified index moves into the focus position.",
"name": "jumpToItem",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "1.0",
"description": "Specifies an opacity value used to render the loading bitmap",
"name": "loadingBitmapOpacity",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies a bitmap file to display while a grid item's poster is loading. To execute a seamless cross-fade transition between posters, set the \\*\\*loadingBitmapUri\\*\\* of the next poster to be shown to the uri of the currently displayed poster.",
"name": "loadingBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the number of columns in the grid",
"name": "numColumns",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "12",
"description": "Specifies the number of visible rows displayed. The actual number of rows may be more or less than the number of visible rows specified depending on the number of items in the list content.",
"name": "numRows",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "noScale",
"description": "Provides automatic scaling of posters, if \\`useAtlas\\` is set to false. If you intend to load very large graphical images, such as larger than the user interface resolution, you must set one of the scaling options other than \\`noScale\\`, otherwise the image may fail to load. The following are the possible field values:\n\n| Option | Effect |\n| --- | --- |\n| noScale | No scaling |\n| scaleToFit | Scale the image to fit into the target screen element area, preserving the aspect ratio but \"letterboxing\" or \"pillarboxing\" the image (background-color bars at the top/bottom or left/right of the image) |\n| scaleToFill | Stretch the image width and height dimensions to fill the target screen element area, distorting the image if the target screen element area has a different aspect ratio than the image |\n| scaleToZoom | Scale the image to fill the target screen element area, preserving the aspect ratio but not \"letterboxing\" or \"pillarboxing\" the image, with some of the image cropped out |",
"name": "posterDisplayMode",
"type": "option string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "When specified, the rowHeights field specifies the heights of the poster for each row of the grid. This allows the height of each row of the grid to vary from row to row. The rowHeights values override the height specified in element 1 of the basePosterSize field. If the rowHeights array contains fewer elements than the number of rows needed to display all the items in the grid, element 1 of the basePosterSize field is used as the height of the excess rows.",
"name": "rowHeights",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "When specified, the rowSpacings field specifies the spacing after each row of the grid. This allows the spacing between rows to vary from row to row. The rowSpacings values override the vertical spacing specified in element 1 of the itemSpacing field. If the rowSpacings array contains fewer elements than the number of rows needed to display all the items in the grid, element 1 of the itemSpacing field is used as the spacing after the excess rows.",
"name": "rowSpacings",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "If the ContentNode node specifies sections for a list or grid, specifies a custom bitmap to use as a visual divider between the sections of the list or grid. Only set this field to use a bitmap with a different appearance than the system default. For sections that do not include an icon or a title, the system default or custom bitmap specified as the \\`wrapDividerBitmapUri\\` field value is used for the section dividers. In most cases, you will want to use a 9-patch PNG bitmap with both expandable regions, which is the type of bitmap used as the system default.",
"name": "sectionDividerBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "Specifies the font for section divider labels",
"name": "sectionDividerFont",
"type": "font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "40",
"description": "Specifies the height of the section dividers. The width of the section dividers is determined by the width of the list items as specified by the itemSize field width value.",
"name": "sectionDividerHeight",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Number of pixels to offset the left edge of the section divider relative to the left edge of the list items.",
"name": "sectionDividerLeftOffset",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "117",
"description": "Specifies the minimum width of the section divider bitmap. The section divider label will be ellipsized if necessary in order to ensure that the section divider bitmap meets the minimum width.",
"name": "sectionDividerMinWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "10",
"description": "Specifies the spacing between the items appearing in the section divider (e.g. the spacing between the section divider icon, the section divider label, and the section divider bitmap). Note the section divider does not always include an icon and/or a title.",
"name": "sectionDividerSpacing",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xddddddff",
"description": "Specifies the text color for section divider labels",
"name": "sectionDividerTextColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "If a caption background is specified, this field specifies whether or not to display the caption background when the caption text is empty",
"name": "showBackgroundForEmptyCaptions",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Enables a performance optimization when most of the poster items displayed in the grid have the same size. The field value toggles the use of a texture atlas that stores the posters in the grid. The default is true, since in many cases, most of the posters in the grid have the same size as determined by the \\`basePosterSize\\` field value. In this case, using the texture atlas can provide a rendering performance benefit. For grids that have more complicated layouts, that include several posters that have sizes that differ from the value of \\`basePosterSize\\`, or for grids where there are only a few large posters (about five to eight, or posters that are about a quarter of the screen height or width) displayed at the same time, it is best for this field to be set to \\`false\\`.",
"name": "useAtlas",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the bitmap file to use as a visual separator between the last and first list items when the list wraps. In most case, this should be a 9-patch image that specifies both expandable regions. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "wrapDividerBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the height of the wrap divider, the visual separator between the last and first list items when the list wraps. The bitmap for the wrap divider is scaled to this height. The width of the wrap divider is set to the width of the list items as specified by the \\`itemSize\\` field width value.",
"name": "wrapDividerHeight",
@@ -3560,7 +3560,7 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "Provides access to the BusySpinner node used by the ProgressDialog node so that the spinner icon and rotation direction can be customized",
"name": "busySpinner",
@@ -3580,28 +3580,28 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the check mark icon to use for the currently selected radio button list item when that list item does not have the key focus. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "checkedIconUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\-1",
+ "accessPermission": "READ_WRITE",
+ "default": "-1",
"description": "Specifies the index of the currently selected item in the list. The initial default value of -1 indicates that no radio button is currently selected. Setting the field changes the currently selected radio button list item to match the specified index.",
"name": "checkedItem",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Controls whether or not pressing the remote control OK key causes the \\`checkedItem\\` field value to be automatically updated to the index of the currently focused list item. By default, the field value is set to true, but there are use cases where other behavior may be desired. In those cases, it is up to the developer to manage the currently selected radio button by setting the checkedItem field value to the desired index.",
"name": "checkOnSelect",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the check mark icon to use for the currently selected radio button list item when that list item has the key focus. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "focusedCheckedIconUri",
@@ -3621,28 +3621,28 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies if the rectangle should be alpha blended with the nodes that are behind it",
"name": "blendingEnabled",
"type": "boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Specifies the color of the rectangle",
"name": "color",
"type": "color (string containing hex value e.g. RGBA)"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the height of rectangle in local coordinates",
"name": "height",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the width of the rectangle in local coordinates",
"name": "width",
@@ -3662,315 +3662,315 @@
},
"fields": [
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "When set to a valid item index, causes the list to quickly scroll so that the specified row moves into the focus position.",
"name": "animateToItem",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "none",
"description": "Specifies the content for the list. The content should be a single ContentNode that has one child ContentNode for each row. These child ContentNodes for each row should themselves contains child ContentNodes for each item in the row. See \\[Data Bindings\\](https://developer.roku.com/docs/references/scenegraph/list-and-grid-nodes/rowlist.mddata-bindings) below for more details.",
"name": "content",
"type": "ContentNode"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "",
"description": "This field provides access to the current opacity of the focus feedback indicator. It can be used to have other items on the screen fade in/out when the focus feedback indicator fades in/out. Note: This field is defined on \\[ArrayGrid\\](https://developer.roku.com/docs/references/scenegraph/abstract-nodes/arraygrid.md and thus is inherited by all of the following components: LabelList, MarkupList, PosterGrid, MarkupGrid, RowList, CheckList, and RadioButtonList.",
"name": "currFocusFeedbackOpacity",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Specifies whether or not the focus indicator bitmap is displayed.",
"name": "drawFocusFeedback",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Specifies whether the focus indicator bitmap is drawn below or on top of the list items.",
"name": "drawFocusFeedbackOnTop",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "When set to true, the focus feedback indicator will quickly fade out when scrolling multiple items and fade back in when the scrolling ends. The focus feedback indicator will also after in and out when using the FFW/Rewind keys to scroll a page at a time. Note: This field is defined on \\[ArrayGrid\\](https://developer.roku.com/docs/references/scenegraph/abstract-nodes/arraygrid.md and thus is inherited by all of the following components: LabelList, MarkupList, PosterGrid, MarkupGrid, RowList, CheckList, and RadioButtonList.",
"name": "fadeFocusFeedbackWhenAutoScrolling",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "1.0",
"description": "Specifies an opacity value used to render the failed bitmap.",
"name": "failedBitmapOpacity",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies a bitmap file to display when a list item poster fails to load.",
"name": "failedBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Blend the graphic image specified by \\`focusBitmapUri\\` with the specified color. If set to the default, 0xFFFFFFFF, no color blending will occur. Set this field to show a focus indicator graphic image with a different color than the image specified by \\`focusBitmapUri\\`.",
"name": "focusBitmapBlendColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file used for the focus indicator when the list has focus. In most cases, this should be a 9-patch image that specifies both expandable regions as well as margins. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "focusBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file used for the focus indicator when the list does not have focus. In most cases, this should be a 9-patch image that specifies both expandable regions as well as margins. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "focusFootprintBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFFFF",
"description": "Blend the graphic image specified by \\`focusFootprintBitmapUri\\` with the specified color. If set to the default, 0xFFFFFFFF, no color blending will occur. Set this field to show a focus footprint indicator graphic image with a different color than the image specified by \\`focusFootprintBitmapUri\\`.",
"name": "focusFootprintBlendColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies the x-dimension offset of the first fully visible item in each row relative to the left edge of the list. In most cases, the first fully visible item in each row will be positioned at the left edge of the list, so this field does not need to be specified. If the array contains fewer elements than the number of rows in the data model, the last value in the array is used as the x-dimension offset for the extra rows. If the array contains no values, the default x-dimension offset of 0.0 is used.",
"name": "focusXOffset",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file to use to suggest where images would appear for empty lists.",
"name": "imageWellBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "For each row, a value of true indicates that a \"+\" character should be appended to the \"total\\\\\\_number\\\\\\_of\\\\\\_items\" label in the UI (which should be the case when there are unfetched pages beyond what is currently accessible/visible, e.g., \"Item 4 of 30+\").",
"name": "indefiniteRowItemCount",
"type": "array of Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the name of an XML component for the items in each row. An instance of this component is created on demand for each visible item of each row. The XML component must define a specific interface as detailed in \\[RowList XML Component\\](https://developer.roku.com/docs/references/scenegraph/list-and-grid-nodes/rowlist.mdrowlist-xml-component) below.",
"name": "itemComponentName",
"type": "string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When a row gains the key focus, set to the index of the focused row.",
"name": "itemFocused",
"type": "integer"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When an item is selected, set to the index of the selected row.",
"name": "itemSelected",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0,0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0,0]",
"description": "Specifies the width and height of rows in the list. Note that this the width of the entire row, not the width of the posters in the row.",
"name": "itemSize",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0,0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0,0]",
"description": "Specifies the spacing between rows in the list. The y-dimension of the vector specifies the vertical spacing between rows, and the x-dimension is ignored.",
"name": "itemSpacing",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When a row loses the key focus, set to the index of the unfocused row.",
"name": "itemUnfocused",
"type": "integer"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "When set to a valid item index, causes the list to immediately update so that the specified row moves into the focus position.",
"name": "jumpToItem",
"type": "integer"
},
{
- "accessPermission": "WRITE\\_ONLY",
- "default": "\\[ \\]",
+ "accessPermission": "WRITE_ONLY",
+ "default": "[ ]",
"description": "When set to a valid \\\\\\[ row, col \\\\\\] index pair, causes the list to immediately update so that the specified row, col item moves into the focus position.",
"name": "jumpToRowItem",
"type": "array of integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "1.0",
"description": "Specifies an opacity value used to render the loading bitmap.",
"name": "loadingBitmapOpacity",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies a bitmap file to display while a list item poster is loading. To execute a seamless cross-fade transition between posters, set the \\*\\*loadingBitmapUri\\*\\* of the next poster to be shown to the uri of the currently displayed poster.",
"name": "loadingBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the number of visible rows in the list. Note that the actual number of rows may be more or less than the number of visible rows depending on the number of items in the list content.",
"name": "numRows",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Field provides greater control over the UX. When set, this value specifies the location of the right edge of the row counter relative to right edge of the RowList's clipping rectangle. If not set, the right edge of the row counter is positioned to equal the left offset of the row title.",
"name": "rowCounterRightOffset",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "floatingFocus",
"description": "Specifies the how the focus indicator moves in a row of items in response to the remote direction pad Left and Right key presses. The possible values are:\n\n| Option | Effect |\n| --- | --- |\n| floatingFocus | Causes the focus indicator to float left or right until it reaches the end of the row, at which point the focus indicator will stay fixed on the first or last item in the row, and the items will scroll left or right if there were items that were not visible. |\n| fixedFocusWrap | Causes the row to wrap around when the focus indicator reaches the first or last item in the row, as long as the row contains enough items to fill the row. If the row does not contain enough items to fill the row, the focus indicator will float left and right. |\n| fixedFocus | Causes the focus to stay fixed on the first item in each row. As the user scrolls, the previous selected item goes off the screen. Scrolling continues until the last item is reached with no wrapping. |",
"name": "rowFocusAnimationStyle",
"type": "option string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies the heights of each row of the list. This allows the height of each row of the list to vary from row to row. The values override the height specified in the y-dimension value of the \\`itemSize\\` field. If the array contains fewer elements than the number of rows in the data model, the y-dimension value of the \\`itemSize\\` field is used as the height of the extra rows.",
"name": "rowHeights",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_ONLY",
- "default": "\\[ \\]",
+ "accessPermission": "READ_ONLY",
+ "default": "[ ]",
"description": "When an item gains the key focus, set to a 2-element array, where element 0 contains the index of the focused row, and element 1 contains the index of the focused item in that row.",
"name": "rowItemFocused",
"type": "array of integer"
},
{
- "accessPermission": "READ\\_ONLY",
- "default": "\\[ \\]",
+ "accessPermission": "READ_ONLY",
+ "default": "[ ]",
"description": "When an item is selected, set to a 2-element array, where element 0 contains the index of the row containing the selected item, and element 1 contains the index of the selected item in that row.",
"name": "rowItemSelected",
"type": "array of integer"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies the width and height of the items in each row. The array of values must include at least one element. If the array contains fewer elements than the number of rows in the data model, the last value in the array is used as the size for the extra rows.",
"name": "rowItemSize",
"type": "array of vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies the spacing between items in each row. The x-dimension of each array value specifies the horizontal spacing between list items in the corresponding row. If the array contains fewer elements than the number of rows in the data model, the last value in the array is used as the spacing for the extra rows. If the array contains no values, no space will be included between list items in all rows.",
"name": "rowItemSpacing",
"type": "array of vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xffffffff",
"description": "Specifies the color of the row and \"\\`item\\_number of total\\_number\\_of\\_items\\`\" labels.",
"name": "rowLabelColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "Specifies the font for the row and \"\\`item\\_number of total\\_number\\_of\\_items\\`\" labels.",
"name": "rowLabelFont",
"type": "font"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0,0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0,0]",
"description": "Specifies the offset of the row label for each row. The x-dimension specifies the horizontal offset of the label from the left edge of the row. The y-dimension component specifies the vertical spacing between the label and the list items in the row. If the array contains fewer elements than the number of rows in the data model, the last value in the array is used as the offset for the labels of the extra rows. If the array specified contains no values, a default offset value of \\\\\\[0,0\\\\\\] is used.",
"name": "rowLabelOffset",
"type": "array of vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies the spacing after each row of the list. This allows the spacing between rows to vary from row to row. The values override the vertical spacing specified in y-dimension value of the \\`itemSpacing\\` field. If the array contains fewer elements than the number of rows in the data model, the y-dimension value of the \\`itemSpacing\\` field is used as the spacing after the extra rows.",
"name": "rowSpacings",
"type": "array of floats"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the name of an XML component to render titles in place of the row label. This component must extend from \\[Group\\](https://developer.roku.com/docs/references/scenegraph/layout-group-nodes/group.md. If this component defines a \"content\" field, it will be set to the row's content. If this component defines a \"rowCounterVertAlign\" field (possible values are \"top\", \"center\", and \"bottom\"), the row counter's vertical alignment is respective of the row title component.",
"name": "rowTitleComponentName",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies whether the \"item\\\\\\_number of total\\\\\\_number\\\\\\_of\\\\\\_items\" label on the right edge of each row is displayed. Note that the \"item\\\\\\_number of total\\\\\\_number\\\\\\_of\\\\\\_items\" label is only displayed for the focused row even if the \\`showRowCounter\\` field value for that row is set to true. If the array contains fewer elements than the number of rows in the data model, the last value in array is used to control the display of the \"item\\\\\\_number of total\\\\\\_number\\\\\\_of\\\\\\_items\" label for the extra rows. If the array contains no values, no \"item\\\\\\_number of total\\\\\\_number\\\\\\_of\\\\\\_items\" labels are displayed.",
"name": "showRowCounter",
"type": "array of Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "Field provides greater control over the UX. When set to true, the row counter is shown for all rows. When set to false, the row counter is not shown for rows where all items fit onscreen.",
"name": "showRowCounterForShortRows",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies whether the row label on the left edge of each row is displayed. If the array contains fewer elements than the number of rows in the data model, the last value in array is used to control the display of the row label for the extra rows. If the array contains no values, no row labels are displayed.",
"name": "showRowLabel",
"type": "array of Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "This field is only supported when \\`rowFocusAnimationStyle = \"fixedFocusWrap\"\\` By default, all items in a row of the RowList node have the same width and height. By setting \\`variableWidthItems\\` to true for a row, the items in the row will continue to have the same height, but the width will be taken from the \\`\\[SD/HD/FHD\\]ItemWidth\\` field of the ContentNode associated with each item. See \\[Data Bindings\\](https://developer.roku.com/docs/references/scenegraph/list-and-grid-nodes/rowlist.mddata-bindings) below for more details. \\`variableWidthItems\\` is an array with one element per row in the RowList. If there are fewer elements than rows in the RowList, the last value in the array is repeated. If all rows of the RowList have variable widths, you can set \\`variableWidthItems=\"\\[true\\]\"\\` or \\`variableWidthItems=\"true\"\\`. The \\`\\[SD/HD/FHD\\]ItemWidth\\` values specified should match the \\`ui\\_resolutions\\` attribute in the manifest. Example: If you only specify \\`ui\\_resolutions=fhd\\`, you should only set \\`FHDItemWidth\\` and allow the device to autoscale when rendering for HD and SD display modes. If you specify \\`ui\\_resolutions=hd\\`,fhd, you can set \\`HDItemWidth\\` and \\`FHDItemWidth\\`. If any item does not specify the \\`\\[SD/HD/FHD\\]ItemWidth\\` in its ContentNode for a variable width row, the \\`x\\` value of the RowList's \\`rowItemSize\\` field for that row is used as the \\`width\\` for that item.",
"name": "variableWidthItems",
"type": "array of Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "fixedFocus",
"description": "Specifies the how the focus indicator moves in a list or a column of grid items in response to the remote direction pad Up and Down key presses. The possible values are:\n\n| Option | Effect |\n| --- | --- |\n| floatingFocus | Causes the focus indicator to float up or down until it reaches the end of the list, at which point the focus indicator will stay fixed on the first or last row in the list, and the rows will scroll up or down if there are rows that were not visible. |\n| fixedFocusWrap | Causes the column to wrap around when the focus indicator reaches the first or last row in the list, as long as the list contains enough rows to fill the list. If the list does not contain enough rows to fill the list, the focus indicator will float up and down. |\n| fixedFocus | Causes the focus to stay fixed on the upper row. As the user scrolls down, the row containing the previously selected item scrolls up off screen. Scrolling continues until the last row is reached. |",
"name": "vertFocusAnimationStyle",
"type": "option string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the bitmap file to use as a visual separator between the last and first list items when the list wraps. In most case, this should be a 9-patch image that specifies both expandable regions. Only set this field to specify a custom bitmap that differs in appearance from the default bitmap.",
"name": "wrapDividerBitmapUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the height of the divider. The wrap divider bitmap will be scaled to this height. The width of the wrap divider is set to the width of the list items (that is, the x-dimension value of the \\`itemSize\\` field).",
"name": "wrapDividerHeight",
@@ -3991,7 +3991,7 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "not specified",
"description": "Specifies an associative array of color name/color key-value pairs. For example: \\`\\`\\` { PrimaryTextColor: 0x111111FF, FocusColor: 0x0000FFFF } \\`\\`\\` .",
"name": "colors",
@@ -4011,28 +4011,28 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "If true, a Back key press causes the scene to exit, back to the last user-focused item. If false, a Back key press does not cause the scene to exit. In order for the Back key to cause the scene to exit, the remote control focus must be explicitly set on the scene, or a child of the scene, using the \\[ifSGNodeFocus\\](https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodefocus.md\"ifSGNodeFocus\") interface setFocus(true) function. A Home key press always causes the scene to exit.",
"name": "backExitsScene",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0x000000FF",
"description": "Specifies a background color for the scene. This color is only used if the backgroundURI field is set to an empty string. For example: scene.backgroundColor=\"0xEB1010FF\" scene.backgroundUri = \"\"",
"name": "backgroundColor",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "invalid",
"description": "Specifies a graphic image file to be used for the Scene node background.",
"name": "backgroundURI",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "This read-only field is set when the Scene is initialized. It indicates which of a channel's design resolutions (per manifest's ui\\\\\\_resolutions value) is being used, based on the player model and connected display type. Previously, a developer could deduct the same information by using both \\[roDeviceInfo.GetUIResolution\\](https://developer.roku.com/docs/references/brightscript/interfaces/ifdeviceinfo.mdgetuiresolution-as-object() \"roDeviceInfo.GetUIResolution\") and \\[roAppInfo.getValue\\](https://developer.roku.com/docs/references/brightscript/interfaces/ifappinfo.mdgetvaluekey-as-string-as-string \"roAppInfo.getValue\")(\"ui\\\\\\_resolutions\"). This new field simplifies the process. The field is set to an AA with two numeric-valued keys — width and height — as well as a string value indicating the current design resolution (\"HD\", \"FHD\" or \"SD\"). \\`\\`\\` Brightscript Debugger> ? myNode.getScene().currentDesignResolution \\= { height: 720 resolution: \"HD\" width: 1280 } \\`\\`\\`",
"name": "currentDesignResolution",
@@ -4046,7 +4046,7 @@
"type": "Node"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "not set",
"description": "Defines the default color palette used by those nodes that have a \\*\\*palette\\*\\* field (for example, the \\*\\*Scene\\*\\* node, \\[standard dialogs\\](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog.md, \\[dynamic custom voice keyboards\\](docs/references/scenegraph/dynamic-voice-keyboard-nodes/dynamic-keyboard-base.md), and so on). Channels typically set the \\*\\*Scene.palette\\*\\* field to consistently color the standard dialogs and keyboards in the channel. Nodes that include a \\*\\*palette\\*\\* field can be set to an \\*\\*RSGPalette\\*\\* node to override the default colors specified in the \\*\\*Scene\\*\\* node. If a node that supports a palette does not set its \\*\\*palette\\*\\* filed, the node looks up the scene graph until it finds a node with its \\*\\*palette\\*\\* field set. If no ancestor node is found with its palette field set, the default color palette is used (grey with white text). The RSGPalette color values used by the Scene node are as follows:\n\n| Palette Color Name | Usages |\n| --- | --- |\n| PrimaryTextColor | The text color used for the entered text displayed in the VoiceTextEditBox node. |\n| SecondaryTextColor | The text color used for the hints displayed in the VoiceTextEditBox. |\n| InputFieldColor | The blend color applied to the VoiceTextEditBox background |\n| DialogBackgroundColor | Blend color for dialog's background bitmap. |\n| DialogItemColor | Blend color for the following items: * [StdDlgProgressItem's](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-progress-item.md spinner bitmap * [StdDlgDeterminateProgressItem's](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-determinate-progress-item.md graphic |\n| DialogTextColor | Color for the text in the following items: * [StdDlgTextItem](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-text-item.md and [StdDlgGraphicItem](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-graphic-item.md if the **namedTextStyle** field is set to \"normal\" or \"bold\". * All [content area items](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md, except for [StdDlgTextItem](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-text-item.md and [StdDlgGraphicItem](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-graphic-item.md. * [Title area](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-title-area.mdfields). Unfocused button. |\n| DialogFocusColor | Blend color for the following: * The [button area](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-button-area.mdfields) focus bitmap. * The focused scrollbar thumb. |\n| DialogFocusItemColor | Color for the text of the focused button. |\n| DialogSecondaryTextColor | Color for the text of in the following items: * [StdDlgTextItem](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-text-item.md and [StdDlgGraphicItem](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-graphic-item.md if the **namedTextStyle** field is set to \"secondary\". * Disabled button. |\n| DialogSecondaryItemColor | Color for the following items: * The divider displayed below the title area. * The unfilled portion of the [StdDlgDeterminateProgressItem's](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-determinate-progress-item.md graphic. |\n| DialogInputFieldColor | The blend color for the text edit box background bitmap for keyboards used inside dialogs. |\n| DialogKeyboardColor | The blend color for the keyboard background bitmap for keyboards used inside dialogs |\n| DialogFootprintColor | The blend color for the following items: * The button focus footprint bitmap that is displayed when the [button area](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-button-area.mdfields) does not have focus. * Unfocused scrollbar thumb and scrollbar track. |",
"name": "pallete",
@@ -4066,70 +4066,70 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xddddddff",
"description": "Specifies the text color",
"name": "color",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "Specifies the Font node to be used",
"name": "font",
"type": "Font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the height of the node. If the text to be displayed is larger than this height, a scrollbar is automatically added on the right, allowing users to scroll up and down using the remote's arrow keys",
"name": "height",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "left",
"description": "See \\[Horizontal Alignment\\](https://developer.roku.com/docs/references/scenegraph/typographic-nodes/scrollinglabel.mdalignment \"Horizontal Alignment\")",
"name": "horizAlign",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "8",
"description": "If the text is displayed on more than one line, specifies the amount of additional space added between lines",
"name": "lineSpacing",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the URI of an image file to be loaded to replace the default scrollbar thumb. This should be a 9-patch image so that it can be stretched to the appropriate size",
"name": "scrollbarThumbBitmapUri",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the URI of an image file to be loaded to replace the default scrollbar track. This should be a 9-patch image so that it can be stretched to the appropriate height specifed by the height field",
"name": "scrollbarTrackBitmapUri",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the text to be displayed",
"name": "text",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "top",
"description": "See \\[Vertical Alignment\\](https://developer.roku.com/docs/references/scenegraph/typographic-nodes/scrollinglabel.mdalignment \"Vertical Alignment\")",
"name": "vertAlign",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the width of the node. This includes both the area where the text is rendered in addition to the scroll bar on the right",
"name": "width",
@@ -4149,63 +4149,63 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xddddddff",
"description": "Specifies the text color",
"name": "color",
"type": "color"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "system default",
"description": "Specifies the Font node to be used",
"name": "font",
"type": "Font"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Specifies the height of the label. If set to zero, the actual height is determined by the value of the numLines field if it is greater than zero. See \\[Vertical Alignment\\](https://developer.roku.com/docs/references/scenegraph/typographic-nodes/scrollinglabel.mdalignment \"Vertical Alignment\")",
"name": "height",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "left",
"description": "See \\[Horizontal Alignment\\](https://developer.roku.com/docs/references/scenegraph/typographic-nodes/scrollinglabel.mdalignment \"Horizontal Alignment\")",
"name": "horizAlign",
"type": "option string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "500",
"description": "Specifies the maximum width of the rendered text. If the rendered text exceeds the maximum width, the scrolling behavior is automatically triggered",
"name": "maxWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\-1",
+ "accessPermission": "READ_WRITE",
+ "default": "-1",
"description": "If set to the default value of -1, the text scrolling behavior repeats continuously. If set to zero, the text will remain ellipsized and never scroll. If set to a value greater than zero, the text will scroll the specified number of times, at the end of which the text is rendered with an ellipsis at the end",
"name": "repeatCount",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "100",
"description": "Specifies the horizontal scrolling speed in pixels per second",
"name": "scrollSpeed",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the text to be displayed",
"name": "text",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "top",
"description": "See \\[Vertical Alignment\\](https://developer.roku.com/docs/references/scenegraph/typographic-nodes/scrollinglabel.mdalignment \"Vertical Alignment\")",
"name": "vertAlign",
@@ -4237,98 +4237,98 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "renderLast",
"description": "| Option | Description |\n| --- | --- |\n| `\"renderFirst\"` | any drawing done by this node will be done **before** the node children are rendered |\n| `\"renderLast\"` | any drawing done by this node will be done **after** the node children are rendered |",
"name": "childRenderOrder",
"type": "option as string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ 0.0, 0.0, 0.0, 0.0 \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ 0.0, 0.0, 0.0, 0.0 ]",
"description": "Specifies a rectangle in the node local coordinate system that is used to limit the region where this node and its children can render. If a non-empty rectangle is specified, then all drawing by this node and its children will be limited to that rectangular area. \\* \\`ClippingRects\\` can be specified by the node or by any of its ancestors in the SceneGraph. \\* \\`ClippingRects\\` are automatically set by some nodes such as lists and grids. \\* \\`ClippingRects\\` are always clipped to the screen boundaries, so if a \\`clippingRect\\` is specified that is partially or completely offscreen, it will be clipped to the screen boundaries. With respect to render tracking, although the node could be completely within the bounds of the specified \\`clippingRect\\`, it's \\`renderTracking\\` field could be set to \\`\"none\"\\` if the portion of the \\`clippingRect\\` it occupies is completely offscreen.",
"name": "clippingRect",
"type": "array of float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "If true, renderTracking will be set to a string describing how much of the node is rendered on screen",
"name": "enableRenderTracking",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "If true, the node opacity is determined by multiplying opacity attribute of the node by the opacity of the parent node, which may have been determined by multiplying the opacity of its ancestor nodes. If false, the node opacity is determined by the opacity attribute set for the node or the default opacity attribute value",
"name": "inheritParentOpacity",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "If true, the node overall transformation is determined by combining the accumulated transformation matrix of all of its ancestors in the SceneGraph with the node local 2D transformation matrix described by its translation, rotation, scale and scaleRotateCenter fields. If false, the accumulated transformation of all of its ancestors in the SceneGraph is ignored and only the node local transformation matrix is used. This causes the node to be transformed relative to the root of the SceneGraph (that is, the Scene component)",
"name": "inheritParentTransform",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Set to true to suppress the default CVAA text to speech. This allows channels to provide their own custom implementation",
"name": "muteAudioGuide",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "1.0",
"description": "Sets the opacity of the node and its children. Opacity is the opposite of transparency. Opacity values range from 0.0 (fully transparent) to 1.0 (fully opaque). As the SceneGraph is traversed, the opacity values are combined by multiplying the current accumulated opacity with the node opacity, so that if the accumulated opacity of a node ancestors is 0.25 (75% transparent), the node will have opacity of 0.25 or less. This allows entire branches of the SceneGraph to fade in and out by animating the opacity of the node at the root of the branch",
"name": "opacity",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "Used in combination with the numRenderPasses field of nodes extended from the \\[ArrayGrid\\](https://developer.roku.com/docs/references/scenegraph/abstract-nodes/arraygrid.md\"ArrayGrid\") abstract node class, to optimize rendering of lists and grids. This should never be set to a non-zero value unless you are optimizing the performance of a list or grid rendering by specifying the sequence of rendering operations for sub-elements of the list or grid items, and have set the numRenderPasses field value for the list or grid to a value greater than 1. If the numRenderPasses field value for the list or grid is set to a value greater than 1, you must set this field to a value greater than 0 for all sub-elements of the list or grid items, and not greater than the numRenderPasses field value. If the numRenderPasses field is set to a value greater than 1, and you set this field for a list or grid item sub-element to 0 (the default), or a value greater than the numRenderPasses field value, the list or grid item sub-element will not render",
"name": "renderPass",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "disabled",
"description": "renderTracking is set to \"disabled\" when enableRenderTracking is set to false. The following options are only available when enableRenderTracking is set to true:\n\n| Option | Description |\n| --- | --- |\n| `\"none\"` | renderTracking is set to `\"none\"` if **one or more** of these conditions is true: the node's `visible` field is set to `false`the node's `opacity` field is set to `0.0`no `clippingRect` is specified and the node is completely offscreena `clippingRect` is specified and the node lies completely outside that `clippingRect's` coordinates or is completely offscreen |\n| `\"partial\"` | renderTracking is set to `\"partial\"` if **all** of the following conditions are true: the node's `visible` field is set to `true`the node's `opacity` field is greater than `0.0`no `clippingRect` is specified and the node is partially offscreena `clippingRect` is specified and the node lies partially inside the `clippingRect's` coordinates |\n| `\"full\"` | renderTracking is set to `\"full\"` if **all** of the following conditions are true: the node's `visible` field is set to `true`the node's `opacity` field is greater than `0.0`no `clippingRect` is specified and the node is completely onscreena `clippingRect` is specified and the node lies completely inside the `clippingRect's` coordinates |",
"name": "renderTracking",
"type": "option as string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Defines the rotation angle about the scaleRotateCenter point (in radians) of the node local coordinate system. Positive values specify a counterclockwise rotation, negative values specify a clockwise rotation. For some Roku Player hardware, specifically Roku Players without OpenGL graphics support, only rotations of 0, 90, 180 and 270 degrees (in equivalent radians) are supported. (See \\[Roku Models and Features\\](/docs/specs/hardware.md#current-models \"Roku Models and Features\") for information on OpenGL support)",
"name": "rotation",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[1.0,1.0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[1.0,1.0]",
"description": "Defines the scale factor to be applied to the node local coordinate",
"name": "scale",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0.0,0.0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0.0,0.0]",
"description": "Describes the location of a point in the node local coordinate that serves as the center of the scale and rotation operations",
"name": "scaleRotateCenter",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[0.0,0.0\\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[0.0,0.0]",
"description": "Defines the origin of the node local coordinate system relative to its parent node",
"name": "translation",
"type": "vector2d"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "true",
"description": "If true, the node and its children are rendered. If false, the node and its children do not render",
"name": "visible",
@@ -4348,35 +4348,35 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "none",
"description": "Set to control the audio playback. Getting the value of this field returns the most recent value set, or none if no value has been set.\n\n| Option | Effect |\n| --- | --- |\n| none | No effect |\n| play | Start playing the audio. If the audio is already playing, it will be restarted. If the `loadStatus` field is not \"ready\", the sound will not be played and the `state` field will be set to \"notready\". For networked files with the `loadStatus` field set to \"flushed\", setting `control` to \"play\" will automatically trigger a reload of the network file, but will not result in the sound being played, due to the time it takes to download the file again. In this case, the sound can be played once the `loadStatus` field changes from \"flushed\" to \"ready\" |\n| stop | If the audio is playing, stop playing the audio. If the audio is not playing, no effect. |",
"name": "control",
"type": "option string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "none",
"description": "Indicates the status of the sound file.\n\n| Value | Meaning |\n| --- | --- |\n| none | No file has been requested. |\n| loading | (network files only) The file has been requested and is being downloaded. |\n| ready | The file is ready to be played (i.e. it is on the device and is a valid WAV file). |\n| failed | The file path or URI is incorrect or refers to a file that is not a valid WAV file. |\n| flushed | (network files only) The file was ready, but has been deleted from the LRU cache. Setting the `control` field to play will cause the file to be automatically reloaded, but not be played upon completion. |",
"name": "loadStatus",
"type": "value string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "none",
"description": "Can be used to track the progress of current state of local and networked sound files When the field value changes to ready, the sound is ready to be played. The possible values are:\n\n| Value | Meaning |\n| --- | --- |\n| none | No current playback state |\n| playing | Audio is currently playing. |\n| stopped | The audio playback was stopped by setting control to \"stop\". The state will also be set to \"stopped\" if audio was playing and the uri is changed. |\n| finished | The audio playback reached the end of the audio |\n| toomanysounds | Control was to \"play\" while there were already the maximum number of SoundEffect sounds playing. Currently, this limit is 4. |\n| notready | The sound file is not on the device. This is set in response to the control field being set to \"play\". For local WAV files included in a channel package, it will be occur if the path to the file is not correct, or if the file is not a valid WAV file. For network-accessed WAV files, this indicates one of these three conditions is true: * The file has been requested, but is not finished downloading. In this case, the `loadStatus` field will be set to \"loading\". * The file request has completed, but the URL is incorrect or the downloaded file is not a valid WAV filed. In this case, the `loadStatus` field will be set to \"failed\" * The file has previously been downloaded, but has been flushed from the LRU cache. In this case, the `loadStatus` field will be set to \"flushed\". |",
"name": "state",
"type": "value string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the URI of the WAV file. Sounds included as part of the application package can be referenced using the \\`pkg:/sounds\\` prefix. This may also specify the location of a WAV file on a remote server.",
"name": "uri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "50",
"description": "The volume is a number between 0 and 100 (percentage of full volume). 50 should be used for normal volume.",
"name": "volume",
@@ -4397,49 +4397,49 @@
},
"fields": [
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "Indicates the index of the button that gained focus when the user moved the focus onto one of the buttons in the button area.",
"name": "buttonFocused",
"type": "int"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "indicates the index of the selected button when the user selects one of the buttons in the button area.",
"name": "buttonSelected",
"type": "int"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "false",
"description": "Dismisses the dialog. The dialog is dismissed whenever the close field is set, regardless of whether the field is set to true or false.",
"name": "close",
"type": "boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0f",
"description": "Sets the height of the dialog. If this field is set to greater than 0, and the layout of the dialog for the specified width results in a dialog with a height less than the value of this field, the dialog layout is increased so that the dialog height matches the value of this field. In this case, the button area is moved to the bottom of the dialog and a blank region exists between the content area and the button area.",
"name": "height",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "not set",
"description": "Sets the color palette for the dialog's background, text, buttons, and other elements. By default, no palette is specified; therefore, the dialog inherits the color palette from the nodes higher in the scene graph (typically, from the dialog's \\[Scene\\](https://developer.roku.com/docs/references/scenegraph/scene.md node, which has a \\*\\*palette\\*\\* field that can be used to consistently color the standard dialogs and keyboards in the channel). The RSGPalette color values used by the StandardDialog node are as follows:\n\n| Palette Color Name | Usages |\n| --- | --- |\n| DialogBackgroundColor | Blend color for dialog's background bitmap. |\n| DialogItemColor | Blend color for the following items: * [StdDlgProgressItem's](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-progress-item.md spinner bitmap * [StdDlgDeterminateProgressItem's](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-determinate-progress-item.md graphic |\n| DialogTextColor | Color for the text in the following items: * [StdDlgTextItem](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-text-item.md and [StdDlgGraphicItem](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-graphic-item.md if the **namedTextStyle** field is set to \"normal\" or \"bold\". * All [content area items](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md, except for [StdDlgTextItem](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-text-item.md and [StdDlgGraphicItem](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-graphic-item.md. * [Title area](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-title-area.mdfields). Unfocused button. |\n| DialogFocusColor | Blend color for the following: * The [button area](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-button-area.mdfields) focus bitmap. * The focused scrollbar thumb. |\n| DialogFocusItemColor | Color for the text of the focused button. |\n| DialogSecondaryTextColor | Color for the text of in the following items: * [StdDlgTextItem](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-text-item.md and [StdDlgGraphicItem](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-graphic-item.md if the **namedTextStyle** field is set to \"secondary\". * Disabled button. |\n| DialogSecondaryItemColor | Color for the following items: * The divider displayed below the title area. * The unfilled portion of the [StdDlgDeterminateProgressItem's](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-determinate-progress-item.md graphic. |\n| DialogInputFieldColor | The blend color for the text edit box background bitmap for keyboards used inside dialogs. |\n| DialogKeyboardColor | The blend color for the keyboard background bitmap for keyboards used inside dialogs |\n| DialogFootprintColor | The blend color for the following items: * The button focus footprint bitmap that is displayed when the [button area](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-button-area.mdfields) does not have focus. * Unfocused scrollbar thumb and scrollbar track. |",
"name": "palette",
"type": "RSGPalette node"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "N/A",
"description": "An event that indicates the dialog was dismissed. This event is triggered when one of the following occurs: \\* The \\*\\*close\\*\\* field is set. \\* The Back, Home, or Options key is pressed. \\* Another dialog is displayed.",
"name": "wasClosed",
"type": "event"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0f",
"description": "Sets the width of the dialog: \\* If set to 0, the standard system dialog width is used (1038 for FHD, 692 for HD). If the title or any button text is too wide to fit within the standard width, the dialog width will be automatically increased to show the full title or button text up to a preset maximum (1380 for FHD and 920 for HD). \\* If set to greater than 0, the specified width is used as the overall width of the dialog.",
"name": "width",
@@ -4460,8 +4460,8 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "List of buttons to be displayed in the button area at the bottom of the dialog. Each string in the buttons array adds a new button to the button area. > Minimize the number of buttons in the dialog to ensure that all buttons are visible without the user having to scroll up and down.",
"name": "buttons",
"type": "array of string"
@@ -4474,21 +4474,21 @@
"type": "Type"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"generic\"",
"description": "The type of text to be entered. This may be used by the keyboard to modify the voice entry method and to determine when a valid string has been entered. This may be one of the following values: \\* \"email\": letter-by-letter dictation for emails. \\* \"numeric\": letter-by-letter dictation for PIN codes, zip codes, and other numeric input. \\* \"alphanumeric\": letter-by-letter dication for street addresses or other sequences of numbers and letters. \\* \"generic\": Full word input for search queries or other sequences of numbers, letters and symbols. \\* \"password\": letter-by-letter dication for passwords.",
"name": "keyboardDomain",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "One or more blocks of text, which are typically used to describe information about the data to be entered. Each string in the array is displayed as a separate block of text with the standard amount of space left between the blocks. > Minimize the message length to avoid having a scrollbar automatically added to the content area. If multiple strings are specified or any string is too long, the dialog may not be able to fit within the height of the display.",
"name": "message",
"type": "array of string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "The default string to be displayed in the keyboard's text edit box. When the user enters the text, this field is updated with the currently entered string.",
"name": "text",
@@ -4502,7 +4502,7 @@
"type": "VoiceTextEditBox node"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "The title to be displayed at the top of the dialog.",
"name": "title",
@@ -4523,42 +4523,42 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "One or more blocks of informational text displayed at the bottom of the dialog's content area. Each string in the array is displayed as a separate block of text with the standard amount of space left between the blocks. > To separate lines of text, add each line as an element in the array. Do not use newline characters.",
"name": "bottomMessage",
"type": "array of string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "An array of strings displayed as a bulleted or numbered list. The list is displayed in the content area below the message and above the bottom message.",
"name": "bulletText",
"type": "array of string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"bullet\"",
"description": "If the \\*\\*bulletText\\*\\* field is set, specifies the type of list item delimiter, which may be one of the following: \\* \"bullet\" (this is the default) \\* \"numbered\" \\* \"lettered\" .",
"name": "bulletType",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "List of buttons to be displayed in the button area at the bottom of the dialog. Each string in the buttons array adds a new button to the button area. > Minimize the number of buttons in the dialog to ensure they are all visible when the dialog is displayed.",
"name": "buttons",
"type": "array of string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "One or more blocks of informational text displayed at the top of the dialog's content area. Each string in the array is displayed as a separate block of text with the standard amount of space left between the blocks. > To separate lines of text, add each line as an element in the array. Do not use newline characters.",
"name": "message",
"type": "array of string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "The title to be displayed at the top of the dialog.",
"name": "title",
@@ -4579,21 +4579,21 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "List of buttons to be displayed in the button area at the bottom of the dialog. Each string in the buttons array adds a new button to the button area. > Minimize the number of buttons in the dialog to ensure that all buttons are visible without the user having to scroll up and down.",
"name": "buttons",
"type": "array of string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "One or more blocks of text, which are typically used to describe information about the data to be entered. Each string in the array is displayed as a separate block of text with the standard amount of space left between the blocks. > Minimize the message length to avoid having a scrollbar automatically added to the content area. If multiple strings are specified or any string is too long, the dialog may not be able to fit within the height of the display.",
"name": "message",
"type": "array of string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Displays the entered PIN number in the text edit box. As the user enters each numeric digit, this field is updated with the currently entered value.",
"name": "pin",
@@ -4607,7 +4607,7 @@
"type": "VoiceTextEditBox node"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "The title to be displayed at the top of the dialog.",
"name": "title",
@@ -4628,14 +4628,14 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "A string to be displayed next to the spinning progress indicator. It typically tells the user why they are waiting. > Minimize the message length.",
"name": "message",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "The title to be displayed at the top of the dialog.If no title is specified, the progress dialog will be displayed without a title area and will use the minimum width needed to show the spinning progress indicator and message",
"name": "title",
@@ -4669,14 +4669,14 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "An array of strings displayed as a bulleted or numbered list. The list is displayed in the content area below the message and above the bottom message.",
"name": "bulletText",
"type": "array of string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"bullet\"",
"description": "Specifies the type of list item delimiter, which may be one of the following: \\* \"bullet\" \\* \"numbered\" \\* \"lettered\"",
"name": "bulletType",
@@ -4697,14 +4697,14 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Specifies whether the button can receive focus. If this field is set to true, the button has an inactive appearance and is unable to receive focus.",
"name": "disabled",
"type": "boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "The text to be displayed on the button",
"name": "text",
@@ -4751,14 +4751,14 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"0\"",
"description": "Specifies the current completion percentage text and graphic to be displayed (for example \"35%\" with more than a third of the indicator filled). If this is set to a number less than 0 or greater than 100, the progress indicator will display \"0%\" or \"100%\" completion, respectively.",
"name": "percent",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the text to be displayed next to the progress graphic. If the text width does not fit within the width of the content area, the text will wrap onto multiple lines.",
"name": "text",
@@ -4779,35 +4779,35 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"left\"",
"description": "Specifies where to position and align the graphic and its text label, relative to the content area. This may be one of the following values:\n\n| Value | Text Position |\n| --- | --- |\n| left | The graphic is left-aligned in the content area. The text label is positioned horizontally to the right of the graphic, and centered vertically. |\n| right | The graphic is right-aligned in the content area. The text label is positioned horizontally to the left of the graphic, and centered vertically. |\n| center\\_below | The graphic and text label are centered horizontally in the content area. The graphic is positioned below the text label. |\n| center\\_above | The graphic and text label are centered horizontally in the content area. The graphic is positioned above the text label. |",
"name": "graphicAlign",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "The image height to be used instead of the image's actual height.",
"name": "graphicHeight",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "The URI of the image to be displayed.",
"name": "graphicUri",
"type": "uri"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "The image width to be used instead of the image's actual width.",
"name": "graphicWidth",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the text to be displayed next to the graphic. If the text width does not fit within the width of the content area, the text will wrap onto multiple lines.",
"name": "text",
@@ -4828,7 +4828,7 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Indicates whether the item can be scrolled vertically by the user. The StandardDialog layout algorithm reduces the height of a scrollable item as needed if the overall height of the dialog is too large to fit on the display.",
"name": "scrollable",
@@ -4849,14 +4849,14 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"unspecified\"",
"description": "Specifies the type of keyboard to be displayed: \\* \"unspecified\": no keyboard is displayed. \\* \"keyboard\": A \\[\\*\\*DynamicKeyboard\\*\\*\\](https://developer.roku.com/docs/references/scenegraph/dynamic-voice-keyboard-nodes/dynamic-keyboard.md node is displayed. \\* \"pinpad\": A \\[\\*\\*DynamicPinPad\\*\\*\\](https://developer.roku.com/docs/references/scenegraph/dynamic-voice-keyboard-nodes/dynamic-pinpad.md node is displayed.",
"name": "keyLayout",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "The default string to be displayed in the keyboard's text edit box. When the user enters the text, this field is updated with the currently entered string.",
"name": "text",
@@ -4884,7 +4884,7 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the text to be displayed next to the progress graphic. If the text width does not fit within the width of the content area, the text will wrap onto multiple lines.",
"name": "text",
@@ -4905,21 +4905,21 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the string to be spoken when the audio guide reads the text item. By default, the audio guide reads the string specified in the \\*\\*text\\*\\* field.",
"name": "audioGuideText",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"normal\"",
"description": "Specifies a named style to be used for the displayed text's color and font. The supported styles include:\n\n| Style Name | Palette Color | Font |\n| --- | --- | --- |\n| \"normal\" | DialogTextColor | SmallSystemFont |\n| \"secondary\" | DialogSecondaryTextColor | SmallestSystemFont |\n| \"bold\" | DialogTextColor | SmallBoldSystemFont |",
"name": "namedTextStyle",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the text to be displayed. If the text width does not fit within the width of the content area, the text will wrap onto multiple lines.",
"name": "text",
@@ -4940,35 +4940,35 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies a bitmap to be displayed at the left edge of the dialog's title area (to the left of dialog's primary title).",
"name": "primaryIcon",
"type": "URL"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0f",
"description": "Adjusts the vertical position of the primary icon relative to the baseline of the dialog's primary title. By default, the bottom of the primary icon is aligned with the primary title's baseline.",
"name": "primaryIconVertOffset",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the title to be displayed in the dialog's title area.",
"name": "primaryTitle",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies a bitmap to be displayed at the right edge of the dialog's title area.",
"name": "secondaryIcon",
"type": "URL"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0f",
"description": "Adjusts the vertical position of the secondary icon relative to the baseline of the dialog's primary title. By default, the bottom of the secondary icon is aligned with the primary title's baseline.",
"name": "secondaryIconVertOffset",
@@ -4988,105 +4988,105 @@
},
"fields": [
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "When set to a valid item index, causes the group to quickly scroll so that the specified index moves into the to the target region specified by the TargetSet's focusIndex",
"name": "animateToItem",
"type": "integer"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "invalid",
"description": "When set to a valid TargetSet, causes the group to quickly animate so that the target regions of the initial TargetSet node are smoothly interpolated to the corresponding target regions of the new TargetSet node. If the two TargetSet's focusIndex fields are different, the focusIndex is also animated from the old to the new value",
"name": "animateToTargetSet",
"type": "TargetSet"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "none",
"description": "Specifies the content for the group. See \\[Data Bindings\\](https://developer.roku.com/docs/references/scenegraph/layout-group-nodes/targetgroup.mddata-bindings \"Data Bindings\") below for more details",
"name": "content",
"type": "ContentNode"
},
{
- "accessPermission": "READ\\_ONLY",
- "default": "\\-1.0",
+ "accessPermission": "READ_ONLY",
+ "default": "-1.0",
"description": "As the TargetGroup animation occurs, this field is constantly updated to represent the index of the ContentNode currently occupying the focus target region. When currFocusItemIndex is an integer value, the specified ContentNode occupies the focus target. When currFocusItemIndex has a fractional part, the value indicates that an animation is in process. For example, a value of 5.7 would indicate that items 5 and 6 are currently overlapping the focus region, with item 6 occupying 70% and item 5 the other 30%",
"name": "currFocusItemIndex",
"type": "float"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "invalid",
"description": "As the TargetGroup animation occurs that is initiated by setting the animateToTargetSet field, currTargetSet contains the current values of the target regions as the animation proceeds from the initial TargetSet's targets to the new TargetSet's targets",
"name": "currTargetSet",
"type": "TargetSet"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0",
"description": "For TargetSet's that do not specify a focusIndex, this value will be used as the index of the TargetSet where the focused item is located. If a TargetSet specifies any value for the focusIndex, that value will be used instead of defaultTargetSetFocusIndex",
"name": "defaultTargetSetFocusIndex",
"type": "int"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.3 seconds",
"description": "Specifies the time, in seconds, to perform the animation when the animateToItem or animateToTargetSet fields are set",
"name": "duration",
"type": "Time"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "",
"description": "Specifies the name of a XML component for the group items. An instance of this component is created on demand for each visible item of the group. The XML component must define a specific interface as detailed in \\[TargetGroup XML Component\\](https://developer.roku.com/docs/references/scenegraph/layout-group-nodes/targetgroup.mdtargetgroup-xml-component \"TargetGroup XML Component\") below",
"name": "itemComponentName",
"type": "string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When a group item gains the key focus, set to the index of the focused item",
"name": "itemFocused",
"type": "integer"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When a group item is selected, set to the index of the selected item",
"name": "itemSelected",
"type": "integer"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "When a group item loses the key focus, set to the index of the unfocused item",
"name": "itemUnfocused",
"type": "integer"
},
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "0",
"description": "When set to a valid item index, causes the group to immediately update so that the specified index moves to the target region specified by the TargetSet's focusIndex",
"name": "jumpToItem",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Specifies whether the current target rectangles (as defined in the read-only currTargetSet field's TargetSet) are drawn or not. Typically this would only be set to true while debugging a channel, although in some use cases its possible that you might want to display the current target rectangles. The rectangles are drawn using the color in the targetSet's TargetSet node's color field",
"name": "showTargetRects",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "invalid",
"description": "Specifies the TargetSet to use to define the target regions of the items in the group. When set or modified, the target regions are immediately adjusted to use the new values",
"name": "targetSet",
"type": "TargetSet"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Specifies whether the content items wraparound at the end of the TargetGroup to fill all of the targets rectangles",
"name": "wrap",
@@ -5106,28 +5106,28 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"down\"",
"description": "Specifies which remote button will move the focus forward. For vertical lists, this will typically be set to \"down\". For horizontal rows, this will typically be set to \"right\".",
"name": "advanceKey",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies one or more TargetSet's to be used when the TargetList has the focus. If a single TargetSet is specified, focus will stay fixed on the targetRect of that TargetSet that corresponds to the TargetGroup's focus index. The focus index will come from the TargetSet if explicitly specified or from the TargetGroup's defaultTargetSetFocusIndex field if not. If focusedTargetSet includes more than one TargetSet node, that defines a sequence of TargetSet's that will be advanced through as the user presses the advance or reverse key. When advancing, the focus floats from one TargetSet's to the next TargetSet in the array until the last element of the focusedTargetSet is reached, at which point the focus is fixed to the last element and the items begin to scroll. When reversing, the focus floats from one TargetSet to the previous TargetSet in the array until the first element of the focusedTargetSet is reached, at which point the focus is fixed to the first element and the items begin to scroll. See above for more discussion of setting up fixed and floating focus use cases.",
"name": "focusedTargetSet",
"type": "array of TargetSet nodes"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"up\"",
"description": "Specifies which remote button will move the focus backward. For vertical lists, this will typically be set to \"up\". For horizontal rows, this will typically be set to \"left\".",
"name": "reverseKey",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "invalid",
"description": "Specifies the TargetSet to be used when the TargetList does not have the focus.",
"name": "unfocusedTargetSet",
@@ -5147,22 +5147,22 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0xFFFFFF80",
"description": "If the TargetGroup using this TargetSet has its showTargetRects field set to true, the target rectangles of the current TargetSet will be drawn using the specified color. Drawing the TargetSet's target rectangles is generally only done when debugging an application.",
"name": "color",
"type": "Color"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\-1",
+ "accessPermission": "READ_WRITE",
+ "default": "-1",
"description": "Identifies the index of an element of the targetRects array that will be treated as the region occupied by the focus item. The default of of -1 indicates that the TargetGroup's current focus index will not be changed when the TargetGroup is set to use the TargetSet to define its target regions.",
"name": "focusIndex",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies an array of rectangles that define the target regions used by a TargetGroup node. To specify a rectangle, you can either specify a associative array with x, y, width and height elements or an array of 4 numeric values. For example, you could specify an array of two rectangles like this: \\\\\\[ \\\\\\[ x:10, y:5, width: 200, height:150 \\\\\\], \\\\\\[ x:10, y:160, width: 200, height:150 \\\\\\] \\\\\\] Alternately, you could specify the same array like this: \\\\\\[ \\\\\\[ 10, 5, 200, 150 \\\\\\], \\\\\\[ 10, 160, 200, 150 \\\\\\] \\\\\\]",
"name": "targetRects",
"type": "array of rectangles"
@@ -5181,21 +5181,21 @@
},
"fields": [
{
- "accessPermission": "WRITE\\_ONLY",
+ "accessPermission": "WRITE_ONLY",
"default": "init",
"description": "Requests a change in the run state of the spawned task. The valid options are the same as for the state field, but case-insensitive (i.e. can set \"RUN\" or \"run\")",
"name": "control",
"type": "option string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "The name of the function in the Task node component to be executed when the state field changes to RUN. The function must be declared within the scope of the Task node component",
"name": "functionName",
"type": "string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "init",
"description": "Inquires about the run state of the spawned task. Note that the values are in lowercase: \"init\", \"stop\", \"run\", \"done\"",
"name": "state",
@@ -5286,7 +5286,7 @@
},
{
"accessPermission": "Read-Write",
- "default": "\\-1.0",
+ "default": "-1.0",
"description": "Specifies the width of the \\*\\*TextEditBox\\*\\* node. When used internal to the \\*\\*Keyboard\\*\\* and \\*\\*MiniKeyboard\\*\\* nodes, those nodes set this field to match the width of the keyboard.",
"name": "width",
"type": "float"
@@ -5313,28 +5313,28 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "none",
"description": "Used to control the operation of the Timer node. Recognized values include:\n\n| Value | Effect |\n| --- | --- |\n| none | No effect |\n| start | Starts the **Timer** node operation |\n| stop | Stops a running **Timer** node |",
"name": "control",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "1",
"description": "Specifies the time in seconds before the Timer node fires after the control field value is set to start. To specify time values down to millisecond granularity, use a float type (0.001 equals one millisecond)",
"name": "duration",
"type": "time"
},
{
- "accessPermission": "OBSERVE\\_ONLY",
+ "accessPermission": "OBSERVE_ONLY",
"default": "N/A",
"description": "Triggers observer callback functions when the Timer node fires. Please note that the timer observer callback executes on the render thread",
"name": "fire",
"type": "Event"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "If set to true, the Timer node fires repeatedly, each time the specified duration field value elapses. If set to false, the Timer node only fires once until restarted",
"name": "repeat",
@@ -5354,35 +5354,35 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"\"",
"description": "Specifies the field to interpolate. The string should contain the ID of a node in the scene and the name of a field of that node, separated by a dot \".\". For example, \"title.width\" would indicate that the interpolator should be applied to the width field of a node whose id field was \"title\". The specified field must be of type float",
"name": "fieldToInterp",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "0.0",
"description": "Specifies the percentage to be used to compute a value for the field",
"name": "fraction",
"type": "float"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies the key percentages for the interpolator's keyframes. Each key percentage should be a unique value from 0 to 1 indicating the percentage of the animation where the keyValue should occur. Behavior is undefined if the number of values in the key field does not match the number of values in the keyValue field",
"name": "key",
"type": "array of float's"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\[ \\]",
+ "accessPermission": "READ_WRITE",
+ "default": "[ ]",
"description": "Specifies the key values or the interpolator's keyframes. Each value in the keyValue array corresponds to a value in the key field's array. The interpolator's behavior is undefined if the number of values in the key field does not match the number of values in the keyValue field",
"name": "keyValue",
"type": "array of float's"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Enables animation to be played in reverse.",
"name": "reverse",
@@ -5402,35 +5402,35 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "NULL",
"description": "The ContentNode node with the \\[Content Meta-Data\\](/docs/developer-program/getting-started/architecture/content-metadata.md) for the video, or a video playlist (a sequence of videos) to be played. If a video playlist is to be played, the children of this ContentNode node comprise the playlist, and each ContentNode child must have all attributes required to play that video. For example, if the videos \"A\" and \"B\" are to be played, three ContentNode nodes must be created: the parent ContentNode (which is largely ignored), one ContentNode child for \"A,\" and one ContentNode child for \"B.\" The parent node is set into this content field, and when video playback is started, all of its children will be played in sequence. Any changes made to the playlist after playback has started are ignored. See the \\`contentIsPlaylist\\` and \\`contentIndex\\` fields, for more information on playlists.",
"name": "content",
"type": "ContentNode"
},
{
- "accessPermission": "READ\\_ONLY",
- "default": "\\-1",
+ "accessPermission": "READ_ONLY",
+ "default": "-1",
"description": "The index of the video in the video playlist that is currently playing. Generally, you would only want to check this field if video playlists are enabled (by setting the \\`contentIsPlaylist\\` field to true), but it is set to 0 when a single video is playing, and video playlists are not enabled.",
"name": "contentIndex",
"type": "integer"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "If set to true, enables video playlists (a sequence of videos to be played). See the \\`content\\` and \\`contentIndex\\` field for more information on playlists.",
"name": "contentIsPlaylist",
"type": "Boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "none",
"description": "Sets the desired play state for the video, such as starting or stopping the video play. Getting the value of this field returns the most recent value set, or none if no value has been set. To dynamically monitor the actual state of the video, see the \\`state\\` field. The play and stop commands to commence and discontinue playback should not be used to implement trick modes like rewind, or replay. For that use the \\`seek\\` field.\n\n| Option | Effect |\n| --- | --- |\n| none | No play state set |\n| play | Start video play |\n| stop | Stop video play |\n| pause | Pause video play |\n| resume | Resume video play after a pause |\n| replay | Replay video |\n| prebuffer | Starts buffering the video stream before the Video node actually begins playback. Only one video stream can be buffering in the application at any time. Setting the `control` field to `prebuffer` for another video stream after setting `prebuffer` for a previous video stream stops the buffering of the previous video stream. |\n| skipcontent | Skip the currently-playing content and begin playing the next content in the playlist. If the content is not a playlist, or if the current content is the end of the playlist, this will end playback. |",
"name": "control",
"type": "option string"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "0",
"description": "The error code associated with the video play error set in the \\`state\\` field. Use the \\*\\*errorStr\\*\\* and and \\*\\*errorInfo\\*\\* fields for more descriptive diagnostic information to help identify and resolve the cause of the error.",
"name": "errorCode",
@@ -5444,7 +5444,7 @@
"type": "roAssociativeArray"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "",
"description": "An error message describing the video play error set in the \\`state\\` field. Use the \\*\\*errorStr\\*\\* and and \\*\\*errorInfo\\*\\* fields for more descriptive diagnostic information to help identify and resolve the cause of the error.",
"name": "errorMsg",
@@ -5458,28 +5458,28 @@
"type": "string"
},
{
- "accessPermission": "READ\\_ONL",
+ "accessPermission": "READ_ONL",
"default": "",
"description": "Indicates whether the DRM license was acquired. If a failure occurs, this field provides additional details about the error. The roAssociativeArray contains the following fields:\n\n| Key | Type | Value |\n| --- | --- | --- |\n| response | string | The server response. If a license is not retrieved, the response is empty and the HTTP response code is returned instead. |\n| status | string | The HTTP response code. |\n| keysystem | string | The DRM technology used. |\n| duration | string | The total time elapsed in sending a request to the license server and receiving a response (in milliseconds). |",
"name": "licenseStatus",
"type": "roAssociativeArray"
},
{
- "accessPermission": "READ\\_WRITE",
- "default": "\\-1",
+ "accessPermission": "READ_WRITE",
+ "default": "-1",
"description": "If the \\`contentIsPlaylist\\` field is set to true to enable video playlists, sets the index of the next video in the playlist to be played. Setting this field does not immediately change the video being played, but takes effect when the current video is completed or skipped. By default, this value is -1, which performs the default index increment operation. After the video specified by the index in this field begins playing, the field is set to the default -1 again, so the next video played will be set by the default index increment operation unless the field is set again to a different index.",
"name": "nextContentIndex",
"type": "integer"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "",
"description": "Provides timing measurements related to the start of video playback. All measurements are in seconds. The roAssociativeArray contains the following fields:\n\n| Field | Type | Access Permission | Description |\n| --- | --- | --- | --- |\n| total\\_dur | float | READ\\_ONLY | Total video start duration. |\n| manifest\\_dur | float | READ\\_ONLY | Manifest download and parsing. |\n| drm\\_load\\_dur | float | READ\\_ONLY | DRM system initialization. |\n| drm\\_lic\\_acq\\_dur | float | READ\\_ONLY | License acquisition. This typically includes interactions with the license server. |\n| prebuf\\_dur | float | READ\\_ONLY | Prebuffer content. |\n| manifest\\_start (_Available since Roku OS 10.0_) | Float | READ\\_ONLY | Point at which manifest download and parsing begins. |\n| drm\\_load\\_start (_Available since Roku OS 10.0_) | Float | READ\\_ONLY | Point at which DRM system initialization begins. |\n| drm\\_lic\\_acq\\_start (_Available since Roku OS 10.0_) | Float | READ\\_ONLY | Point at which license acquisition begins. |\n| prebuf\\_start (_Available since Roku OS 10.0_) | Float | READ\\_ONLY | Point at which content pre-buffering begins. |\n\n\\> The \\\\\\_start fields correspond to the similarly named \\\\\\_dur (duration) fields in this structure. In each case, the \\\\\\_start point is the number of milliseconds elapsed from the initialization of the media player (t=0.000). If required, ending points for each interval can be derived from its associated starting-point and duration.",
"name": "playStartInfo _Available since Roku OS 9.3_",
"type": "roAssociativeArray"
},
{
- "accessPermission": "READ\\_ONLY",
+ "accessPermission": "READ_ONLY",
"default": "none",
"description": "Describes the current video play state, such as if the video play has been paused.\n\n| Value | Meaning |\n| --- | --- |\n| none | No current play state |\n| buffering | Video stream is currently buffering |\n| playing | Video is currently playing |\n| paused | Video is currently paused |\n| stopped | Video is currently stopped |\n| finished | Video has successfully completed playback |\n| error | An error has occurred in the video play. The error code, message, and diagnostics can be found in the `errorCode`, `errorMsg`, and `errorStr` fields respectively. |",
"name": "state",
@@ -5500,28 +5500,28 @@
},
"fields": [
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "The direction in which the voice hint tooltip points: \\* true. The voice hint tooltip points right. \\* false. The voice hint tooltip points left.",
"name": "flipVoiceToolTip",
"type": "boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "false",
"description": "Enables the text box to be voice-enabled. In this case, it will display a mic icon and have a voice UI with voice hints.",
"name": "voiceEnabled",
"type": "boolean"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "\"generic\"",
"description": "The type of voice entry mode to be used: \\* \"email\": letter-by-letter dictation for emails. \\* \"numeric\": letter-by-letter dictation for PIN codes, zip codes, and other numeric input. \\* \"alphanumeric\": letter-by-letter dication for street addresses or other sequences of numbers and letters. \\* \"generic\": Full word input for search queries or other sequences of numbers, letters and symbols. \\* \"password\": letter-by-letter dication for passwords.",
"name": "voiceEntryType",
"type": "string"
},
{
- "accessPermission": "READ\\_WRITE",
+ "accessPermission": "READ_WRITE",
"default": "FHD: 321HD: 214",
"description": "The maximum width of the voice hint tootip. The height scales based on the specified width.",
"name": "voiceToolTipWidth",
@@ -5587,11 +5587,13 @@
{
"params": [
{
+ "default": null,
"isRequired": true,
"name": "size",
"type": "Integer"
},
{
+ "default": null,
"isRequired": true,
"name": "resizeAs",
"type": "Boolean"
@@ -5758,6 +5760,7 @@
{
"params": [
{
+ "default": null,
"isRequired": true,
"name": "bitmapProps",
"type": "Object"
@@ -5768,6 +5771,7 @@
{
"params": [
{
+ "default": null,
"isRequired": true,
"name": "filename",
"type": "String"
@@ -6180,6 +6184,7 @@
{
"params": [
{
+ "default": null,
"isRequired": true,
"name": "font",
"type": "String"
@@ -6858,26 +6863,31 @@
{
"params": [
{
+ "default": null,
"isRequired": true,
"name": "bitmap",
"type": "Object"
},
{
+ "default": null,
"isRequired": true,
"name": "x",
"type": "Integer"
},
{
+ "default": null,
"isRequired": true,
"name": "y",
"type": "Integer"
},
{
+ "default": null,
"isRequired": true,
"name": "width",
"type": "Integer"
},
{
+ "default": null,
"isRequired": true,
"name": "height",
"type": "Integer"
@@ -6920,6 +6930,7 @@
{
"params": [
{
+ "default": null,
"isRequired": true,
"name": "section",
"type": "String"
@@ -7858,25 +7869,25 @@
{
"default": "invalid",
"description": "Offset in pixels from the top-left origin of the display. Range 0 to 1280. Screen types: Gr. Example: 592",
- "name": "GridScreenLogoOffsetHD\\_X",
+ "name": "GridScreenLogoOffsetHD_X",
"type": "string"
},
{
"default": "invalid",
"description": "Offset in pixels from the top-left origin of the display. Range 0 to 720. Screen types: Gr. Example: 31",
- "name": "GridScreenLogoOffsetHD\\_Y",
+ "name": "GridScreenLogoOffsetHD_Y",
"type": "string"
},
{
"default": "invalid",
"description": "Offset in pixels from the top-left origin of the display. Range 0 to 720. Screen types: Gr. Example: 324",
- "name": "GridScreenLogoOffsetSD\\_X",
+ "name": "GridScreenLogoOffsetSD_X",
"type": "string"
},
{
"default": "invalid",
"description": "Offset in pixels from the top-left origin of the display. Range 0 to 480. Screen types: Gr. Example: 21",
- "name": "GridScreenLogoOffsetSD\\_Y",
+ "name": "GridScreenLogoOffsetSD_Y",
"type": "string"
},
{
@@ -7966,25 +7977,25 @@
{
"default": "invalid",
"description": "Offset in pixels from the top-left origin of the display films.Range 0 to 1280. Screen types: Co Ke Li Pa Po Se Sp Te. Example: 25",
- "name": "OverhangPrimaryLogoOffsetHD\\_X",
+ "name": "OverhangPrimaryLogoOffsetHD_X",
"type": "string"
},
{
"default": "invalid",
"description": "Offset in pixels from the top-left origin of the display films.Range 0 to 720. Screen types: Co Ke Li Pa Po Se Sp Te. Example: 50",
- "name": "OverhangPrimaryLogoOffsetHD\\_Y",
+ "name": "OverhangPrimaryLogoOffsetHD_Y",
"type": "string"
},
{
"default": "invalid",
"description": "Offset in pixels from the top-left origin of the display films.Range 0 to 720. Screen types: Co Ke Li Pa Po Se Sp Te. Example: 25",
- "name": "OverhangPrimaryLogoOffsetSD\\_X",
+ "name": "OverhangPrimaryLogoOffsetSD_X",
"type": "string"
},
{
"default": "invalid",
"description": "Offset in pixels from the top-left origin of the display films.Range 0 to 480. Screen types: Co Ke Li Pa Po Se Sp Te. Example: 50",
- "name": "OverhangPrimaryLogoOffsetSD\\_Y",
+ "name": "OverhangPrimaryLogoOffsetSD_Y",
"type": "string"
},
{
@@ -8002,25 +8013,25 @@
{
"default": "invalid",
"description": "Offset in pixels from the top-left origin of the display films. Range 0 to 1280. Screen types: Co Ke Li Pa Po Se Sp Te. Example: 25",
- "name": "OverhangSecondaryLogoOffsetHD\\_X",
+ "name": "OverhangSecondaryLogoOffsetHD_X",
"type": "string"
},
{
"default": "invalid",
"description": "Offset in pixels from the top-left origin of the display films. Range 0 to 720. Screen types: Co Ke Li Pa Po Se Sp Te. Example: 50",
- "name": "OverhangSecondaryLogoOffsetHD\\_Y",
+ "name": "OverhangSecondaryLogoOffsetHD_Y",
"type": "string"
},
{
"default": "invalid",
"description": "Offset in pixels from the top-left origin of the display films. Range 0 to 720. Screen types: Co Ke Li Pa Po Se Sp Te. Example: 25",
- "name": "OverhangSecondaryLogoOffsetSD\\_X",
+ "name": "OverhangSecondaryLogoOffsetSD_X",
"type": "string"
},
{
"default": "invalid",
"description": "Offset in pixels from the top-left origin of the display films. Range 0 to 480. Screen types: Co Ke Li Pa Po Se Sp Te. Example: 50",
- "name": "OverhangSecondaryLogoOffsetSD\\_Y",
+ "name": "OverhangSecondaryLogoOffsetSD_Y",
"type": "string"
},
{
@@ -8376,7 +8387,7 @@
"description": "Key-value pairs specifying the playback experience upon launching the channel. For example, if deep linking parameters are passed into the method, the content ID specifies the content to be played upon launching the channel, and the mediaType determines whether the content is launched directly into playback, launched into playback using bookmarks, or an episode selection screen for the content is displayed). To launch the channel store springboard of a channel, use the **ShowChannelStoreSpringboard()** method. You can also do this by passing a channelID of \"11\" is passed into this method (`LaunchApp(\"11\", \"\", params)`). In this case, the params field would include a content ID (`params = {contentID: \"myAwesomeMovie_123\"}`).",
"isRequired": true,
"name": "params",
- "type": "roAssociative Array"
+ "type": "roAssociativeArray"
}
],
"returnType": "Void"
@@ -8745,9 +8756,10 @@
"description": "Items are arbitrarily grouped by comparable type of number or string, and are sorted within the group with a logical comparison. If \"r\" is included in flags, a reverse sort is performed. If \"i\" is included in flags, a case-insensitive sort is performed. If invalid flags are specified, the sort is not performed.",
"isRequired": true,
"name": "flags",
- "type": "Dynamic"
+ "type": "String"
}
- ]
+ ],
+ "returnType": "Void"
},
{
"description": "Performs a stable sort of an array of associative arrays by value of a common field.",
@@ -8765,9 +8777,10 @@
"description": "Items are arbitrarily grouped by comparable type of number or string, and are sorted within the group with a logical comparison. If \"r\" is included in flags, a reverse sort is performed. If \"i\" is included in flags, a case-insensitive sort is performed. If invalid flags are specified, the sort is not performed.",
"isRequired": true,
"name": "flags",
- "type": "Dynamic"
+ "type": "String"
}
- ]
+ ],
+ "returnType": "Void"
}
],
"name": "ifArraySort",
@@ -8820,7 +8833,8 @@
"name": "aa",
"type": "Object"
}
- ]
+ ],
+ "returnType": "Void"
},
{
"description": "Remove all key/values from the associative array.",
@@ -8933,7 +8947,8 @@
{
"description": "Interrupts and stops any current text to speech spoken string, to be used when the application does not want the text to speech to continue.",
"name": "Flush",
- "params": []
+ "params": [],
+ "returnType": "Void"
},
{
"description": "Returns an ID for the spoken string to notify observer callbacks about a specific spoken string. This ID can be used with the [roTextToSpeechEvent](https://developer.roku.com/docs/references/brightscript/events/rotexttospeechevent.md\"roTextToSpeechEvent\").This method will automatically split up text to reduce lag. Due to this automatic splitting, the roTextToSpeechEvent 0 (\"Started speech\") event for the returned ID may not be sent until later than expected. The roTextToSpeechEvents 1 (\"Speech has completed\") and 2 (\"Speech has been flushed\") events are sent at the expected times.",
@@ -9145,10 +9160,13 @@
"params": [
{
"default": null,
+ "description": "The set of keys to be received from the timedMetaData event. If the keys array is empty, all the timed metadata associated with the current stream is sent with the isTimedMetaData event. If the keys array is invalid, then do not return any keys to the BrightScript channel. Any keys not specified with this method are deleted by the Roku OS and never returned to the BrightScript application.",
"isRequired": true,
- "name": "keys"
+ "name": "keys",
+ "type": "Dynamic"
}
- ]
+ ],
+ "returnType": "Void"
},
{
"description": "Stops the Audio Player from playing or pausing and cleanup.",
@@ -9311,11 +9329,21 @@
},
{
"default": null,
+ "description": "The position in the file from which to start appending bytes.",
+ "isRequired": true,
+ "name": "start_pos",
+ "type": "Integer"
+ },
+ {
+ "default": null,
+ "description": "The length of the bytes to be appended to the Byte Array, starting from the specified starting position.",
"isRequired": true,
- "name": "start"
+ "name": "length",
+ "type": "Integer"
}
],
- "returnDescription": "A flag indicating whether the file was successfully appended to the calling ByteArray."
+ "returnDescription": "A flag indicating whether the file was successfully appended to the calling ByteArray.",
+ "returnType": "Boolean"
},
{
"description": "Sets the contents of the Byte Array to the specified string using UTF-8 encoding. Any data currently in the Byte Array is discarded.",
@@ -9328,7 +9356,8 @@
"name": "s",
"type": "String"
}
- ]
+ ],
+ "returnType": "Void"
},
{
"description": "Sets the contents of the Byte Array to the specified value. Any data currently in the Byte Array is discarded.",
@@ -9452,11 +9481,21 @@
},
{
"default": null,
+ "description": "The index of the file from which to start reading bytes.",
"isRequired": true,
- "name": "start"
+ "name": "start_pos",
+ "type": "Integer"
+ },
+ {
+ "default": null,
+ "description": "The length of the bytes to be read from the file, starting from the specified starting position.",
+ "isRequired": true,
+ "name": "length",
+ "type": "Integer"
}
],
- "returnDescription": "A flag indicating whether the bytes were successfully read into the Byte Array."
+ "returnDescription": "A flag indicating whether the bytes were successfully read into the Byte Array.",
+ "returnType": "Boolean"
},
{
"description": "If the size of the Byte Array is less than min\\_size, expands the Byte Array to min\\_size. Also sets the auto-resize attribute of the Byte Array to the specified value.",
@@ -9464,10 +9503,20 @@
"params": [
{
"default": null,
+ "description": "The minimum size to which the calling Byte Array is to be expanded.",
"isRequired": true,
- "name": "min"
+ "name": "min_size",
+ "type": "Integer"
+ },
+ {
+ "default": null,
+ "description": "A flag specifying whether auto resize is enabled on the calling Byte Array.",
+ "isRequired": true,
+ "name": "auto_resize",
+ "type": "Boolean"
}
- ]
+ ],
+ "returnType": "Void"
},
{
"description": "Returns the contents of the Byte Array as a string. The contents must be valid UTF-8 (or ASCII subset), or the result is undefined",
@@ -9518,11 +9567,21 @@
},
{
"default": null,
+ "description": "The index of the calling ByteArray from which to start writing bytes.",
"isRequired": true,
- "name": "start"
+ "name": "start_index",
+ "type": "Integer"
+ },
+ {
+ "default": null,
+ "description": "The length of the bytes to be written to the file, starting from the specified index.",
+ "isRequired": true,
+ "name": "length",
+ "type": "Integer"
}
],
- "returnDescription": "A flag indicating whether the bytes were successfully written to the file."
+ "returnDescription": "A flag indicating whether the bytes were successfully written to the file.",
+ "returnType": "Boolean"
}
],
"name": "ifByteArray",
@@ -9595,7 +9654,10 @@
"description": "The [roScreen](https://developer.roku.com/docs/references/brightscript/components/roscreen.md or [roImageCanvas](https://developer.roku.com/docs/references/brightscript/components/roimagecanvas.md instance to be associated with this caption renderer.",
"isRequired": true,
"name": "screen",
- "type": "roScreen or roImageCanvas"
+ "type": [
+ "roScreen",
+ "roImageCanvas"
+ ]
}
],
"returnType": "Void"
@@ -9648,7 +9710,7 @@
"description": "The product identifier.",
"isRequired": true,
"name": "code",
- "type": "String"
+ "type": "Object"
},
{
"default": null,
@@ -9761,14 +9823,14 @@
"params": [
{
"default": null,
- "description": "Each roAssociativeArray in the roList contains the following fields: Name | Type | Description |
---|
code | String | The product identifier |
qty | Integer | The quantity purchased |
",
+ "description": "Each roAssociativeArray in the roList contains the following fields: \n| Name | Type | Description |\n| ---- | ------- | ---------------------- |\n| code | String | The product identifier |\n| qty | Integer | The quantity purchased |\n",
"isRequired": true,
"name": "order",
- "type": "roList of roAssociativeArray items"
+ "type": "roList"
},
{
"default": null,
- "description": "_Available since Roku OS 9.3_ This parameter is used for subscription upgrades and downgrades. If it is not specified, the action is a product purchase. It contains the following fields: Name | Type | Description |
---|
action | String | The action to be performed, which may be one of the following:- \"Upgrade\": The order is an upgrade from one subscription product to another.
- \"Downgrade\": The order is a subscription downgrade.
|
**Example** ``` m.store = CreateObject(\"roChannelStore\") ' Populate myOrderItems myOrderInfo.action = \"Upgrade\" m.store.setOrder(myOrderItems, myOrderInfo) ``` See [On-device upgrade and downgrade](/docs/developer-program/roku-pay/implementation/on-device-upgrade-downgrade.md#calling-the-roku-web-service-validate-transaction-api) for how to implement Roku Pay web services for upgrades/downgrades.",
+ "description": "_Available since Roku OS 9.3_ This parameter is used for subscription upgrades and downgrades. If it is not specified, the action is a product purchase. It contains the following fields: \n| Name | Type | Description |\n| ------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| action | String | The action to be performed, which may be one of the following:\"Upgrade\": The order is an upgrade from one subscription product to another.\"Downgrade\": The order is a subscription downgrade. |\n **Example** ``` m.store = CreateObject(\"roChannelStore\") ' Populate myOrderItems myOrderInfo.action = \"Upgrade\" m.store.setOrder(myOrderItems, myOrderInfo) ``` See [On-device upgrade and downgrade](/docs/developer-program/roku-pay/implementation/on-device-upgrade-downgrade.md#calling-the-roku-web-service-validate-transaction-api) for how to implement Roku Pay web services for upgrades/downgrades.",
"isRequired": true,
"name": "orderInfo",
"type": "roAssociativeArray"
@@ -9891,12 +9953,18 @@
"params": [
{
"default": null,
- "description": "The second location value.",
"isRequired": true,
- "name": "String",
- "type": "location2"
+ "name": "location1",
+ "type": "String"
+ },
+ {
+ "default": null,
+ "isRequired": true,
+ "name": "location2",
+ "type": "String"
}
- ]
+ ],
+ "returnType": "Void"
},
{
"description": "Sets the registration code (e.g. XM3RT) or text (e.g. retrieving…) to be displayed on the screen.",
@@ -10106,7 +10174,7 @@
"params": [
{
"default": null,
- "description": "Format |
---|
long-date |
short-weekday |
no-weekday |
short-month |
short-month-short-weekday |
short-month-no-weekday |
short-date |
short-date-dashes |
",
+ "description": "\n| Format |\n| ------------------------- |\n| long-date |\n| short-weekday |\n| no-weekday |\n| short-month |\n| short-month-short-weekday |\n| short-month-no-weekday |\n| short-date |\n| short-date-dashes |\n",
"isRequired": true,
"name": "format",
"type": "String"
@@ -10285,11 +10353,14 @@
"params": [
{
"default": null,
+ "description": "An associative array with the audio format to be checked. The general format of the associative arrays for CanDecodeAudio() is similar to the parameter and return associative arrays used in [CanDecodeVideo()](https://developer.roku.com/docs/references/brightscript/interfaces/ifdeviceinfo.mdcandecodevideovideo_format-as-object-as-object): \n| Key | Type | Value | Requirement |\n| ---------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |\n| Codec | string | Specifies the audio codec: “aac”, “ac3”, “eac3”, \"alac\", \"flac\", “mp2”, “mp3”, “vorbis”, “wma”, “wma pro”, “dts” | Required |\n| Profile | string | Specifies the codec profile:CodecProfile\"h.265/h.265\"\"main\", \"high\", \"main 10\"\"vp9\"\"profile 0\", \"profile 2\"\"AAC codec profiles\"\"mp2 lc\", \"mp4 he\" | Optional |\n| Level | String | Specifies the codec level:CodecLevel\"h.265/h.265\"4.1, 4.2, 5.0, 5.1\"vp9\"3.0, 3.1, 4.0, 4.1, 5.0, 5.1 | Optional |\n| ChCnt | integer | Specifies the required number of audio channels | Optional |\n| PassThru | integer | Specifies whether the bitstream needs to be decoded on the device. By default, this reports the codec properties of both the Roku device and the attached HDMI device.You can filter the values returned by including one of the following options:**0** \\- Reports only codecs that are supported on the Roku device itself.**1** \\- Reports only codecs of the attached HDMI device (for example, an audio receiver). | Optional |\n| Atmos | Integer | Specifies whether atmos is required. Include 'atmos=1' if it is. | Optional |\n| SampleRate | integer | Specifies the sample rate | Optional |\n| BitRate | integer | Specifies the bit rate in Kbit/sec | Optional |\n| Container | string | Specifies the container format | Optional |\n",
"isRequired": true,
- "name": "audio"
+ "name": "audio_format",
+ "type": "Object"
}
],
- "returnDescription": "An associative array that includes a flag indicating whether the audio format can be played, and the closest audio format supported by the device."
+ "returnDescription": "An associative array that includes a flag indicating whether the audio format can be played, and the closest audio format supported by the device.",
+ "returnType": "Object"
},
{
"description": "Checks whether the device can decode and play the specified video format.",
@@ -10297,11 +10368,14 @@
"params": [
{
"default": null,
+ "description": "An associative array with the following key/value pairs specifying the video format to be checked: \n| Key | Type | Value | Requirement |\n| --------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |\n| Codec | string | Specifies the video codec:CodecProfileLevel\"mpeg2\"n/a\"main\", \"high\"\"mpeg4 avc\" 1\"main\", \"high\"\"4.1\", \"4.2\"\"hevc\" 1\"main\", \"main 10\"\"4.1\", \"5.0\", \"5.1\"\"vp9\" 1\"profile 0\", \"profile 2\"\"4.1\", \"5.0\", \"5.1\" | Required |\n| Profile | string | Specifies the profile | Optional |\n| Level | string | Specifies the level | Optional |\n| Container | string | Specifies the container format: “mp4”, “hls”, “mkv”, “ism”, “dash”, “ts” | Optional |\n",
"isRequired": true,
- "name": "video"
+ "name": "video_format",
+ "type": "Object"
}
],
- "returnDescription": "An associative array that includes a flag indicating whether the video format can be played, and the closest video format supported by the device."
+ "returnDescription": "An associative array that includes a flag indicating whether the video format can be played, and the closest video format supported by the device.",
+ "returnType": "Object"
},
{
"description": "Notifies the channel when a system overlay event (such as the [confirm partner button HUD](/docs/developer-program/getting-started/architecture/channel-manifest.md#special-purpose-attributes) or the caption control overlay) is displayed. This notification gives the channel the opportunity to do any processing they may want to when the channel loses or regains focus.",
@@ -10345,7 +10419,8 @@
"type": "Boolean"
}
],
- "returnDescription": "A flag indicating whether codec change event notifications are enabled (true) or disabled (false)."
+ "returnDescription": "A flag indicating whether codec change event notifications are enabled (true) or disabled (false).",
+ "returnType": "Void"
},
{
"description": "Notifies the channel when an internet connection status event occurs. This function enables the sending of an [roDeviceInfoEvent](https://developer.roku.com/docs/references/brightscript/events/rodeviceinfoevent.md) when the network connection status changes, as indicated by `roDeviceInfoEvent.internetStatus`. To receive events, the channel must have first called [SetMessagePort](https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md) on the roDeviceInfo object specifying the message port that is to receive the events.",
@@ -12732,7 +12807,7 @@
"params": [
{
"default": null,
- "description": "An roArray of roAssociativeArrays, where each associative array represents a cookie to be added. Each associative array must contain the following key-value pairs: Name | Type | Description |
---|
Version | Integer | Cookie version number |
Domain | String | Domain to which cookie applies |
Path | String | Path to which cookie applies |
Name | String | Name of the cookie |
Value | String | Value of the cookie |
Expires | roDateTime | Cookie expiration date, if any |
",
+ "description": "An roArray of roAssociativeArrays, where each associative array represents a cookie to be added. Each associative array must contain the following key-value pairs: \n| Name | Type | Description |\n| ------- | ---------- | ------------------------------ |\n| Version | Integer | Cookie version number |\n| Domain | String | Domain to which cookie applies |\n| Path | String | Path to which cookie applies |\n| Name | String | Name of the cookie |\n| Value | String | Value of the cookie |\n| Expires | roDateTime | Cookie expiration date, if any |\n",
"isRequired": true,
"name": "cookies",
"type": "Object"
@@ -13125,10 +13200,12 @@
{
"default": null,
"isRequired": true,
- "name": "roAssociativeArray"
+ "name": "aa",
+ "type": "roAssociativeArray"
}
],
- "returnDescription": "A flag indicating whether the event response operation was successful."
+ "returnDescription": "A flag indicating whether the event response operation was successful.",
+ "returnType": "Void"
},
{
"description": "Returns the message port (if any) currently associated with the object.",
@@ -13740,7 +13817,7 @@
"description": "The longinteger value to be set on the calling Longinteger object.",
"isRequired": true,
"name": "value",
- "type": "Longinteger"
+ "type": "LongInteger"
}
],
"returnType": "Void"
@@ -15374,10 +15451,9 @@
"params": [
{
"default": null,
- "description": "An associative array with key-value pairs to be updated.",
"isRequired": true,
- "name": "roAssociativeArray",
- "type": "Object"
+ "name": "Object",
+ "type": "roAssociativeArray"
}
],
"returnDescription": "A flag indicating whether the values were successfully updated.",
@@ -15447,7 +15523,7 @@
"description": "The roByteArray to be signed. Errors will be printed in the BrightScript console. If the digest algorithm is not set (using SetDigestAlgorithm) before calling Sign(), the digest is not encapsulated. This would be equivalent to simply calling the openssl function RSA\\_private\\_encrypt()",
"isRequired": true,
"name": "digest",
- "type": "roByteArray Object"
+ "type": "roByteArray"
}
],
"returnDescription": "An roByteArray containing the signature, or invalid if an error occurred. Typical values include the following:",
@@ -15462,14 +15538,14 @@
"description": "The digest to be verified.",
"isRequired": true,
"name": "digest",
- "type": "roByteArray Object"
+ "type": "roByteArray"
},
{
"default": null,
"description": "The signature to be verified.",
"isRequired": true,
"name": "signature",
- "type": "roByteArray Object"
+ "type": "roByteArray"
}
],
"returnDescription": "Indicates the result of the validation. This may be one of the following values:",
@@ -15863,11 +15939,14 @@
"params": [
{
"default": null,
+ "description": "An roArray of child nodes to be appended to the subject node.",
"isRequired": true,
- "name": "child"
+ "name": "child_nodes",
+ "type": "Object"
}
],
- "returnDescription": "A flag indicating whether the children nodes were successfully appended."
+ "returnDescription": "A flag indicating whether the children nodes were successfully appended.",
+ "returnType": "Boolean"
},
{
"description": "Creates a child node of type nodeType, and adds the new node to the end of the subject node list of children.",
@@ -15890,11 +15969,21 @@
"params": [
{
"default": null,
+ "description": "Number of new child nodes to be created.",
+ "isRequired": true,
+ "name": "num_children",
+ "type": "Integer"
+ },
+ {
+ "default": null,
+ "description": "Node type or extended type of the new child nodes to be created.",
"isRequired": true,
- "name": "num"
+ "name": "subtype",
+ "type": "String"
}
],
- "returnDescription": "An roArray containing the new child nodes created."
+ "returnDescription": "An roArray containing the new child nodes created.",
+ "returnType": "Object"
},
{
"description": "Returns an array with every existing node created by the currently running channel.",
@@ -15938,11 +16027,21 @@
"params": [
{
"default": null,
+ "description": "The number of child nodes to be retrieved.",
"isRequired": true,
- "name": "num"
+ "name": "num_children",
+ "type": "Integer"
+ },
+ {
+ "default": null,
+ "description": "The starting position in the child node tree where the specified number of nodes are to be retrieved.",
+ "isRequired": true,
+ "name": "index",
+ "type": "Integer"
}
],
- "returnDescription": "An roArray containing the child nodes retrieved. If num\\_children is -1, all the child nodes are returned."
+ "returnDescription": "An roArray containing the child nodes retrieved. If num\\_children is -1, all the child nodes are returned.",
+ "returnType": "Object"
},
{
"description": "Returns the parent node of a node has been added to a list of children.",
@@ -15977,11 +16076,21 @@
"params": [
{
"default": null,
+ "description": "An roArray of child nodes to be inserted in the tree.",
"isRequired": true,
- "name": "child"
+ "name": "child_nodes",
+ "type": "Object"
+ },
+ {
+ "default": null,
+ "description": "The position in the tree where to insert the child nodes.",
+ "isRequired": true,
+ "name": "index",
+ "type": "Integer"
}
],
- "returnDescription": "A flag indicating whether the children nodes were successfully inserted."
+ "returnDescription": "A flag indicating whether the children nodes were successfully inserted.",
+ "returnType": "Boolean"
},
{
"description": "If the subject node has a child node in the index position, removes that child node from the subject node list of children.",
@@ -16004,11 +16113,14 @@
"params": [
{
"default": null,
+ "description": "An roArray of child nodes to removed from the tree",
"isRequired": true,
- "name": "child"
+ "name": "child_nodes",
+ "type": "Object"
}
],
- "returnDescription": "A flag indicating whether the children nodes were successfully removed."
+ "returnDescription": "A flag indicating whether the children nodes were successfully removed.",
+ "returnType": "Boolean"
},
{
"description": "Removes a specific number of child nodes from the subject node starting at a specific position.",
@@ -16016,11 +16128,21 @@
"params": [
{
"default": null,
+ "description": "The number of child nodes to be removed.",
+ "isRequired": true,
+ "name": "num_children",
+ "type": "Integer"
+ },
+ {
+ "default": null,
+ "description": "The starting position in the child node tree where the specified number of nodes are to be removed.",
"isRequired": true,
- "name": "num"
+ "name": "index",
+ "type": "Integer"
}
],
- "returnDescription": "A flag indicating whether the children nodes were successfully removed."
+ "returnDescription": "A flag indicating whether the children nodes were successfully removed.",
+ "returnType": "Boolean"
},
{
"description": "Replaces the child nodes in the subject node, starting at the position specified by index, with new child nodes specified by child\\_nodes",
@@ -16028,11 +16150,21 @@
"params": [
{
"default": null,
+ "description": "An roArray of child nodes to replace the nodes in the tree.",
"isRequired": true,
- "name": "child"
+ "name": "child_nodes",
+ "type": "Object"
+ },
+ {
+ "default": null,
+ "description": "The starting position in the tree from where to replace the child nodes.",
+ "isRequired": true,
+ "name": "index",
+ "type": "Integer"
}
],
- "returnDescription": "A flag indicating whether the children nodes were successfully replaced."
+ "returnDescription": "A flag indicating whether the children nodes were successfully replaced.",
+ "returnType": "Boolean"
}
],
"name": "ifSGNodeChildren",
@@ -16263,9 +16395,17 @@
"isRequired": true,
"name": "functionName",
"type": "String"
+ },
+ {
+ "default": null,
+ "description": "Optional. Names of \"context\" field values to be reported via getInfo() when the monitored field changes.",
+ "isRequired": false,
+ "name": "infoFields",
+ "type": "Object"
}
],
- "returnDescription": "A flag indicating whether the value of the field being monitored changes."
+ "returnDescription": "A flag indicating whether the value of the field being monitored changes.",
+ "returnType": "Boolean"
},
{
"description": "This overloaded form sends an [roSGNodeEvent](https://developer.roku.com/docs/references/brightscript/components/rosgnode.md\"roSGNodeEvent\") message to the [roMessagePort](https://developer.roku.com/docs/references/brightscript/components/romessageport.md\"roMessagePort\") identified by port when the subject node field identified by fieldName changes value.",
@@ -16284,9 +16424,17 @@
"isRequired": true,
"name": "port",
"type": "Object"
+ },
+ {
+ "default": null,
+ "description": "Optional. Names of \"context\" field values to be reported via getInfo() when the monitored field changes.",
+ "isRequired": false,
+ "name": "infoFields",
+ "type": "Object"
}
],
- "returnDescription": "A flag indicating whether the value of the field being monitored changes."
+ "returnDescription": "A flag indicating whether the value of the field being monitored changes.",
+ "returnType": "Boolean"
},
{
"description": "Sets up a connection between the observed node's field and the current component from which this call is made. This method is similar to the [observeField()](https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodefield.mdobservefieldfieldname-as-string-functionname-as-string-as-boolean \"observeField(fieldName as String, functionName as String)\") method.",
@@ -16305,9 +16453,17 @@
"isRequired": true,
"name": "functionName",
"type": "String"
+ },
+ {
+ "default": null,
+ "description": "Optional. Names of \"context\" field values to be reported via getInfo() when the monitored field changes.",
+ "isRequired": false,
+ "name": "infoFields",
+ "type": "Object"
}
],
- "returnDescription": "A flag indicating whether the value of the field has changed."
+ "returnDescription": "A flag indicating whether the value of the field has changed.",
+ "returnType": "Boolean"
},
{
"description": "Sets up a connection between the observed node's field and the current component from which this call is made. This method is similar to the [observeField()](https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodefield.mdobservefieldfieldname-as-string-functionname-as-string-as-boolean \"observeField(fieldName as String, functionName as String)\") method.",
@@ -16326,9 +16482,17 @@
"isRequired": true,
"name": "port",
"type": "Object"
+ },
+ {
+ "default": null,
+ "description": "Optional. Names of \"context\" field values to be reported via getInfo() when the monitored field changes.",
+ "isRequired": false,
+ "name": "infoFields",
+ "type": "Object"
}
],
- "returnDescription": "A flag indicating whether the value of the field has changed."
+ "returnDescription": "A flag indicating whether the value of the field has changed.",
+ "returnType": "Boolean"
},
{
"description": "Makes subsequent operations on the node fields to queue on the node itself rather than on the [Scene](https://developer.roku.com/docs/references/scenegraph/scene.md\"Scene\") node render thread. This prevents the operations from being executed immediately.",
@@ -16534,11 +16698,14 @@
"params": [
{
"default": null,
+ "description": "The roHttpAgent object to be set for the node.",
"isRequired": true,
- "name": "HTTP"
+ "name": "HTTP_agent",
+ "type": "Object"
}
],
- "returnDescription": "A flag indicating whether the roHttpAgent object was successfully set."
+ "returnDescription": "A flag indicating whether the roHttpAgent object was successfully set.",
+ "returnType": "Boolean"
}
],
"name": "ifSGNodeHttpAgentAccess",
@@ -18712,11 +18879,21 @@
"params": [
{
"default": null,
+ "description": "The position in the roString object from which to start looking for and returning the **substring**.",
"isRequired": true,
- "name": "start"
+ "name": "start_index",
+ "type": "Integer"
+ },
+ {
+ "default": null,
+ "description": "The substring within the roString object to be found.",
+ "isRequired": true,
+ "name": "substring",
+ "type": "String"
}
],
- "returnDescription": "The index of the first instance of the substring within the string, based on the specified starting position."
+ "returnDescription": "The index of the first instance of the substring within the string, based on the specified starting position.",
+ "returnType": "Integer"
},
{
"description": "Returns a string consisting of the first len characters of the string.",
@@ -18746,11 +18923,14 @@
"params": [
{
"default": null,
+ "description": "The position in the roString object from which to return the remaining characters.",
"isRequired": true,
- "name": "start"
+ "name": "start_index",
+ "type": "Integer"
}
],
- "returnDescription": "The string generated by the method."
+ "returnDescription": "The string generated by the method.",
+ "returnType": "String"
},
{
"description": "Returns a string consisting of num\\_chars characters of the string, starting at the zero-based start\\_index. If there are fewer than num\\_chars in the string after start\\_index, returns the remaining characters in the string.",
@@ -18758,10 +18938,20 @@
"params": [
{
"default": null,
+ "description": "The position in the roString object from which to return the number of characters specified by num\\_chars.",
+ "isRequired": true,
+ "name": "start_index",
+ "type": "Integer"
+ },
+ {
+ "default": null,
+ "description": "The number of characters in the remaining part of the roString object to be retrieved.",
"isRequired": true,
- "name": "start"
+ "name": "num_chars",
+ "type": "Integer"
}
- ]
+ ],
+ "returnType": "String"
},
{
"description": "Returns a string consisting of the last len characters of the string.",
@@ -18909,7 +19099,7 @@
"params": [
{
"default": null,
- "description": "The logType to be enabled, which may be one of the following values: Valid logTypes | Description |
---|
\"http.connect\" | Sent whenever a successful HTTP connection is made. This means that the server responded to the HTTP request with a success (2xx) status code. However, this does not necessarily mean that all of the body of the request has been received successfully |
\"http.error\" | Sent whenever an error occurs while executing an HTTP request. This may be sent during the time of the initial connection for two possible reasons:- because the server responded with an error code, or
- data is being read from the body after the initial connection takes place
|
\"bandwidth.minute\" | Sent every minute to report the current measured bandwidth |
“http.complete” | Property/Key | Type | Description |
---|
LogType | String | When enabled, the “http.complete” events will be sent to Roku after an http transfer is completed for adaptive streams. This event consolidates information related to:- a cURL transfer such as DNS look up time,
- connection latency,
- transfer speed,
- and number of bytes.
| DateTime | roDateTime | The GMT time of the event, with a resolution of one millisecond | Url | String | The URL that was requested | OrigUrl | String | The original URL. If the original URL was redirected, then Url represents the new redirected URL and OrigURL the original. OrigURL is included so that it's easy to correlate between events and URLs passed to components | Method | String | The HTTP method. \"GET\", \"POST\", or \"HEAD\" | Status | String | For LogType “http.complete”, this will be “ok” | TargetIp | String | The IP address of the target server | HttpCode | Integer | The HTTP response code if available | ContentType | String | Content type or MIME type | DNSLookupTime | Double | DNS name resolution time in seconds with double precision | ConnectTime | Double | Time taken to connect to the server (seconds) | FirstByteTime | Double | Time taken to receive the first byte from the server (seconds) | TransferTime | Double | Total data transfer time (seconds) | DownloadSpeed | Double | Transfer download speed in bytes per second | BytesDownloaded | Integer | Number of bytes downloaded from the server | UploadSpeed | Double | Transfer upload speed in bytes per second | BytesUploaded | Integer | Number of bytes uploaded to the server |
|
",
+ "description": "The logType to be enabled, which may be one of the following values: \n| Valid logTypes | Description |\n| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \"http.connect\" | Sent whenever a successful HTTP connection is made. This means that the server responded to the HTTP request with a success (2xx) status code. However, this does not necessarily mean that all of the body of the request has been received successfully |\n| \"http.error\" | Sent whenever an error occurs while executing an HTTP request. This may be sent during the time of the initial connection for two possible reasons:because the server responded with an error code, ordata is being read from the body after the initial connection takes place |\n| \"bandwidth.minute\" | Sent every minute to report the current measured bandwidth |\n| “http.complete” | Property/KeyTypeDescriptionLogTypeStringWhen enabled, the “http.complete” events will be sent to Roku after an http transfer is completed for adaptive streams. This event consolidates information related to:a cURL transfer such as DNS look up time,connection latency,transfer speed,and number of bytes.DateTimeroDateTimeThe GMT time of the event, with a resolution of one millisecondUrlStringThe URL that was requestedOrigUrlStringThe original URL. If the original URL was redirected, then Url represents the new redirected URL and OrigURL the original. OrigURL is included so that it's easy to correlate between events and URLs passed to componentsMethodStringThe HTTP method. \"GET\", \"POST\", or \"HEAD\"StatusStringFor LogType “http.complete”, this will be “ok”TargetIpStringThe IP address of the target serverHttpCodeIntegerThe HTTP response code if availableContentTypeStringContent type or MIME typeDNSLookupTimeDoubleDNS name resolution time in seconds with double precisionConnectTimeDoubleTime taken to connect to the server (seconds)FirstByteTimeDoubleTime taken to receive the first byte from the server (seconds)TransferTimeDoubleTotal data transfer time (seconds)DownloadSpeedDoubleTransfer download speed in bytes per secondBytesDownloadedIntegerNumber of bytes downloaded from the serverUploadSpeedDoubleTransfer upload speed in bytes per secondBytesUploadedIntegerNumber of bytes uploaded to the server |\n",
"isRequired": true,
"name": "logType",
"type": "String"
@@ -19330,7 +19520,7 @@
"params": [
{
"default": null,
- "description": "The scaling mode to be used, which may be one of the following values: Value | Scaling mode |
---|
0 | Nearest neighbor (fast). This is the default. |
1 | Bilinear (smooth) |
",
+ "description": "The scaling mode to be used, which may be one of the following values: \n| Value | Scaling mode |\n| ----- | --------------------------------------------- |\n| 0 | Nearest neighbor (fast). This is the default. |\n| 1 | Bilinear (smooth) |\n",
"isRequired": true,
"name": "mode",
"type": "Integer"
@@ -19774,11 +19964,21 @@
"params": [
{
"default": null,
+ "description": "The minimum transfer rate required to transfer data.",
"isRequired": true,
- "name": "bytes"
+ "name": "bytes_per_second",
+ "type": "Integer"
+ },
+ {
+ "default": null,
+ "description": "The interval to be used for averaging bytes\\_per\\_second. For large file transfers and a small bytes\\_per\\_second, averaging over fifteen minutes or even longer might be appropriate. If the transfer is being done over the internet, setting this to a small number because it may cause temporary drops in performance if network problems occur.",
+ "isRequired": true,
+ "name": "period_in_seconds",
+ "type": "Integer"
}
],
- "returnDescription": "A flag indicating whether the operation was successful."
+ "returnDescription": "A flag indicating whether the operation was successful.",
+ "returnType": "Boolean"
},
{
"description": "Changes the request method from the normal GET, HEAD or POST to the value passed as a string.",
@@ -19791,7 +19991,8 @@
"name": "req",
"type": "String"
}
- ]
+ ],
+ "returnType": "Void"
},
{
"description": "Sets the URL to use for the transfer request.",
@@ -20131,10 +20332,13 @@
"params": [
{
"default": null,
+ "description": "An array of timedMetaData keys for the channel to receive from the timedMetaData event. If the keys array is empty, all the timed metadata associated with the current stream is sent with the isTimedMetaData event. If the keys array is invalid, then do not return any keys to the BrightScript channel. Any keys not specified with this method are deleted by the Roku OS and never returned to the BrightScript application.",
"isRequired": true,
- "name": "keys"
+ "name": "keys",
+ "type": "Dynamic"
}
- ]
+ ],
+ "returnType": "Void"
},
{
"description": "Stops playback and resets the seek position; keeps the player’s current position unchanged.",
@@ -20204,10 +20408,13 @@
"params": [
{
"default": null,
+ "description": "The trickplay ID to be used to acknoweldge a resume request event.",
"isRequired": true,
- "name": "Integer"
+ "name": "trickplayid",
+ "type": "Integer"
}
- ]
+ ],
+ "returnType": "Void"
},
{
"description": "Sets the start point of playback for the current video to a specific offset.",
@@ -20298,7 +20505,8 @@
"name": "h",
"type": "Integer"
}
- ]
+ ],
+ "returnType": "Void"
},
{
"description": "Enables guided trickplay mode (the channel takes control of resuming playback after trickplay). This means that the roVideoScreen object no longer resumes playback automatically, but instead waits for an acknowledgment from the channel.",
@@ -20397,10 +20605,13 @@
"params": [
{
"default": null,
+ "description": "An array of timedMetaData keys for the channel to receive from the timedMetaData event. If the keys array is empty, all the timed metadata associated with the current stream is sent with the isTimedMetaData event. If the keys array is invalid, then do not return any keys to the BrightScript channel. Any keys not specified with this method are deleted by the Roku OS and never returned to the BrightScript application.",
"isRequired": true,
- "name": "keys"
+ "name": "keys",
+ "type": "Dynamic"
}
- ]
+ ],
+ "returnType": "Void"
},
{
"description": "Displays/refreshes the screen after creation or state changes.",
@@ -20439,7 +20650,7 @@
"description": "The value of the attribute being added to the element.",
"isRequired": true,
"name": "value",
- "type": "Object"
+ "type": "String"
}
],
"returnType": "Void"
@@ -20514,11 +20725,14 @@
"params": [
{
"default": null,
+ "description": "Specifies whether the output begins with a standard XML declaration specifying UTF-8 encoding.",
"isRequired": true,
- "name": "gen"
+ "name": "gen_header",
+ "type": "Boolean"
}
],
- "returnDescription": "A serialized string."
+ "returnDescription": "A serialized string.",
+ "returnType": "String"
},
{
"description": "Serializes the element to XML document text. The specified header is used to begin the output (for example, as a custom XML declaration).",