From 414568fba61f992b80c184f5d66fb8bad20708ff Mon Sep 17 00:00:00 2001 From: Mark Pearce Date: Fri, 4 Nov 2022 06:17:32 -0300 Subject: [PATCH] Fixes issues with Roku doc scraper and adds missing components (#736) * Fixes issues with Roku doc scraper and adds missing components * Fix failed tests Co-authored-by: Bronley Plumb --- package.json | 4 +- scripts/.cache.json | 2 +- scripts/scrape-roku-docs.ts | 57 +- src/Scope.spec.ts | 10 +- src/roku-types/data.json | 15445 +++++++++++++--------------------- 5 files changed, 5700 insertions(+), 9818 deletions(-) diff --git a/package.json b/package.json index 6e98ad7d9..b230a8c7f 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,9 @@ "dep-graph": "madge --image graph.svg --extensions ts ./src/parser", "docs": "ts-node scripts/compile-doc-examples.ts", "benchmark": "node ./benchmarks/index.js", - "scrape-roku-docs": "ts-node scripts/scrape-roku-docs.ts" + "scrape-roku-docs": "ts-node scripts/scrape-roku-docs.ts", + "rescrape-roku-docs": "rm scripts/.cache.json && ts-node scripts/scrape-roku-docs.ts" + }, "mocha": { "spec": "src/**/*.spec.ts", diff --git a/scripts/.cache.json b/scripts/.cache.json index 70d51f9ca..7f20c3d19 100644 --- a/scripts/.cache.json +++ b/scripts/.cache.json @@ -1 +1 @@ -{"https://developer.roku.com/api/v1/get-dev-cms-doc?filePath=left-nav%2Freferences.json&locale=en-us":"{\n \"content\": \"{\\n \\\"Reference overview\\\":\\\"/docs/references/references-overview.md\\\",\\n\\n \\\"SceneGraph\\\":{\\n \\\"Component functions\\\":{\\n \\\"init()\\\":\\\"/docs/references/scenegraph/component-functions/init.md\\\",\\n \\\"onKeyEvent()\\\":\\\"/docs/references/scenegraph/component-functions/onkeyevent.md\\\"\\n },\\n \\\"XML elements\\\":{\\n \\\"\\\":\\\"/docs/references/scenegraph/xml-elements/component.md\\\",\\n \\\"\\\":\\\"/docs/references/scenegraph/xml-elements/interface.md\\\",\\n \\\"\n\n\n\n\n```", + "description": "Extends [**Group**](https://developer.roku.com/docs/references/scenegraph/layout-group-nodes/group.md\"**Group**\")\n\nThe SimpleLabel node class is used to display a single line of text. SimpleLabel is a lightweight complement to the Label node. It supports simplified font style specification and is more memory efficient than the Label node.\n\nThe SimpleLabel node class supports:\n\n* Specifying either a built-in system font or a TrueType/OpenType font file\n* Specifying the color of the font\n* Customizable Horizontal and Vertical origin\n\nThe following shows a text layout derived from the SimpleLabel node:\n\n![roku815px - simpleLabel node](https://image.roku.com/ZHZscHItMTc2/simplelabel.png \"simplelabel\")\n\nWith ui\\_resolutions=hd specified in the manifest, the following displays the text string \"Application Development Made Easy!\" using the medium bold system font, centered horizontally on display, and with the baseline of the text at the vertical center of the display.\n\n```\n\n\n\n\n\n\n\n\n\n\n\n```", "events": [], "extends": { "name": "Group", @@ -4406,7 +4519,7 @@ { "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.", + "description": "Indicates the index of the selected button when the user selects one of the buttons in the button area.", "name": "buttonSelected", "type": "int" }, @@ -4452,7 +4565,7 @@ }, "standardkeyboarddialog": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [StandardDialog](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog.md\"**Standard Dialog**\")\n\nThe **StandardKeyboardDialog** node enables text and voice entry of strings consisting of alphanumeric characters as well as many commonly used symbols. It is similar to the legacy [KeyboardDialog](https://developer.roku.com/docs/references/scenegraph/dialog-nodes/keyboarddialog.md node, but includes voice entry functionality, which is provided through its internal **DynamicKeyboard** node.\n\n![keyboard-dialog](https://image.roku.com/ZHZscHItMTc2/keyboard-dialog.jpg)", + "description": "_Available since Roku OS 10.0_\n\nExtends [StandardDialog](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog.md\"**Standard Dialog**\")\n\nThe **StandardKeyboardDialog** node enables text and voice entry of strings consisting of alphanumeric characters as well as many commonly used symbols. It is similar to the legacy [KeyboardDialog](https://developer.roku.com/docs/references/scenegraph/dialog-nodes/keyboarddialog.md node, but includes voice entry functionality, which is provided through its internal **DynamicKeyboard** node.\n\n![roku815px - keyboard-dialog](https://image.roku.com/ZHZscHItMTc2/keyboard-dialog.jpg)", "events": [], "extends": { "name": "StandardDialog", @@ -4464,7 +4577,7 @@ "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" + "type": "array of strings" }, { "accessPermission": "Access Permission", @@ -4485,7 +4598,7 @@ "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" + "type": "array of strings" }, { "accessPermission": "READ_WRITE", @@ -4515,7 +4628,7 @@ }, "standardmessagedialog": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [StandardDialog](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog.md\"**Standard Dialog**\")\n\nThe **StandardMessageDialog** node is used to displays a message to the user. It is similar to the legacy [Dialog](https://developer.roku.com/docs/references/scenegraph/dialog-nodes/dialog.md node. It may contain the following items (from top to bottom):\n\n* One or more blocks of text at the top.\n* One bulleted / numbered list.\n* One or more blocks of text at the bottom.\n\n![standard-message-dialog](https://image.roku.com/ZHZscHItMTc2/standard-message-dialog.jpg)", + "description": "_Available since Roku OS 10.0_\n\nExtends [StandardDialog](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog.md\"**Standard Dialog**\")\n\nThe **StandardMessageDialog** node is used to displays a message to the user. It is similar to the legacy [Dialog](https://developer.roku.com/docs/references/scenegraph/dialog-nodes/dialog.md node. It may contain the following items (from top to bottom):\n\n* One or more blocks of text at the top.\n* One bulleted / numbered list.\n* One or more blocks of text at the bottom.\n\n![roku815px - standard-message-dialog](https://image.roku.com/ZHZscHItMTc2/standard-message-dialog.jpg)", "events": [], "extends": { "name": "StandardDialog", @@ -4527,14 +4640,14 @@ "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" + "type": "array of strings" }, { "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" + "type": "array of strings" }, { "accessPermission": "READ_WRITE", @@ -4548,14 +4661,14 @@ "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" + "type": "array of strings" }, { "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" + "type": "array of strings" }, { "accessPermission": "READ_WRITE", @@ -4571,7 +4684,7 @@ }, "standardpinpaddialog": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [StandardDialog](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog.md\"**Standard Dialog**\")\n\nThe **StandardPinPadDialog** node enables text and voice entry of numeric characters—typically, short numeric PIN codes. It is similar to the legacy [PinDialog](https://developer.roku.com/docs/references/scenegraph/dialog-nodes/pindialog.md node, but includes additional voice entry of the numeric digits. This additional functionality is provided through the node's internal DynamicPinPad and VoiceTextEditBox nodes.\n\n![pin-pad-dialog](https://image.roku.com/ZHZscHItMTc2/pin-pad-dialog.jpg)", + "description": "_Available since Roku OS 10.0_\n\nExtends [StandardDialog](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog.md\"**Standard Dialog**\")\n\nThe **StandardPinPadDialog** node enables text and voice entry of numeric characters—typically, short numeric PIN codes. It is similar to the legacy [PinDialog](https://developer.roku.com/docs/references/scenegraph/dialog-nodes/pindialog.md node, but includes additional voice entry of the numeric digits. This additional functionality is provided through the node's internal DynamicPinPad and VoiceTextEditBox nodes.\n\n![roku815px - pin-pad-dialog](https://image.roku.com/ZHZscHItMTc2/pin-pad-dialog.jpg)", "events": [], "extends": { "name": "StandardDialog", @@ -4583,14 +4696,14 @@ "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" + "type": "array of strings" }, { "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" + "type": "array of strings" }, { "accessPermission": "READ_WRITE", @@ -4620,7 +4733,7 @@ }, "standardprogressdialog": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [StandardDialog](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog.md\"**Standard Dialog**\")\n\nThe StandardProgressDialog node displays a spinning progress indicator that includes a short progress message to the user. It is similar to the legacy [ProgressDialog](https://developer.roku.com/docs/references/scenegraph/dialog-nodes/progressdialog.md) node.\n\n![progress-dialog-title](https://image.roku.com/ZHZscHItMTc2/progress-dialog-title-v2.jpg)", + "description": "_Available since Roku OS 10.0_\n\nExtends [StandardDialog](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog.md\"**Standard Dialog**\")\n\nThe StandardProgressDialog node displays a spinning progress indicator that includes a short progress message to the user. It is similar to the legacy [ProgressDialog](https://developer.roku.com/docs/references/scenegraph/dialog-nodes/progressdialog.md node.\n\n![roku815px - progress-dialog-title](https://image.roku.com/ZHZscHItMTc2/progress-dialog-title-v2.jpg)", "events": [], "extends": { "name": "StandardDialog", @@ -4646,6 +4759,34 @@ "name": "StandardProgressDialog", "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-progress-dialog.md" }, + "stddlgactioncarditem": { + "availableSince": "11.0", + "description": "_Available since Roku OS 11.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md", + "events": [], + "extends": { + "name": "StdDlgItemBase", + "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md" + }, + "fields": [ + { + "accessPermission": "READ_WRITE", + "default": "false", + "description": "Indicates whether the \\*\\*StdDlgActionCardItem\\*\\* node is in the checked or unchecked state when the \\*\\*iconType\\*\\* field is set to \"checkbox\" or \"radiobutton\". The icon shown for an action card is based on the value of this field.", + "name": "iconStatus", + "type": "bool" + }, + { + "accessPermission": "READ_WRITE", + "default": "\"none\"", + "description": "Specifies the icon used for a \\*\\*StdDlgActionCardItem\\*\\* node. This may be one of the following values:\n\n| Value | Type | Description |\n| --- | --- | --- |\n| none | string | No icon is shown. |\n| more\\_info | string | A right arrow icon is displayed to the right of the **StdDlgActionCardItem** child nodes. This icon is typically used to indicate that more information will be shown when the action card is selected. Typically, this additional content is displayed in another dialog. |\n| checkbox | string | A checkbox icon is shown to the left of the StdDlgActionCardItem child nodes.When the **iconStatus** field is set to \"true\", this adds a checkmark inside the box.When the **iconStatus** field is set to \"false\", an empty box icon is displayed. |\n| radiobutton | string | A radio button icon is shown to the left of the StdDlgActionCardItem child nodes.When the **iconStatus** field is set to \"true\", this adds a filled circle inside the box.When the **iconStatus** field is set to \"false\", an empty circle icon is displayed. |", + "name": "iconType", + "type": "string" + } + ], + "interfaces": [], + "name": "StdDlgActionCardItem", + "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-action-card-item.md" + }, "stddlgareabase": { "availableSince": "10.0", "description": "_Available since Roku OS 10.0_\n\nExtends [Group](https://developer.roku.com/docs/references/scenegraph/layout-group-nodes/group.md\n\nThe **StdDlgAreaBase** node is the base class and provides the common functionality for the three StandardDialog area nodes: [**StdDlgTitleArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-title-area.md, [**StdDlgContentArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md and [**StdDlgButtonArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-button-area.md.", @@ -4661,7 +4802,7 @@ }, "stddlgbullettextitem": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\"**StdDlgItemBase**\")\n\nThe **StdDlgBulletTextItem** node is used to display a bulleted list of text in the dialog's content area. It should only be used as a child of a [**StdDlgContentArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md node.\n\n![StdDlgBulletTextItem](https://image.roku.com/ZHZscHItMTc2/StdDlgBulletTextItem-v2.jpg)", + "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\"**StdDlgItemBase**\")\n\nThe **StdDlgBulletTextItem** node is used to display a bulleted list of text in the dialog's content area. It should only be used as a child of a [**StdDlgContentArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md node.\n\n![roku815px - StdDlgBulletTextItem](https://image.roku.com/ZHZscHItMTc2/StdDlgBulletTextItem-v2.jpg)", "events": [], "extends": { "name": "StdDlgItemBase", @@ -4673,7 +4814,7 @@ "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" + "type": "array of strings" }, { "accessPermission": "READ_WRITE", @@ -4689,7 +4830,7 @@ }, "stddlgbutton": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [Group](https://developer.roku.com/docs/references/scenegraph/layout-group-nodes/group.md\"**Group**\")\n\n**StdDlgButton** is the class used for each button in the [button area](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog-framework-overview.mdstructure). The buttons are displayed in the order in which they are listed as children of the [**StdDlgButtonArea** node](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-button-area.md. The size and layout of each button are controlled by the StandardDialog layout algorithm. **StdDlgButton** nodes should only be used as children of a **StdDlgButtonArea** node.\n\n![std-dlg-button](https://image.roku.com/ZHZscHItMTc2/std-dlg-button-3.jpg)", + "description": "_Available since Roku OS 10.0_\n\nExtends [Group](https://developer.roku.com/docs/references/scenegraph/layout-group-nodes/group.md\"**Group**\")\n\n**StdDlgButton** is the class used for each button in the [button area](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog-framework-overview.mdstructure). The buttons are displayed in the order in which they are listed as children of the [**StdDlgButtonArea** node](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-button-area.md. The size and layout of each button are controlled by the StandardDialog layout algorithm. **StdDlgButton** nodes should only be used as children of a **StdDlgButtonArea** node.\n\n![roku815px - std-dlg-button](https://image.roku.com/ZHZscHItMTc2/std-dlg-button-3.jpg)", "events": [], "extends": { "name": "Group", @@ -4717,7 +4858,7 @@ }, "stddlgbuttonarea": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgAreaBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-area-base.md\"**StdDlgAreaBase**\")\n\nThe **StdDlgButtonArea** node is always positioned at the bottom of the [StandardDialog](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog.md. It contains zero or more child nodes of type [**StdDlgButton**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-button.md or a type that extends **StdDlgButton**. Each of the **StdDlgButton** nodes provides an option to perform some task related to the purpose of the dialog. For example, dialogs often have \"Continue\" and \"Cancel\" buttons in the bottom area. The buttons are positioned and sized so that they are arranged vertically in the order in which their **StdDlgButton** child nodes are listed.\n\nA dialog may only have a single button area, and the button area is optional.\n\n![std-dlg-button-area](https://image.roku.com/ZHZscHItMTc2/std-dlg-button-area.jpg)", + "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgAreaBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-area-base.md\"**StdDlgAreaBase**\")\n\nThe **StdDlgButtonArea** node is always positioned at the bottom of the [StandardDialog](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog.md. It contains zero or more child nodes of type [**StdDlgButton**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-button.md or a type that extends **StdDlgButton**. Each of the **StdDlgButton** nodes provides an option to perform some task related to the purpose of the dialog. For example, dialogs often have \"Continue\" and \"Cancel\" buttons in the bottom area. The buttons are positioned and sized so that they are arranged vertically in the order in which their **StdDlgButton** child nodes are listed.\n\nA dialog may only have a single button area, and the button area is optional.\n\n![roku815px - std-dlg-button-area](https://image.roku.com/ZHZscHItMTc2/std-dlg-button-area.jpg)", "events": [], "extends": { "name": "StdDlgAreaBase", @@ -4730,7 +4871,7 @@ }, "stddlgcontentarea": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgAreaBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-area-base.md\"**StdDlgAreaBase**\")\n\nThe **StdDlgContentArea** node contains the main body of the dialog. It is positioned between the title area and the button area.\n\nIt contains zero or more child nodes that extend [**StdDlgItemBase**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md (for example, [**StdDlgTextItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-text-item.md, [**StdDlgProgressItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-progress-item.md, [**StdDlgGraphicItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-graphic-item.md, and other dialog building blocks). The layout and position of the [**StdDlgItemBase** nodes](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md are based on the dialog's width; the nodes are arranged vertically from top to bottom in the content area based on the order in which they are listed. The content area should contain only [**StdDlgItemBase** nodes](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md; otherwise, its layout and rendering are undefined.\n\nA dialog may only have a single content area, and the content area is optional.\n\n![content-area](https://image.roku.com/ZHZscHItMTc2/content-area.jpg)", + "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgAreaBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-area-base.md\"**StdDlgAreaBase**\")\n\nThe **StdDlgContentArea** node contains the main body of the dialog. It is positioned between the title area and the button area.\n\nIt contains zero or more child nodes that extend [**StdDlgItemBase**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md (for example, [**StdDlgTextItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-text-item.md, [**StdDlgProgressItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-progress-item.md, [**StdDlgGraphicItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-graphic-item.md, and other dialog building blocks). The layout and position of the [**StdDlgItemBase** nodes](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md are based on the dialog's width; the nodes are arranged vertically from top to bottom in the content area based on the order in which they are listed. The content area should contain only [**StdDlgItemBase** nodes](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md; otherwise, its layout and rendering are undefined.\n\n![roku815px - content-area](https://image.roku.com/ZHZscHItMTc2/content-area.jpg)", "events": [], "extends": { "name": "StdDlgAreaBase", @@ -4741,9 +4882,37 @@ "name": "StdDlgContentArea", "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md" }, + "stddlgcustomitem": { + "availableSince": "10.5", + "description": "_Available since Roku OS 10.5_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\"**StdDlgItemBase**\")\n\nThe **StdDlgCustomItem** node is used to display free-form dialog items in the content area that require a custom layout.\n\n![roku400px - - custom-item](https://image.roku.com/ZHZscHItMTc2/std-dlg-custom-item-multi-column.jpeg)", + "events": [], + "extends": { + "name": "StdDlgItemBase", + "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md" + }, + "fields": [ + { + "accessPermission": "READ_WRITE", + "default": "0", + "description": "Specifies the desired width of the custom item, which is passed to the content area's layout algorithm. This field is typically specified when the custom item includes a \\[DynamicCustomKeyboard node\\](https://developer.roku.com/docs/references/scenegraph/dynamic-voice-keyboard-nodes/dynamic-custom-keyboard.md, which has a width that is determined by the KDF file of the custom keyboard.", + "name": "fixedWidthField", + "type": "float" + }, + { + "accessPermission": "READ_ONLY", + "default": "0", + "description": "The width of the custom item, which is enforced by the content area's layout algorithm.", + "name": "widthField", + "type": "float" + } + ], + "interfaces": [], + "name": "StdDlgCustomItem", + "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-custom-item.md" + }, "stddlgdeterminateprogressitem": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\"**StdDlgItemBase**\")\n\nThe **StdDlgDeterminateProgressItem** node is used to display a progress indicator in the dialog's content area. It provides the percentage of progress that has been completed for a task that takes a limited amount of time. It should only be used as a child of a [**StdDlgContentArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md node.\n\n![std-dlg-determinate-progress-item](https://image.roku.com/ZHZscHItMTc2/std-dlg-determinate-progress-item-2.jpg)", + "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\"**StdDlgItemBase**\")\n\nThe **StdDlgDeterminateProgressItem** node is used to display a progress indicator in the dialog's content area. It provides the percentage of progress that has been completed for a task that takes a limited amount of time. It should only be used as a child of a [**StdDlgContentArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md node.\n\n![roku815px - std-dlg-determinate-progress-item](https://image.roku.com/ZHZscHItMTc2/std-dlg-determinate-progress-item-2.jpg)", "events": [], "extends": { "name": "StdDlgItemBase", @@ -4771,7 +4940,7 @@ }, "stddlggraphicitem": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\"**StdDlgItemBase**\")\n\nThe **StdDlgGraphicItem** node is used to display an image in the dialog's content area with an optional text label displayed to the left, right, above, or below the image. It should only be used as a child of a [**StdDlgContentArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md node.\n\n![std-dlg-graphic-item](https://image.roku.com/ZHZscHItMTc2/std-dlg-graphic-item.jpg)", + "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\"**StdDlgItemBase**\")\n\nThe **StdDlgGraphicItem** node is used to display an image in the dialog's content area with an optional text label displayed to the left, right, above, or below the image. It should only be used as a child of a [**StdDlgContentArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md node.\n\n![roku815px - std-dlg-graphic-item](https://image.roku.com/ZHZscHItMTc2/std-dlg-graphic-item.jpg)", "events": [], "extends": { "name": "StdDlgItemBase", @@ -4820,11 +4989,11 @@ }, "stddlgitembase": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [Group](https://developer.roku.com/docs/references/scenegraph/layout-group-nodes/group.md)\n\n**StdDlgItemBase** is the base class for all the content area items. It provides the common functionality for all StdDlg\\[_x_\\]Item nodes (for example, [**StdDlgBulletTextItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-bullet-text-item.md, [**StdDlgTextItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-text-item.md, [**StdDlgKeyboardItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-keyboard-item.md, [**StdDlgProgressItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-progress-item.md, [**StdDlgGraphicItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-graphic-item.md, and the other dialog building block nodes).", + "description": "_Available since Roku OS 10.0_\n\nExtends [Group](https://developer.roku.com/docs/references/scenegraph/layout-group-nodes/group.md\n\n**StdDlgItemBase** is the base class for all the content area items. It provides the common functionality for all StdDlg\\[_x_\\]Item nodes (for example, [**StdDlgBulletTextItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-bullet-text-item.md, [**StdDlgTextItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-text-item.md, [**StdDlgKeyboardItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-keyboard-item.md, [**StdDlgProgressItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-progress-item.md, [**StdDlgGraphicItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-graphic-item.md, and the other dialog building block nodes).", "events": [], "extends": { "name": "Group", - "url": "https://developer.roku.comhttps://developer.roku.com/docs/references/scenegraph/layout-group-nodes/group.md" + "url": "https://developer.roku.com/docs/references/scenegraph/layout-group-nodes/group.md" }, "fields": [ { @@ -4839,9 +5008,30 @@ "name": "StdDlgItemBase", "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md" }, + "stddlgitemgroup": { + "availableSince": "11.0", + "description": "_Available since Roku OS 11.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\n\nThe **StdDlgItemGroup** node is used to visually group a set of StdDlgAreaBase child nodes in a custom dialog. Developers can use this node to reduce the vertical spacing between the StdDlgItemBase child nodes. For [**StdDlgActionCardItem**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-action-card-item.md nodes, the **StdDlgItemGroup** node enforces the rule that when multiple items **StdDlgActionCardItem** nodes have their **iconType** field set to \"radiobutton\", only one may have its **selected** status be set to \"true\".\n\nThe **StdDlgItemGroup** node may contain one or more [**StdDlgItemBase**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md child nodes (for example, StdDlgTextItem, StdDlgGraphicItem, and so on) as its children. It will visually group those child **StdDlgItemBase** nodes by reducing the amount of vertical space between them. However, the primary benefit of the StdDlgItemGroup node is managing **StdDlgActionCardItem** child nodes that have their **iconType** field set to \"radiobutton\".\n\n![roku815px - actionCards-radio-checkbox-items](https://image.roku.com/ZHZscHItMTc2/actionCards-radio-checkbox-items.jpg)\n\n> See the [**stdDlgActionCardItem** documentation](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-action-card-item.mdradiobutton-icontype) for code demonstarting how to use the **StdDlgItemGroup** node in a custom dialog.", + "events": [], + "extends": { + "name": "StdDlgItemBase", + "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md" + }, + "fields": [ + { + "accessPermission": "READ_WRITE", + "default": "0", + "description": "The index of the currently selected \\[StdDlgAreaBase\\](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-area-base.md child node. This field is updated when the user selects any of the \\[StdDlgActionCardItem\\](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-action-card-item.md child nodes. This field can also be updated via BrightScript to change which child node in the StdDlgItemGroup is selected. When this field is updated and it corresponds to a \\[StdDlgActionCardItem\\](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-action-card-item.md node that has its \\*\\*iconType\\*\\* field set to \"radiobutton\", the \\*\\*StdDlgItemGroup\\*\\* node enforces the \"only 1 of \\_n\\_\" rule for radio buttons by setting the \\*\\*iconStatus\\*\\* field of the other radio button action card items to \"false\".", + "name": "selectedIndex", + "type": "integer" + } + ], + "interfaces": [], + "name": "StdDlgItemGroup", + "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-group.md" + }, "stddlgkeyboarditem": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\"**StdDlgItemBase**\")\n\nThe **StdDlgKeyboardItem** node is used to display a keyboard or PINpad in the dialog's content area. It provides text and voice entry of strings containing alphanumeric characters and symbols or numeric digits. It should only be used as a child of a [**StdDlgContentArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md node.\n\n![std-dlg-keyboard-item](https://image.roku.com/ZHZscHItMTc2/std-dlg-keyboard-item.jpg)", + "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\"**StdDlgItemBase**\")\n\nThe **StdDlgKeyboardItem** node is used to display a keyboard or PINpad in the dialog's content area. It provides text and voice entry of strings containing alphanumeric characters and symbols or numeric digits. It should only be used as a child of a [**StdDlgContentArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md node.\n\n![roku815px - std-dlg-keyboard-item](https://image.roku.com/ZHZscHItMTc2/std-dlg-keyboard-item.jpg)", "events": [], "extends": { "name": "StdDlgItemBase", @@ -4874,9 +5064,44 @@ "name": "StdDlgKeyboardItem", "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-keyboard-item.md" }, + "stddlgmultistyletextitem": { + "availableSince": "11.0", + "description": "_Available since Roku OS 11.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md", + "events": [], + "extends": { + "name": "StdDlgItemBase", + "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md" + }, + "fields": [ + { + "accessPermission": "READ_WRITE", + "default": "\"\"", + "description": "Specifies the string to be spoken when the screen reader reads the text item. By default, the screen reader reads the string specified in the \\*\\*text\\*\\* field.", + "name": "audioGuideText", + "type": "string" + }, + { + "accessPermission": "READ_WRITE", + "default": "{}", + "description": "Defines the size, URI, and color of a font style. This field may contain one or more font styles.", + "name": "drawingStyles", + "type": "associative array of associative arrays" + }, + { + "accessPermission": "READ_WRITE", + "default": "\"\"", + "description": "Specifies the text to be displayed", + "name": "text", + "type": "string" + } + ], + "interfaces": [], + "name": "StdDlgMultiStyleTextItem", + "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-multi-style-text-item.md" + }, "stddlgprogressitem": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\"**StdDlgItemBase**\")\n\nThe **StdDlgProgressItem** node is used to display a spinning progress indicator in the dialog's content area. It provides the status of a task that takes an indeterminate amount of time. It should only be used as a child of a [**StdDlgContentArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md node.\n\n![std-dlg-progress-item](https://image.roku.com/ZHZscHItMTc2/std-dlg-progress-item.jpg)", + "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\"**StdDlgItemBase**\")\n\nThe **StdDlgProgressItem** node is used to display a spinning progress indicator in the dialog's content area. It provides the status of a task that takes an indeterminate amount of time. It should only be used as a child of a [**StdDlgContentArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md node.\n\n![roku815px - std-dlg-progress-item](https://image.roku.com/ZHZscHItMTc2/std-dlg-progress-item.jpg)", "events": [], "extends": { "name": "StdDlgItemBase", @@ -4895,9 +5120,51 @@ "name": "StdDlgProgressItem", "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-progress-item.md" }, + "stddlgsidecardarea": { + "availableSince": "11.0", + "description": "_Available since Roku OS 11.0_\n\nExtends [StdDlgAreaBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-area-base.md", + "events": [], + "extends": { + "name": "StdDlgAreaBase", + "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-area-base.md" + }, + "fields": [ + { + "accessPermission": "READ_WRITE", + "default": "true", + "description": "Specifies whether the \\*\\*StdDlgSideCardArea\\*\\* node extends to the edge of the dialog's background image or respects the background image's 9-patch margins. \\* \\*\\*true\\*\\*: The origin of the \\*\\*StdDlgSideCardArea\\*\\* node's coordinate system is set to the top/left edge of the dialog's background image. \\* \\*\\*false\\*\\*: The origin of the \\*\\*StdDlgSideCardArea\\*\\* node's coordinate system is based on the background image's 9-patch margins.", + "name": "extendToDialogEdge", + "type": "boolean" + }, + { + "accessPermission": "READ_WRITE", + "default": "\"right\"", + "description": "Specifies on which side of the custom dialog the StdDlgSideCardArea node appears: \"left\" or \"right\".", + "name": "horizAlign", + "type": "string" + }, + { + "accessPermission": "READ_WRITE", + "default": "false", + "description": "Specifies whether a thin vertical divider line is displayed between the \\*\\*StdDlgSideCardArea\\*\\* and the vertical column that contains the dialog's child \\*\\*StdDlgAreaBase\\*\\* nodes (\\[TitleArea\\](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-title-area.md, \\[StdDlgContentArea(s)\\](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md, and/or \\[StdDlgButtonArea\\](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-button-area.md). The divider line, if shown, uses the \\*\\*DialogSecondaryItemColor\\*\\* field from the current \\[RSG palette\\](https://developer.roku.com/docs/references/scenegraph/scene.mdfields).", + "name": "showDivider", + "type": "boolean" + }, + { + "accessPermission": "READ_WRITE", + "default": "0.0f", + "description": "Specifies the width of the \\*\\*StdDlgSideCardArea\\*\\* node. If this field is set to its default value (0.0), the width is set to the width of the \\[\\*\\*StdDlgContentArea\\*\\*\\]((https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md) node's bounding rectangle (the union of the width of all of its child nodes). If set to a value greater than 0.0, the width of the \\*\\*StdDlgSideCardArea\\*\\* node is fixed to that explicit value. The height of \\*\\*StdDlgSideCardArea\\*\\* node is based on the StandardDialog layout logic. This sets the height to a maximum of the height of the \\*\\*StdDlgSideCardArea\\*\\* bounding rectangle and the height of the vertical column containing the dialog's child \\[\\*\\*StdDlgAreaBase\\*\\*\\](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-area-base.md nodes. This is constrained by the maximum permissible height of the dialog such that it is fully visible onscreen.", + "name": "width", + "type": "float" + } + ], + "interfaces": [], + "name": "StdDlgSideCardArea", + "url": "https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-side-card-area.md" + }, "stddlgtextitem": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\"**StdDlgItemBase**\")\n\nThe **StdDlgTextItem** node is used to display a block of text. It should only be used as a child of a [**StdDlgContentArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md node.\n\n![StdDlgTextItem](https://image.roku.com/ZHZscHItMTc2/std-dlg-text-item.jpg)\n\n> To separate lines of text, use multiple **StdDlgTextItem** nodes. Do not use newline characters.", + "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgItemBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-item-base.md\"**StdDlgItemBase**\")\n\nThe **StdDlgTextItem** node is used to display a block of text. It should only be used as a child of a [**StdDlgContentArea**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-content-area.md node.\n\n![roku815px - StdDlgTextItem](https://image.roku.com/ZHZscHItMTc2/std-dlg-text-item.jpg)\n\n> To separate lines of text, use multiple **StdDlgTextItem** nodes. Do not use newline characters.", "events": [], "extends": { "name": "StdDlgItemBase", @@ -4907,7 +5174,7 @@ { "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.", + "description": "Specifies the string to be spoken when the screen reader reads the text item. By default, the screen reader reads the string specified in the \\*\\*text\\*\\* field.", "name": "audioGuideText", "type": "string" }, @@ -4932,7 +5199,7 @@ }, "stddlgtitlearea": { "availableSince": "10.0", - "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgAreaBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-area-base.md\"**StdDlgAreaBase**\")\n\nThe **StdDlgTitleArea** node contains the dialog's title information, which is always displayed at the top of the dialog. The title area may also include optional icons that appear left or right justified. The **StdDlgTitleArea** should only be used as a child node of a [**StandardDialog**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog.md.\n\nA dialog may a single title area, and the title area is optional (but is typically used in nearly all cases)\n\n![title-area-icon](https://image.roku.com/ZHZscHItMTc2/title-area-icon.jpg)", + "description": "_Available since Roku OS 10.0_\n\nExtends [StdDlgAreaBase](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/std-dlg-area-base.md\"**StdDlgAreaBase**\")\n\nThe **StdDlgTitleArea** node contains the dialog's title information, which is always displayed at the top of the dialog. The title area may also include optional icons that appear left or right justified. The **StdDlgTitleArea** should only be used as a child node of a [**StandardDialog**](https://developer.roku.com/docs/references/scenegraph/standard-dialog-framework-nodes/standard-dialog.md.\n\nA dialog may contain a single title area, and the title area is optional (but is typically used in nearly all cases)\n\n![roku815px - title-area-icon](https://image.roku.com/ZHZscHItMTc2/title-area-icon.jpg)", "events": [], "extends": { "name": "StdDlgAreaBase", @@ -5173,7 +5440,7 @@ "url": "https://developer.roku.com/docs/references/scenegraph/list-and-grid-nodes/targetset.md" }, "task": { - "description": "Extends [**Node**](https://developer.roku.com/docs/references/scenegraph/node.md\n\nThe Task node class allows you to specify a function to be spawned in a different thread, and run asynchronously with respect to both the scene rendering thread and the main application thread. A Task node also allows you to run functions that cannot be run in SceneGraph node or component, typically BrightScript code functions involving operations such as reading data from servers and file system manipulation. (You also cannot, and should not, run functions in a SceneGraph application for operations that are functionally the same as SceneGraph nodes and components, such as playing videos.) A list of all the BrightScript functions and components that cannot be used in SceneGraph applications or can only be used in a Task node can be found in [BrightScript Support](/docs/developer-program/core-concepts/scenegraph-brightscript/brightscript-support.md \"BrightScript Support\").\n\nA Task node is typically used to read data from a server to create a ContentNode node to configure a SceneGraph node or component (see [ContentNode](https://developer.roku.com/docs/references/scenegraph/control-nodes/contentnode.md\"ContentNode\")). A Task node used for this purpose can be thought of as a content reader. Since ContentNode nodes are required to configure many components rendered in a scene, such as lists, panels, and grids, and you will generally want to read the data for those types of nodes from your server, you should create a Task node as a content reader for each of those components that you use in your scene.\n\nThe Task node class was designed with three general development use cases:\n\n* A new Task node object is created for each asynchronous operation. The input data needed for the operation is set in the Task node object [](https://developer.roku.com/docs/references/scenegraph/xml-elements/interface.md\"\") fields in the render thread, along with an observer of the output field data, and the Task node control field is set to RUN. After the output data is returned to the render thread, the Task node object is not used again.\n* A Task node object is used multiple times for several identical asynchronous operations. In this case, the input data for each operation is set in the existing Task node object, with another observer for the output field data, and the Task node control field is again set to RUN. This may be more efficient than creating a new Task node object for each of the identical operations.\n* A Task node observes its input fields using the port form of the ifSGNodeField [observeField()](https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodefield.mdobservefieldfieldname-as-string-functionname-as-string-as-boolean \"observeField()\") method, and returns output data with each field change. In this case, the Task node acts like a continuous server.\n\nSince Task nodes launch asynchronous threads, and have no provisions for locks and mutexes, you must be careful to avoid race, deadlock, and other asynchronous thread errors. Here are a few tips for using Task nodes:\n\n* Avoid accessing files which must be persistent before thread completion, to avoid a subsequent Task node or other thread access of the same file before the thread completes. It is easier and safer to use a dynamically-created string or other data object to hold temporary thread data to avoid having a subsequent or existing thread overwrite and corrupt the data.\n* Be very careful if you access any object in a Task node that may exist in another thread. It is better to completely separate all objects in any other possible thread from the Task node thread by setting the fields of the Task node with copies of the minimum amount of data needed to run the thread.\n* In the Task node init() function, perform the minimum required amount of initialization of the Task node and any included thread functions. If you intend to trigger an asynchronous task based on a Task node input field change, in many cases, you should only set up the observer for the field in init().\n* Use the port form of the ifSGNodeField [observeField()](https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodefield.mdobservefieldfieldname-as-string-functionname-as-string-as-boolean \"observeField()\") rather than the onChange attribute. This will avoid triggering the thread in response to a render thread event before the Task node observers are set up.\n* It is more efficient to use a persistent Task node that is triggered by an field change than to create a new Task node every time a particular asynchronous thread is required. If needed, you can communicate that the particular asynchronous thread is no longer required through an field as well, either through the triggering field, or a special field used for control of the Task node.\n* You can use a single Task node object to run any number of different asynchronous threads by setting the functionName field to the Task node function you want before setting the control field to RUN. If you do not use the input data fields to trigger running the thread, this is equivalent to calling an asynchronous function, and passing the input data fields as arguments to the function. The output data fields can likewise be considered as the return value of a asynchronous function call, but to avoid blocking you must observe the fields, or the state field, as a callback event to handle the results in the calling thread.\n\nAlso review \"[SceneGraph threads](/docs/developer-program/core-concepts/threads.md \"SceneGraph\")\" for in-depth information on using Task nodes most efficiently.", + "description": "Extends [**Node**](https://developer.roku.com/docs/references/scenegraph/node.md\n\nThe Task node class allows you to specify a function to be spawned in a different thread, and run asynchronously with respect to both the scene rendering thread and the main application thread. A Task node also allows you to run functions that cannot be run in SceneGraph node or component, typically BrightScript code functions involving operations such as reading data from servers and file system manipulation. (You also cannot, and should not, run functions in a SceneGraph application for operations that are functionally the same as SceneGraph nodes and components, such as playing videos.) A list of all the BrightScript functions and components that cannot be used in SceneGraph applications or can only be used in a Task node can be found in [BrightScript Support](/docs/developer-program/core-concepts/scenegraph-brightscript/brightscript-support.md \"BrightScript Support\").\n\nA Task node is typically used to read data from a server to create a ContentNode to configure a SceneGraph node or component (see [ContentNode](https://developer.roku.com/docs/references/scenegraph/control-nodes/contentnode.md\"ContentNode\")). A Task node used for this purpose can be thought of as a content reader. Since ContentNodes are required to configure many components rendered in a scene, such as lists, panels, and grids, and you will generally want to read the data for those types of nodes from your server, you should create a Task node as a content reader for each of those components that you use in your scene.\n\nThe Task node class was designed with three general development use cases:\n\n* A new Task node object is created for each asynchronous operation. The input data needed for the operation is set in the Task node object [](https://developer.roku.com/docs/references/scenegraph/xml-elements/interface.md\"\") fields in the render thread, along with an observer of the output field data, and the Task node control field is set to RUN. After the output data is returned to the render thread, the Task node object is not used again.\n* A Task node object is used multiple times for several identical asynchronous operations. In this case, the input data for each operation is set in the existing Task node object, with another observer for the output field data, and the Task node control field is again set to RUN. This may be more efficient than creating a new Task node object for each of the identical operations.\n* A Task node observes its input fields using the port form of the ifSGNodeField [observeField()](https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodefield.mdobservefieldfieldname-as-string-functionname-as-string-as-boolean \"observeField()\") method, and returns output data with each field change. In this case, the Task node acts like a continuous server.\n\nSince Task nodes launch asynchronous threads, and have no provisions for locks and mutexes, you must be careful to avoid race, deadlock, and other asynchronous thread errors. Here are a few tips for using Task nodes:\n\n* Avoid accessing files which must be persistent before thread completion, to avoid a subsequent Task node or other thread access of the same file before the thread completes. It is easier and safer to use a dynamically-created string or other data object to hold temporary thread data to avoid having a subsequent or existing thread overwrite and corrupt the data.\n* Be very careful if you access any object in a Task node that may exist in another thread. It is better to completely separate all objects in any other possible thread from the Task node thread by setting the fields of the Task node with copies of the minimum amount of data needed to run the thread.\n* In the Task node init() function, perform the minimum required amount of initialization of the Task node and any included thread functions. If you intend to trigger an asynchronous task based on a Task node input field change, in many cases, you should only set up the observer for the field in init().\n* Use the port form of the ifSGNodeField [observeField()](https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodefield.mdobservefieldfieldname-as-string-functionname-as-string-as-boolean \"observeField()\") rather than the onChange attribute. This will avoid triggering the thread in response to a render thread event before the Task node observers are set up.\n* It is more efficient to use a persistent Task node that is triggered by an \\\\\\\\ field change than to create a new Task node every time a particular asynchronous thread is required. If needed, you can communicate that the particular asynchronous thread is no longer required through an field as well, either through the triggering field, or a special field used for control of the Task node.\n* You can use a single Task node object to run any number of different asynchronous threads by setting the functionName field to the Task node function you want before setting the control field to RUN. If you do not use the input data fields to trigger running the thread, this is equivalent to calling an asynchronous function, and passing the input data fields as arguments to the function. The output data fields can likewise be considered as the return value of a asynchronous function call, but to avoid blocking you must observe the fields, or the state field, as a callback event to handle the results in the calling thread.\n\nAlso review \"[SceneGraph threads](/docs/developer-program/core-concepts/threads.md \"SceneGraph\")\" for in-depth information on using Task nodes most efficiently.", "events": [], "extends": { "name": "Node", @@ -5256,6 +5523,13 @@ "name": "hintTextColor", "type": "color" }, + { + "accessPermission": "READ_WRITE", + "default": "false", + "description": "Specifies whether to display the end or beginning of text that overflows its available width: \\* \\*\\*true\\*\\*. The end of the text is shown. For example, \"the quick brown fox jumps over the lazy dog\" would be truncated to \"...jumps over the lazy dog\". \\* \\*\\*false\\*\\*. The start of the text is shown (for example, \"the quick brown fox jumps...\").", + "name": "leadingEllipsis _Available since Roku OS 11.0_", + "type": "Boolean" + }, { "accessPermission": "Read-Write", "default": "15", @@ -5297,7 +5571,7 @@ "url": "https://developer.roku.com/docs/references/scenegraph/widget-nodes/texteditbox.md" }, "timegrid": { - "description": "OTT providers can use the TimeGrid node to implement an Electronic Program Guide (EPG) in their channels. In an EPG, channels are represented as horizontal rows, one for each channel. Each row has a channel name on the left, and a set of programs airing on that channel to the right. The size of each program depends on its duration. One of these programs has a remote control focus highlight indicator on it, and this highlight can be moved around using the remote control (as long as the TimeGrid node has remote control focus).\n\nThe TimeGrid node also features an alternative Now/Next view that lists only the programs currently airing and airing next, with their respective start times. See [Now/Next mode](https://developer.roku.com/docs/references/scenegraph/list-and-grid-nodes/timegrid.mdnownext-mode) for more information.\n\n![time grid](https://image.roku.com/ZHZscHItMTc2/epg-standard.jpg \"time grid\")", + "description": "OTT providers can use the TimeGrid node to implement an Electronic Program Guide (EPG) in their channels. In an EPG, channels are represented as horizontal rows, one for each channel. Each row has a channel name on the left, and a set of programs airing on that channel to the right. The size of each program depends on its duration. One of these programs has a remote control focus highlight indicator on it, and this highlight can be moved around using the remote control (as long as the TimeGrid node has remote control focus).\n\nThe TimeGrid node also features an alternative Now/Next view that lists only the programs currently airing and airing next, with their respective start times. See [Now/Next mode](https://developer.roku.com/docs/references/scenegraph/list-and-grid-nodes/timegrid.mdnownext-mode) for more information.\n\n![roku815px - time grid](https://image.roku.com/ZHZscHItMTc2/epg-standard.jpg \"time grid\")", "events": [], "fields": [], "interfaces": [], @@ -5404,7 +5678,7 @@ { "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.", + "description": "The ContentNode 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 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 ContentNodes 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" }, @@ -5431,16 +5705,30 @@ }, { "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", - "type": "integer" + "default": "{}", + "description": "Provides the following video decoder statistics related to the start of video playback:\n\n| Key | Type | Value |\n| --- | --- | --- |\n| renderCount | integer | The number of frames that have been rendered since playback was started. This value is incremented each time a new frame is rendered |\n| repeatCount | integer | The number of frames that have been repeated since playback was started.This value is incremented each time a new frame is not available in time and the current frame is rendered an additional frame period. |\n| frameDropCount | integer | The number of frames that have been dropped since playback was started.This value is incremented each time the presentation time of a decoded frame is too old to be rendered and the next frame is rendered instead. |\n| streamErrorCount | integer | The number of bitstream errors since playback was started.This value is incremented each time the decoder detects a bitstream error. |\n\nSet the \\*\\*enableDecoderStats\\*\\* field to true to enable updates to this field.", + "name": "decoderStats (_Available since Roku OS 11.0_)", + "type": "roAssociativeArray" }, { - "accessPermission": "READ-ONLY", - "default": "", - "description": "A diagnostic message to help resolve the video play error set in the \\`state\\` field. The roAssociativeArray contains the following fields:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| clip\\_id | integer | The unique ID for the clip |\n| ignored | integer | Indicates whether the error generated an exception (0) or was ignored resulting in the next item in the content list being played (1). |\n| source | string | The module that generated the error. |\n| category | String | The type of error, which includes: \"http\", \"drm\", \"mediaerror\", or \"mediaplayer\". |\n| error\\_code | integer | The internal Roku code associated with the error. Use the **dbgmsg** field for debugging. |\n| dbgmsg | string | A verbose debug message that can help identify the root cause of the error. |\n| error\\_attributes | string | The error attribute, which includes the clip\\_id (the unique ID of the clip that failed to play). |", - "name": "errorInfo", + "accessPermission": "READ_WRITE", + "default": "false", + "description": "Enables updates to the \\*\\*decoderStats\\*\\* field.", + "name": "enableDecoderStats (_Available since Roku OS 11.0_)", + "type": "boolean" + }, + { + "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", + "type": "integer" + }, + { + "accessPermission": "READ_ONLY", + "default": "", + "description": "A diagnostic message to help resolve the video play error set in the \\`state\\` field. The roAssociativeArray contains the following fields:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| clip\\_id | integer | The unique ID for the clip |\n| ignored | integer | Indicates whether the error generated an exception (0) or was ignored resulting in the next item in the content list being played (1). |\n| source | string | The module that generated the error. |\n| category | String | The type of error, which includes: \"http\", \"drm\", \"mediaerror\", or \"mediaplayer\". |\n| error\\_code | integer | The internal Roku code associated with the error. Use the **dbgmsg** field for debugging. |\n| dbgmsg | string | A verbose debug message that can help identify the root cause of the error. |\n| error\\_attributes | string | The error attribute, which includes the clip\\_id (the unique ID of the clip that failed to play). |\n| drmerrcode _Available since Roku OS 10.5_ | integer | The error code returned by the DRM system, if any, when a video player error occurs |", + "name": "errorInfo", "type": "roAssociativeArray" }, { @@ -5451,7 +5739,7 @@ "type": "string" }, { - "accessPermission": "READ-ONLY", + "accessPermission": "READ_ONLY", "default": "", "description": "A diagnostic message to help resolve the video play error set in the \\`state\\` field. The format of the errorStr is as follows: category:{category\\\\\\_name}:error:{error\\\\\\_code}:ignored:{0|1}:{source}:{source\\\\\\_name}:{additional catcher comment}:{error\\\\\\_string}:extra:{error\\\\\\_attributes}\n\n| errorStr Field | Type | Description |\n| --- | --- | --- |\n| category\\_name | string | The type of error, which includes: \"http\", \"drm\", \"mediaerror\", or \"mediaplayer\". |\n| error\\_code | integer | The unique code associated with the error. |\n| ignored | integer | Indicates whether the error generated an exception (0) or was ignored resulting in the next item in the content list being played (1). |\n| source | string | The module that generated the error. |\n| source\\_name | string | The module that generated the error. |\n| additional catcher comment | string | Typically, the comment added when the exception is caught. |\n| error\\_string | string | A text message describing the video play error. |\n| error\\_attributes | string | The error attribute, which includes the clip\\_id (the unique ID of the clip that failed to play). |", "name": "errorStr", @@ -5471,6 +5759,62 @@ "name": "nextContentIndex", "type": "integer" }, + { + "accessPermission": "READ_WRITE", + "default": "0", + "description": "The index of the button that has focus in the \\*\\*playbackActionButtons\\*\\* field.", + "name": "playbackActionButtonFocused (_Available since Roku OS 11.5_)", + "type": "integer" + }, + { + "accessPermission": "WRITE", + "default": "OX121212FF", + "description": "Specifies the color of the button label text when the button has key focus.", + "name": "playbackActionButtonFocusedTextColor (_Available since Roku OS 11.5_)", + "type": "Color" + }, + { + "accessPermission": "WRITE", + "default": "SmallBoldSystemFont", + "description": "Specifies the font of the button label when the button has key focus.", + "name": "playbackActionButtonFocusedTextFont (_Available since Roku OS 11.5_)", + "type": "Font" + }, + { + "accessPermission": "WRITE", + "default": "-", + "description": "Specifies the button background color when the button has key focus.", + "name": "playbackActionButtonFocusIndicatorBlendColor (_Available since Roku OS 11.5_)", + "type": "Color" + }, + { + "accessPermission": "READ_WRITE", + "default": "[]", + "description": "Component that shows the buttons and other specified UI elements on the pause screen at the start of playback. Each element in the array has following fields:\n\n| Field | Type | Default | Description |\n| --- | --- | --- | --- |\n| text | string | system default | Text for the button label |\n| icon | uri | \"\" | A 9-patch or PNG of the icon to be displayed when the button does not have. |\n| focusIcon | uri | \"\" | A 9-patch or PNG of the icon to be displayed when the button has focus. |\n| buttonIsDisabled | Boolean | false | Controls whether the button is disabled (true) or enabled (false). A disabled button is skipped and does not have focus while the user navigates the different playback action buttons with the directional pad on the Roku remote control. |\n| bottomRowButtons | array of strings | \\[ \\] | List of buttons to be displayed in the the bottom row the pause screen. Each string in the buttons array adds a new button to the bottom row. |\n| bottomRowButtonFocused | int | 0 | Indicates the index of the button that gained focus when the user moved the focus onto a button in the bottom row. |\n| bottomRowButtonSelected | int | 0 | Indicates the index of the selected button when the user selects one of the buttons in the bottom row. |", + "name": "playbackActionButtons (_Available since Roku OS 11.5_)", + "type": "roArray of roAssociativeArrays" + }, + { + "accessPermission": "READ_WRITE", + "default": "0", + "description": "The index of the button that is selected in the \\*\\*playbackActionButtons\\*\\* field.", + "name": "playbackActionButtonSelected (_Available since Roku OS 11.5_)", + "type": "integer" + }, + { + "accessPermission": "WRITE", + "default": "0xEFEFEFFF", + "description": "Specifies the color of the button label text when the button does not have key focus.", + "name": "playbackActionButtonUnfocusedTextColor (_Available since Roku OS 11.5_)", + "type": "Color" + }, + { + "accessPermission": "WRITE", + "default": "SmallSystemFont", + "description": "Specifies the font of the button label when the button does not have key focus.", + "name": "playbackActionButtonUnfocusedTextFont (_Available since Roku OS 11.5_)", + "type": "Font" + }, { "accessPermission": "READ_ONLY", "default": "", @@ -5500,10 +5844,10 @@ }, "fields": [ { - "accessPermission": "READ_WRITE", + "accessPermission": "READ-ONLY", "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", + "description": "Checks whether the user is currently dictating to the keyboard.", + "name": "isDictating _Available since Roku OS 10.5_", "type": "boolean" }, { @@ -5520,6 +5864,13 @@ "name": "voiceEntryType", "type": "string" }, + { + "accessPermission": "WRITE-ONLY", + "default": "\"\"", + "description": "Specify which characters may or may not be entered on the keyboard via dictation. For example, setting this field to \"^\\\\\\[A-Za-z0-9\\\\\\_-\\\\\\]\\\\\\*$\" prevents any special characters from being entered.", + "name": "voiceInputRegexFilter _Available since Roku OS 10.5_", + "type": "string" + }, { "accessPermission": "READ_WRITE", "default": "FHD: 321HD: 214", @@ -5565,13 +5916,8 @@ "url": "https://developer.roku.com/docs/references/brightscript/components/roappinfo.md" }, "roappmanager": { - "constructors": [ - { - "params": [], - "returnType": "roAppManager" - } - ], - "description": "The Application Manager APIs set application level attributes, which mostly affect the look-and-feel of the application. The use of screen styles gives each application a consistent look-and-feel, but it's often desirable to customize attributes such as colors, fonts, and logos for each application. Setting artwork and colors allows the developer to specify a theme for their application. If these values are not set, the application will use default values.\n\nThe table below describes each attribute and its values, the screen types to which it applies, and the Roku OS version in which the attribute was first supported. Unless otherwise indicated, an attribute is supported in all Roku OS versions after the one in which it was first supported.\n\nTo save space, the screen types in the table are specified by a two letter code:\n\n| Code | Screen Type |\n| --- | --- |\n| Co | roCodeRegistrationScreen |\n| Di | roMessageDialog, roOneLineDialog, roPinEntryDialog |\n| Gr | roGridScreen |\n| Ke | roKeyboardScreen |\n| Li | roListScreen |\n| Pa | roParagraphScreen |\n| Po | roPosterScreen |\n| Se | roSearchScreen |\n| Sp | roSpringboardScreen |\n| Te | roTextScreen |\n\nAll attribute values are strings. Numeric values are specified as decimal strings.\n\n| Attribute | Screen Types | Values | Example | Version |\n| --- | --- | --- | --- | --- |\n| BackgroundColor | Gr Li Pa Po Se Sp Te | HTML HEX Color Value | #E0DFDF | 1.0 |\n| BreadcrumbDelimiter | Gr Li Pa Po Se Sp Te | HTML HEX Color Value | #FF00FF | 1.0 |\n| BreadcrumbTextLeft | Gr Li Pa Po Se Sp Te | HTML HEX Color Value | #FF00FF | 1.0 |\n| BreadcrumbTextRight | Gr Li Pa Po Se Sp Te | HTML HEX Color Value | #FF00FF | 1.0 |\n| ButtonHighlightColor | Di Se Sp | HTML HEX Color Value | #FF00FF | 1.0 |\n| ButtonMenuHighlightText | Di Se Sp | HTML HEX Color Value | #0033FF | 1.0 |\n| ButtonMenuNormalOverlayText | Di Se Sp | HTML HEX Color Value | #B0B0B0 | 1.0 |\n| ButtonMenuNormalText | Di Se Sp | HTML HEX Color Value | #686868 | 1.0 |\n| ButtonNormalColor | Di Se Sp | HTML HEX Color Value | #FF00FF | 1.0 |\n| CounterSeparator | Gr Po | HTML HEX Color Value | #00FF00 | 2.7 |\n| CounterTextLeft | Gr Po | HTML HEX Color Value | #FF0000 | 2.7 |\n| CounterTextRight | Gr Po | HTML HEX Color Value | #0000FF | 2.7 |\n| DialogBodyText | Di | HTML HEX Color Value. Must be a grayscale value | #808080 | 3.1 |\n| DialogTitleText | Di | HTML HEX Color Value. Must be a grayscale value | #363636 | 3.1 |\n| EpisodeSynopsisText | Po | HTML HEX Color Value | #FF00FF | 1.0 |\n| FilterBannerActiveColor | Po | HTML HEX Color Value | #FF00FF | 1.0 |\n| FilterBannerActiveHD | Po | URL to set HD Filter Banner Active/Focus Highlighter | pkg:/images/Filter\\_ActiveHint\\_HD.png | 1.0 |\n| FilterBannerActiveSD | Po | URL to set SD Filter Banner Active/Focus Highlighter | pkg:/images/Filter\\_ActiveHint\\_SD43.png | 1.0 |\n| FilterBannerInactiveColor | Po | HTML HEX Color Value | #FF00FF | 1.0 |\n| FilterBannerInactiveHD | Po | URL to set HD Filter Banner Inactive Highlighter | pkg:/images/Filter\\_InactiveHint\\_HD.png | 1.0 |\n| FilterBannerInactiveSD | Po | URL to set SD Filter Banner Inactive Highlighter | pkg:/images/Filter\\_ActiveHint\\_SD43.png | 1.0 |\n| FilterBannerSideColor | Po | HTML HEX Color Value | #FF00FF | 1.0 |\n| FilterBannerSliceHD | Po | URL to set HD Filter Banner Background Image | pkg:/images/Filter\\_ActiveHint\\_HD.png | 1.0 |\n| FilterBannerSliceSD | Po | URL to set SD Filter Banner Background Image | pkg:/images/Filter\\_ActiveHint\\_SD43.png | 1.0 |\n| GridScreenBackgroundColor | Gr | HTML HEX Color Value Must be a grayscale value | #363636 | 2.7 |\n| GridScreenBorderOffsetHD | Gr | String representing point \"(x, y)\" that is the offset from the upper left corner of the focused HD image. Set to the negative width & height of border | (-25,-25) | 2.8 |\n| GridScreenBorderOffsetSD | Gr | String representing point \"(x, y)\" that is the offset from the upper left corner of the focused SD image. Set to the negative width & height of border | (-20,-20) | 2.8 |\n| GridScreenDescriptionDateColor | Gr | HTML HEX Color Value | #FF005B | 2.7 |\n| GridScreenDescriptionImageHD | Gr | URL to set HD Description callout background image on Grid | pkg:/images/Description\\_Background\\_HD.ng | 2.8 |\n| GridScreenDescriptionImageSD | Gr | URL to set SD Description callout background image on Grid | pkg:/images/Description\\_Background\\_SD43.ng | 2.8 |\n| GridScreenDescriptionOffsetHD | Gr | String representing point \"(x, y)\" that is the offset from the upper left corner of the focused HD image. Negative values have the description above and to the left of the focused image | (190,255) | 2.8 |\n| GridScreenDescriptionOffsetSD | Gr | String representing point \"(x, y)\" that is the offset from the upper left corner of the focused SD image. Negative values have the description above and to the left of the focused image | (125,170) | 2.8 |\n| GridScreenDescriptionRuntimeColor | Gr | HTML HEX Color Value | #5B005B | 2.7 |\n| GridScreenDescriptionSynopsisColor | Gr | HTML HEX Color Value | #606000 | 2.7 |\n| GridScreenDescriptionTitleColor | Gr | HTML HEX Color Value | #00FFFF | 2.7 |\n| GridScreenFocusBorderHD | Gr | URL to set HD Focus image on Active Grid Poster | pkg:/images/Border\\_16x9\\_HD.png | 2.8 |\n| GridScreenFocusBorderSD | Gr | URL to set SD Focus image on Active Grid Poster | pkg:/images/Border\\_16x9\\_SD43.png | 2.8 |\n| GridScreenListNameColor | Gr | HTML HEX Color Value. Must be a grayscale value | #FFFFFF | 2.7 |\n| GridScreenLogoHD | Gr | Logo formatted for display in the overhang | pkg:/images/gridlogoHD.png | 2.7 |\n| GridScreenLogoOffsetHD\\_X | Gr | Offset in pixels from the top-left origin of the display. Range 0 to 1280 | 592 | 2.7 |\n| GridScreenLogoOffsetHD\\_Y | Gr | Offset in pixels from the top-left origin of the display. Range 0 to 720 | 31 | 2.7 |\n| GridScreenLogoOffsetSD\\_X | Gr | Offset in pixels from the top-left origin of the display. Range 0 to 720 | 324 | 2.7 |\n| GridScreenLogoOffsetSD\\_Y | Gr | Offset in pixels from the top-left origin of the display. Range 0 to 480 | 21 | 2.7 |\n| GridScreenLogoSD | Gr | Logo formatted for display in the overhang | pkg:/images/gridlogoSD.png | 2.7 |\n| GridScreenMessageColor | Gr | HTML HEX Color Value. Must be a grayscale value | #808080 | 2.7 |\n| GridScreenOverhangHeightHD | Gr | The HD overhang height. Default: \"69\" | 75 | 2.8 |\n| GridScreenOverhangHeightSD | Gr | The SD overhang height. Default: \"49\" | 55 | 2.8 |\n| GridScreenOverhangSliceHD | Gr | URI for the overhang slice (thin piece of top of screen border) | pkg:/images/gridoverhangHD.png | 2.7 |\n| GridScreenOverhangSliceSD | Gr | URI for the overhang slice (thin piece of top of screen border) | pkg:/images/gridoverhangSD.png | 2.7 |\n| GridScreenRetrievingColor | Gr | HTML HEX Color Value. Must be a grayscale value | #CCCCCC | 2.7 |\n| ListItemHighlightHD | Gr Li Po | URL to set HD highlight image | pkg:/images/listitem\\_highlight\\_hd.png | 3.1 |\n| ListItemHighlightSD | Gr Li Po | URL to set SD highlight image | pkg:/images/listitem\\_highlight\\_sd.png | 3.1 |\n| ListItemHighlightText | Gr Li Po | HTML HEX Color Value | #CCCC00 | 3.1 |\n| ListItemText | Gr Li Po | HTML HEX Color Value | #CCCC00 | 3.1 |\n| ListScreenDescriptionText | Li | HTML HEX Color Value | #CCCC00 | 3.1 |\n| ListScreenTitleColor | Li | HTML HEX Color Value | #CC0000 | 3.1 |\n| OverhangPrimaryLogoHD | Co Ke Li Pa Po Se Sp Te | Small application logo formatted for display in overhang top left | pkg:/images/co\\_logo\\_sd.png | 1.0 |\n| OverhangPrimaryLogoOffsetHD\\_X | Co Ke Li Pa Po Se Sp Te | Offset in pixels from the top-left origin of the display films.Range 0 to 1280 | 25 | 1.0 |\n| OverhangPrimaryLogoOffsetHD\\_Y | Co Ke Li Pa Po Se Sp Te | Offset in pixels from the top-left origin of the display films.Range 0 to 720 | 50 | 1.0 |\n| OverhangPrimaryLogoOffsetSD\\_X | Co Ke Li Pa Po Se Sp Te | Offset in pixels from the top-left origin of the display films.Range 0 to 720 | 25 | 1.0 |\n| OverhangPrimaryLogoOffsetSD\\_Y | Co Ke Li Pa Po Se Sp Te | Offset in pixels from the top-left origin of the display films.Range 0 to 480 | 50 | 1.0 |\n| OverhangPrimaryLogoSD | Co Ke Li Pa Po Se Sp Te | Small application logo formatted for display in overhang top left | pkg:/images/co\\_logo\\_sd.png | 1.0 |\n| OverhangSecondaryLogoHD | Co Ke Li Pa Po Se Sp Te | Small application logo formatted for display in overhang top left | pkg:/images/co\\_logo\\_hd.png | 1.0 |\n| OverhangSecondaryLogoOffsetHD\\_X | Co Ke Li Pa Po Se Sp Te | Offset in pixels from the top-left origin of the display films. Range 0 to 1280 | 25 | 1.0 |\n| OverhangSecondaryLogoOffsetHD\\_Y | Co Ke Li Pa Po Se Sp Te | Offset in pixels from the top-left origin of the display films. Range 0 to 720 | 50 | 1.0 |\n| OverhangSecondaryLogoOffsetSD\\_X | Co Ke Li Pa Po Se Sp Te | Offset in pixels from the top-left origin of the display films. Range 0 to 720 | 25 | 1.0 |\n| OverhangSecondaryLogoOffsetSD\\_Y | Co Ke Li Pa Po Se Sp Te | Offset in pixels from the top-left origin of the display films. Range 0 to 480 | 50 | 1.0 |\n| OverhangSecondaryLogoSD | Co Ke Li Pa Po Se Sp Te | Small application logo formatted for display in overhang top left | pkg:/images/co\\_logo\\_sd.png | 1.0 |\n| OverhangSliceHD | Co Ke Li Pa Po Se Sp Te | URI for the overhang slice (thin piece of border at the top of the screen in HD size) | pkg:/images/overhang\\_hd.png | 1.0 |\n| OverhangSliceSD | Co Ke Li Pa Po Se Sp Te | URI for the overhang slice (thin piece of top of screen border) | pkg:/images/overhang\\_sd.png | 1.0 |\n| ParagraphBodyText | Co Pa Te | HTML HEX Color Value | #FF00FF | 1.0 |\n| ParagraphHeaderText | Co Pa Te | HTML HEX Color Value | #FF00FF | 1.0 |\n| PosterScreenLine1Text | Po | HTML HEX Color Value | #FF00FF | 1.0 |\n| PosterScreenLine2Text | Po | HTML HEX Color Value | #FF00FF | 1.0 |\n| RegistrationCodeColor | Co | HTML HEX Color Value | #FF00FF | 1.0 |\n| RegistrationFocalColor | Co | HTML HEX Color Value | #FF00FF | 1.0 |\n| RegistrationFocalRectColor | Co | HTML HEX Color Value | #10FF80 | |\n| RegistrationFocalRectHD | Co | Position and size of the HD focal rectangle. Four integer: (x,y,width,height) | (228,360,120,82) | |\n| RegistrationFocalRectSD | Co | Position and size of the SD focal rectangle. Four integer: (x,y,width,height) | (172,220,90,76) | |\n| SpringboardActorColor | Sp | HTML HEX Color Value | #FF00FF | 1.0 |\n| SpringboardAlbumColor | Sp | HTML HEX Color Value | #FF00FF | 1.0 |\n| SpringboardAlbumLabel | Sp | Album Label | on | 1.0 |\n| SpringboardAlbumLabelColor | Sp | HTML HEX Color Value | #FF00FF | 1.0 |\n| SpringboardAllow6Buttons | Sp | boolean string | true | |\n| SpringboardArtistColor | Sp | HTML HEX Color Value | #FF00FF | 1.0 |\n| SpringboardArtistLabel | Sp | Artist Label | by | 1.0 |\n| SpringboardArtistLabelColor | Sp | HTML HEX Color Value | #FF00FF | 1.0 |\n| SpringboardDirectorColor | Sp | HTML HEX Color Value | #FF00FF | 1.0 |\n| SpringboardDirectorText | Sp | Director Label | Written by | 1.0 |\n| SpringboardDirectorLabelColor | Sp | HTML HEX Color Value | #FF00FF | 1.0 |\n| SpringboardDirectorPrefixText | Sp | HTML HEX Color Value | #FF00FF | |\n| SpringboardGenreColor | Sp | HTML HEX Color Value | #FF00FF | 1.0 |\n| SpringboardRuntimeColor | Sp | HTML HEX Color Value | #FF00FF | 1.0 |\n| SpringboardSynopsisColor | Sp | HTML HEX Color Value | #FF00FF | 1.0 |\n| SpringboardTitleText | Sp | HTML HEX Color Value | #FF00FF | 1.0 |\n| TextScreenBodyBackgroundColor | Te | HTML HEX Color Value. Must be a grayscale value | #808080 | 4.3 |\n| TextScreenBodyText | Te | HTML HEX Color Value | #363636 | 4.3 |\n| TextScreenScrollBarColor | Te | HTML HEX Color Value | #CC0000 | 4.3 |\n| TextScreenScrollThumbColor | Te | HTML HEX Color Value | #00CC00 | 4.3 |\n| ThemeType | | Theme type. Generic-dark is the only valid value. Otherwise the default theme applies | generic-dark | 2.7 |\n\n**Example**\n\n```\nSub SetApplicationTheme()\n app = CreateObject(\"roAppManager\")\n theme = CreateObject(\"roAssociativeArray\")\n theme.OverhangSliceHD = \"pkg:/images/Overhang_Slice_HD.png\"\n theme.OverhangPrimaryLogoSD = \"pkg:/images/Logo_Overhang_SD43.png\"\n theme.OverhangPrimaryLogoOffsetSD_X = \"72\"\n theme.OverhangPrimaryLogoOffsetSD_Y = \"25\"\n theme.OverhangPrimaryLogoHD = \"pkg:/images/Logo_Overhang_HD.png\"\n theme.OverhangPrimaryLogoOffsetHD_X = \"123\"\n theme.OverhangPrimaryLogoOffsetHD_Y = \"48\"\n app.SetTheme(theme)\nEnd Sub\n```", + "constructors": [], + "description": "The roAppManager component is used to returns information about the channel application.", "events": [], "interfaces": [ { @@ -5582,6 +5928,25 @@ "name": "roAppManager", "url": "https://developer.roku.com/docs/references/brightscript/components/roappmanager.md" }, + "roappmemorymonitor": { + "availableSince": "10.5", + "constructors": [], + "description": "_Available since Roku OS 10.5_\n\nThe **roAppMemoryMonitor** component is used to subscribe channels to low-memory notifications. When a channel is subscribed, it receives a [roAppMemoryMonitorEvent](https://developer.roku.com/docs/references/brightscript/events/roappmemorymonitorevent.md when it reaches a specific percentage of the per-channel memory limit (80%).\n\n> To use the roAppMemoryMonitor functions, you must add the **run\\_as\\_process=1** attribute to the [channel manifest](/docs/developer-program/getting-started/architecture/channel-manifest.md).\n> \n> This feature is only supported on [current Roku device models](/docs/specs/hardware.md#current-roku-models).", + "events": [ + { + "name": "roAppMemoryMonitorEvent", + "url": "https://developer.roku.com/docs/references/brightscript/events/roappmemorymonitorevent.md" + } + ], + "interfaces": [ + { + "name": "ifAppMemoryMonitor", + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifappmemorymonitor.md" + } + ], + "name": "roAppMemoryMonitor", + "url": "https://developer.roku.com/docs/references/brightscript/components/roappmemorymonitor.md" + }, "roarray": { "constructors": [ { @@ -5595,14 +5960,14 @@ { "default": null, "isRequired": true, - "name": "resizeAs", + "name": "resize", "type": "Boolean" } ], "returnType": "roArray" } ], - "description": "An array stores an indexed collection of BrightScript objects. Each entry of an array can be a different type, or they may all of the same type.\n\nAn roArray is created with two parameters:\n\n**CreateObject(\"roArray\", size As Integer, resizeAs Boolean)**\n\nSize is the initial number of elements allocated for the array. If resize is true, the array will be resized if needed to accommodate more elements. If the array is large, this might be slow. The \"dim\" statement may be used instead of CreateObject to allocate a new array. Dim has the advantage in that it automatically creates arrays of arrays for multi-dimensional arrays.", + "description": "An array stores an indexed collection of BrightScript objects. Each entry of an array can be a different type, or they may all of the same type.\n\nAn roArray is created with two parameters:\n\n**CreateObject(\"roArray\", size as Integer, resize as Boolean)**\n\nSize is the initial number of elements allocated for the array. If resize is true, the array will be resized if needed to accommodate more elements. If the array is large, this might be slow. The \"dim\" statement may be used instead of CreateObject to allocate a new array. Dim has the advantage in that it automatically creates arrays of arrays for multi-dimensional arrays.", "events": [], "interfaces": [ { @@ -5657,7 +6022,7 @@ }, "roaudioguide": { "constructors": [], - "description": "> This component is only available on the following devices: Roku Streaming Stick (3600X), Roku Express (3700X) and Express+ (3710X), Roku Premiere (4620X) and Premiere+ (4630X), Roku Ultra (4640X), and any Roku TV running Roku OS version 7.5 and later.\n\nThe roAudioGuide component provides Audio Guide support for applications that require custom speech beyond what is provided by automatic Audio Guide in SDK and Scene Graph components.\n\nThough some of the roAudioGuide API is similar to [roTextToSpeech](https://developer.roku.com/docs/references/brightscript/components/rotexttospeech.md\"roTextToSpeech\"), roAudioGuide provides support specific to Audio Guide, including:\n\n* Speaks when Audio Guide is enabled, and doesn't speak if it isn't.\n* Automatically splits up text to reduce lag.\n* Uses the correct voice, language, volume, and speech rate for Audio Guide.\n* Tries to be \"smart\" by pre-processing the text for correct pronunciation of things like currency, email addresses, acronyms, media-related names and titles, etc.\n\nUsually, roAudioGuide would be used on its own, but it can be used in conjunction with [roTextToSpeech](https://developer.roku.com/docs/references/brightscript/components/rotexttospeech.md\"roTextToSpeech\").", + "description": "> This component is only available on the following devices: Roku Streaming Stick (3600X), Roku Express (3700X) and Express+ (3710X), Roku Premiere (4620X) and Premiere+ (4630X), Roku Ultra (4640X), and any Roku TV running Roku OS version 7.5 and later.\n\nThe roAudioGuide component provides screen reader support for applications that require custom speech beyond what is provided by the automatic screen reader in SDK and Scene Graph components.\n\nThough some of the roAudioGuide API is similar to [roTextToSpeech](https://developer.roku.com/docs/references/brightscript/components/rotexttospeech.md\"roTextToSpeech\"), roAudioGuide provides support specific to screen reader, including:\n\n* Speaks when the screen reader is enabled, and doesn't speak if it isn't.\n* Automatically splits up text to reduce lag.\n* Uses the correct voice, language, volume, and speech rate for the screen reader.\n* Tries to be \"smart\" by pre-processing the text for correct pronunciation of things like currency, email addresses, acronyms, media-related names and titles, etc.\n\nUsually, roAudioGuide would be used on its own, but it can be used in conjunction with [roTextToSpeech](https://developer.roku.com/docs/references/brightscript/components/rotexttospeech.md\"roTextToSpeech\").", "events": [], "interfaces": [ { @@ -5727,7 +6092,7 @@ "params": [ { "isRequired": true, - "name": "param1", + "name": "filename", "type": "dynamic" } ], @@ -5862,25 +6227,27 @@ "name": "roByteArray", "url": "https://developer.roku.com/docs/references/brightscript/components/robytearray.md" }, - "rocaptionrenderer": { + "rocecstatus": { "constructors": [], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roCaptionRenderer component provides a mechanism for BrightScript channels to render closed captions in video played back with the roVideoPlayer. Prior to the v 5.2 Roku firmware, captions could only be rendered in roVideoScreen.\n\nPrior to the 5.2 Roku OS version, closed captions could only be rendered in roVideoScreen. Now channels that use roVideoPlayer embedded in an roScreen or roImageCanvas can also take advantage of Roku's closed captioning support. roCaptionRenderer supports two different modes, which is set using the [SetMode()](https://developer.roku.com/docs/references/brightscript/interfaces/ifcaptionrenderer.mdsetmodemode-as-integer-as-void \"SetMode()\") method. Depending on the mode set, and the type of screen being used, the BrightScript channel needs to do different levels of work to render captions. These different workflows are highlighted in the tables below:\n\n**Model 1**\n\n| roScreen | roImageCanvas |\n| --- | --- |\n| Call [SetScreen()](https://developer.roku.com/docs/references/brightscript/interfaces/ifcaptionrenderer.mdsetscreenscreen-as-object-as-void \"SetScreen()\") | Call [SetScreen()](https://developer.roku.com/docs/references/brightscript/interfaces/ifcaptionrenderer.mdsetscreenscreen-as-object-as-void \"SetScreen()\") |\n| Call [UpdateCaption()](https://developer.roku.com/docs/references/brightscript/interfaces/ifcaptionrenderer.mdupdatecaption-as-void \"UpdateCaption()\") | |\n\n**Model 2**\n\n| roScreen | roImageCanvas |\n| --- | --- |\n| All caption rendering is done by the channel's BrightScript code | All caption rendering is done by the channel's BrightScript code |\n\nBrightScript channels do not create roCaptionRenderer instances directly using CreateObject(). Instead, when an roVideoPlayer is created, it contains an roCaptionRenderer. BrightScript channels call [ifVideoPlayer.GetCaptionRenderer()](https://developer.roku.com/docs/references/brightscript/interfaces/ifvideoplayer.mdgetcaptionrenderer-as-object \"ifVideoPlayer.GetCaptionRenderer()\") to get the caption renderer associated with their video player.\n\n**Example**\n\n```\nFunction Main() as void\n mode = 1\n fonts = CreateObject(\"roFontRegistry\")\n fonts.Register(\"pkg:/fonts/vSHandprinted.otf\")\n font = fonts.GetFont(\"vSHandprinted\", 28, 500, false)\n screen = CreateObject(\"roScreen\", true)\n port = CreateObject(\"roMessagePort\")\n screen.Clear(&h00)\n screen.SwapBuffers()\n screen.SetMessagePort(port)\n timer = CreateObject(\"roTimespan\")\n screenSize = {}\n screenSize.width = screen.GetWidth()\n screenSize.height = screen.GetHeight()\n\n player = CreateObject(\"roVideoPlayer\")\n player.SetContentList([\n {\n Stream : { url :\"http://ecn.channel9.msdn.com/o9/content/smf/smoothcontent/elephantsdream/Elephants_Dream_1024-h264-st-aac.ism/manifest\" }\n StreamFormat : \"ism\"\n TrackIDAudio: \"audio_eng\"\n TrackIDSubtitle: \"ism/textstream_eng\"\n }\n ])\n\n captions = player.GetCaptionRenderer()\n if (mode = 1)\n captions.SetScreen(screen)\n endif\n captions.SetMode(mode)\n captions.SetMessagePort(port)\n captions.ShowSubtitle(true)\n\n player.play()\n\n while true\n msg = wait(250, port)\n if type(msg) = \"roCaptionRendererEvent\"\n if msg.isCaptionText()\n print \"isCaptionText\"\n if msg.GetMessage() <> invalid and msg.GetMessage() <> \"\"\n DrawCaptionString(screen, screenSize, msg.GetMessage(), font)\n timer.Mark()\n else if timer.TotalSeconds() > 2\n ClearCaptionString(screen)\n endif\n else if msg.isCaptionUpdateRequest()\n print \"isCaptionUpdateRequest()\"\n UpdateCaptions(screen, captions)\n end if\n endif\n end while\nEnd Function\n\nFunction UpdateCaptions(screen as object, captions as object) as Void\n screen.Clear(&h00)\n captions.UpdateCaption()\n screen.SwapBuffers()\nEnd Function\n\nFunction DrawCaptionString(screen as object, screenSize as object, caption as String, font as object) as Void\n screen.Clear(&h00)\n textHeight = font.GetOneLineHeight()\n textWidth = font.GetOneLineWidth(caption, screenSize.width)\n x = (screenSize.width - textWidth) / 2\n y = screenSize.height - textHeight\n screen.DrawText(caption, x, y, &hd5d522ff, font)\n screen.SwapBuffers()\nEnd Function\n\nFunction ClearCaptionString(screen as object) as void\n screen.Clear(&h00)\n screen.SwapBuffers()\nEnd Function\n```", + "description": "The roCECStatus component enables channels to identify the active-source status for set boxes.", "events": [ { - "name": "roCaptionRendererEvent", - "url": "https://developer.roku.com/docs/references/brightscript/event/rocaptionrendererevent.md" + "name": "roCECStatusEvent", + "url": "https://developer.roku.com/docs/references/brightscript/events/rocecstatusevent.md" } ], "interfaces": [ { - "name": "ifCaptionRenderer", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifcaptionrenderer.md" + "name": "ifCECStatus", + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifcecstatus.md" + }, + { + "name": "ifMessagePort", + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifmessageport.md" } ], - "isDeprecated": true, - "name": "roCaptionRenderer", - "url": "https://developer.roku.com/docs/references/brightscript/components/rocaptionrenderer.md" + "name": "roCECStatus", + "url": "https://developer.roku.com/docs/references/brightscript/components/rocecstatus.md" }, "rochannelstore": { "constructors": [ @@ -5889,7 +6256,7 @@ "returnType": "roChannelStore" } ], - "description": "The roChannelStore component allows the application to perform a purchase of an In-Channel Product or upgrade a channel. Most of the purchase flow, screens and messaging associated with the financial transaction are handled by the Roku OS outside of control or monitoring by BrightScript code. The BrightScript code merely initiates the purchase and receives a final result. This will engender trust with users and give them confidence that they are dealing with the Roku Channel Store.\n\nThe roChannelStore component allows purchasing only those In-Channel Products which are associated with the running channel. Please see [Adding in-channel products](/docs/developer-program/roku-pay/quickstart/in-channel-products.md \"Adding in-channel products\") for details on how to create an In-Channel Product and associate it with a channel. After one or Products are created, GetCatalog() can be used to retrieve a list of Products and their attributes. DoOrder() can be called to initiate a purchase of one or more of the Products.\n\nThe roChannelStore object has a FakeServer() method that will enable you to test the purchase flow scenarios without actually making a real transaction in the Roku channel store. This will be useful in the development of your channel, but should never be used in the actual channel you publish.\n\nThis object is created without any arguments:\n\n`CreateObject(\"roChannelStore\")`\n\n> Because [ifChannelStore.DoOrder()](https://developer.roku.com/docs/references/brightscript/interfaces/ifchannelstore.mddoorder-as-boolean \"ifChannelStore.DoOrder()\") needs to read the product type returned by GetCatalog(), only one instance of roChannelStore should ever be used for a complete purchase flow - you should never create a separate roChannelStore object to complete a purchase that was initiated by a different instance of roChannelStore.", + "description": "The roChannelStore component allows the application to perform a purchase of an In-Channel Product or upgrade a channel. Most of the purchase flow, screens and messaging associated with the financial transaction are handled by the Roku OS outside of control or monitoring by BrightScript code. The BrightScript code merely initiates the purchase and receives a final result. This will engender trust with users and give them confidence that they are dealing with the Roku Channel Store.\n\nThe roChannelStore component allows purchasing only those In-Channel Products which are associated with the running channel. Please see [Adding in-channel products](/docs/developer-program/roku-pay/quickstart/in-channel-products.md \"Adding in-channel products\") for details on how to create an In-Channel Product and associate it with a channel. After one or Products are created, GetCatalog() can be used to retrieve a list of Products and their attributes. DoOrder() can be called to initiate a purchase of one or more of the Products.\n\nThis object is created without any arguments:\n\n`CreateObject(\"roChannelStore\")`\n\n> Because [ifChannelStore.DoOrder()](https://developer.roku.com/docs/references/brightscript/interfaces/ifchannelstore.mddoorder-as-boolean \"ifChannelStore.DoOrder()\") needs to read the product type returned by GetCatalog(), only one instance of roChannelStore should ever be used for a complete purchase flow - you should never create a separate roChannelStore object to complete a purchase that was initiated by a different instance of roChannelStore.", "events": [ { "name": "roChannelStoreEvent", @@ -5913,39 +6280,6 @@ "name": "roChannelStore", "url": "https://developer.roku.com/docs/references/brightscript/components/rochannelstore.md" }, - "rocoderegistrationscreen": { - "constructors": [ - { - "params": [], - "returnType": "roCodeRegistrationScreen" - } - ], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe Code Registration Screen is designed to present the user a registration code, and the information required to instruct the user on how to register with a service provider. This screen is designed for a rendezvous registration process, where the user is presented a code and the URL for a registration site. The user goes to the site and enters their code, which causes the device and the account to be linked. In the background, the script is polling for completion and the screen is closed to display an activation successful screen when done.\n\n**Diagram: roCodeRegistrationScreen**\n\n![Diagram: roCodeRegistrationScreen](https://image.roku.com/ZHZscHItMTc2/roCodeRegistrationScreenImage1.png \"roCodeRegistrationScreenImage1\")\n\n**Example**\n\n```\nFunction ShowMessageDialog() As Void\n port = CreateObject(\"roMessagePort\")\n screen = CreateObject(\"roCodeRegistrationScreen\")\n screen.SetMessagePort(port)\n screen.SetTitle(\"[Registration screen title]\")\n screen.AddParagraph(\"[Registration screen paragraphs are justified to right and left edges]\")\n screen.AddFocalText(\" \", \"spacing-dense\")\n screen.AddFocalText(\"From your computer,\", \"spacing-dense\")\n screen.AddFocalText(\"go to mysite.com/roku\", \"spacing-dense\")\n screen.AddFocalText(\"and enter this code:\", \"spacing-dense\")\n screen.AddFocalText(\" \", \"spacing-dense\")\n screen.SetRegistrationCode(\"retrieving code...\")\n screen.AddParagraph(\"[Registration screen paragraphs are justified to right and left edges and may continue on multiple lines]\")\n screen.AddButton(0, \"get a new code\")\n screen.AddButton(1, \"back\")\n screen.Show()\n sleep (10000) 'simulate fetching registration code from webapi\n screen.SetRegistrationCode(\"ABC7TG\")\n screen.Show()\n while true\n dlgMsg = wait(0, dialog.GetMessagePort())\n exit while\n end while\n End Function\n```\n\n**Image: roCodeRegistrationScreen example results**\n\n![cdregistscrn1](https://image.roku.com/ZHZscHItMTc2/cdregistscrn1.jpg \"cdregistscrn1\")\n\n![cdregistscrn2](https://image.roku.com/ZHZscHItMTc2/cdregistscrn2.jpg \"cdregistscrn2\")", - "events": [ - { - "name": "roCodeRegistrationScreenEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/rocoderegistrationscreenevent.md" - } - ], - "interfaces": [ - { - "name": "ifCodeRegistrationScreen", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iifCodeRegistrationScreen.md" - }, - { - "name": "ifGetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifgetmessageport.md" - }, - { - "name": "ifSetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md" - } - ], - "isDeprecated": true, - "name": "roCodeRegistrationScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rocoderegistrationscreen.md" - }, "rocompositor": { "constructors": [ { @@ -5975,7 +6309,7 @@ "events": [ { "name": "roSocketEvent", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifappinfo.md" + "url": "https://developer.roku.com/docs/references/brightscript/events/rosocketevent.md" } ], "interfaces": [ @@ -6087,6 +6421,20 @@ "name": "roDouble", "url": "https://developer.roku.com/docs/references/brightscript/components/rodouble.md" }, + "rodsa": { + "availableSince": "10.5", + "constructors": [], + "description": "_Available since Roku OS 10.5_\n\nThe DSA component provides support for the ECDSA and EdDSA (with Ed25519 form) digital signature algorithms. It is used to provide cryptographically signed evidence that an ad request originated from an actual Roku device.", + "events": [], + "interfaces": [ + { + "name": "ifDsa", + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifdsa.md" + } + ], + "name": "roDsa", + "url": "https://developer.roku.com/docs/references/brightscript/components/rodsa.md" + }, "roevpcipher": { "constructors": [], "description": "The EVP Cipher component provides an interface to the OpenSSL EVP library of symmetric cipher commands. The EVP library provides a high-level interface to cryptographic functions to implement digital \"envelopes\".\n\nThese commands allow data to be encrypted or decrypted using various block and stream ciphers using keys based on passwords or explicitly provided.\n\nSome of the ciphers do not have large keys and others have security implications if not used correctly. A beginner is advised to just use a strong block cipher in CBC mode such as bf or des3. All the block ciphers normally use PKCS#5 padding also known as standard block padding. If padding is disabled then the input data must be a multiple of the cipher block length.\n\n> For additional information on the OpenSSL library of symmetric ciphers see: [https://www.openssl.org/docs/manmaster/man1/enc.html](https://www.openssl.org/docs/manmaster/man1/enc.html).\n\n**List of supported ciphers**\n\n| Name | Cipher | Key size (bits) | Block size (bits) |\n| --- | --- | --- | --- |\n| bf-cbc | Blowfish in CBC mode | 128 | 64 |\n| bf | Alias for bf-cbc | 128 | 64 |\n| bf-cfb | Blowfish in CFB mode | 128 | 64 |\n| bf-ecb | Blowfish in ECB mode | 128 | 64 |\n| bf-ofb | Blowfish in OFB mode | 128 | 64 |\n| des-cbc | DES in CBC mode | 56 | 64 |\n| des | Alias for des-cbc | 56 | 64 |\n| des-cfb | DES in CBC mode | 56 | 64 |\n| des-ecb | DES in ECB mode | 56 | 64 |\n| des-ofb | DES in OFB mode | 56 | 64 |\n| des-ede-cbc | Two key triple DES EDE in CBC mode | 80 | 64 |\n| des-ede | Two key triple DES EDE in ECB mode | 80 | 64 |\n| des-ede-cfb | Two key triple DES EDE in CFB mode | 80 | 64 |\n| des-ede-ofb | Two key triple DES EDE in OFB mode | 80 | 64 |\n| des-ede3-cbc | Three key triple DES EDE in CBC mode | 112 | 64 |\n| des-ede3 | Three key triple DES EDE in ECB mode | 112 | 64 |\n| des3 | Alias for des-ede3-cbc | 112 | 64 |\n| des-ede3-cfb | Three key triple DES EDE in CFB mode | 112 | 64 |\n| des-ede3-ofb | Three key triple DES EDE in OFB mode | 112 | 64 |\n| desx | DESX algorithm | approx. 119 | 64 |\n| desx-cbc | DESX in CBC mode | approx. 119 | 64 |\n| aes-\\[128/192/256\\]-cbc | 128/192/256 bit AES in CBC mode | 128,192,256 | 128 |\n| aes-\\[128/192/256\\] | Alias for aes-\\[128/192/256\\]-cbc | 128,192,256 | 128 |\n| aes-\\[128/192/256\\]-cfb | 128/192/256 bit AES in 128 bit CFB mode | 128,192,256 | 128 |\n| aes-\\[128/192/256\\]-cfb1 | 128/192/256 bit AES in 1 bit CFB mode | 128,192,256 | 128 |\n| aes-\\[128/192/256\\]-cfb8 | 128/192/256 bit AES in 8 bit CFB mode | 128,192,256 | 128 |\n| aes-\\[128/192/256\\]-ecb | 128/192/256 bit AES in ECB mode | 128,192,256 | 128 |\n| aes-\\[128/192/256\\]-ofb | 128/192/256 bit AES in OFB mode | 128,192,256 | 128 |", @@ -6179,43 +6527,6 @@ "name": "roFont", "url": "https://developer.roku.com/docs/references/brightscript/components/rofont.md" }, - "rofontmetrics": { - "constructors": [ - { - "params": [ - { - "default": null, - "isRequired": true, - "name": "font", - "type": "String" - } - ], - "returnType": "roFontMetrics" - }, - { - "params": [ - { - "isRequired": true, - "name": "param1", - "type": "dynamic" - } - ], - "returnType": "roFontMetrics" - } - ], - "deprecatedDescription": "This class is deprecated. Developers should use [roFont](/docs/references/brightscript/components/roFont.md \"roFont\") methods (GetOneLineHeight and GetOneLineWidth).\n", - "description": "> This class is deprecated. Developers should use [roFont](https://developer.roku.com/docs/references/brightscript/components/roFont.md\"roFont\") methods (GetOneLineHeight and GetOneLineWidth).\n\nThe roFontMetrics object allows you to get display size information for a specific font returned by the roFontRegistry.Get() method.\n\nIn order to use this object, you must first initialize the roFontMetrics object with a font name that had been previously registered with the roFontRegistry, then the total rendered size of strings in that font can be returned by roFontMetrics.Size().\n\nThis object is created with a string that represents the font to use in its size calculations:\n\n`CreateObject(\"roFontMetrics\", String font)`\n\n**Example: Simple use of roFontRegistry and roFontMetrics to render a string on the roImageCanvas**\n\n```\nhelloString = \"Hello ImageCanvas\"\n\nfontReg = CreateObject(\"roFontRegistry\")\nfontReg.Register(\"pkg:/fonts/LCDMono.ttf\")\nfont = fontReg.Get(\"LCDMono\",36,50,false) ' 36pt, 50 is normal\n ' weight, no italics\n\nfontMetrics = CreateObject(\"roFontMetrics\", font)\nstringSize = fontMetrics.size(helloString)\n\ncanvasItem = { \n Text:helloString\n TextAttrs:{Color:\"#FFCCCCCC\", Font:font, \n HAlign:\"HCenter\",\n VAlign:\"VCenter\", Direction:\"LeftToRight\"}\n TargetRect:{x:390,y:357, w:stringSize.w,h:stringSize.h}\n}\n\ncanvas = CreateObject(\"roImageCanvas\")\nport = CreateObject(\"roMessagePort\")\ncanvas.SetMessagePort(m.port)\n'Set opaque background\ncanvas.SetLayer(0, {Color:\"#FF000000\", CompositionMode:\"Source\"})\ncanvas.SetRequireAllImagesToDraw(true)\ncanvas.SetLayer(1, canvasItem)\ncanvas.Show()\n```", - "events": [], - "interfaces": [ - { - "name": "ifFontMetrics", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iffontmetrics.md" - } - ], - "isDeprecated": true, - "name": "roFontMetrics", - "url": "https://developer.roku.com/docs/references/brightscript/components/rofontmetrics.md" - }, "rofontregistry": { "constructors": [ { @@ -6223,7 +6534,7 @@ "returnType": "roFontRegistry" } ], - "description": "The roFontRegistry object allows you to create roFont objects, either using the default font or using fonts in TrueType or OpenType files packaged with your application.\n\nThis object is created with no parameters:\n\n`CreateObject(\"roFontRegistry\")`\n\n**Example**\n\n```\nreg = CreateObject(\"roFontRegistry\")\nfont = reg.GetDefaultFont(30, false, false)\nscreen = CreateObject(\"roScreen\")\nscreen.DrawText(\"hello world\", 100, 100, &hFFFFFFFF, font)\n```\n\n**Example using a font file**\n\n```\nreg.Register(\"pkg:/fonts/myfont.ttf\")\nfont = reg.GetFont(\"MyFont\", 30, false, false)\nscreen = CreateObject(\"roScreen\")\nscreen.DrawText(\"hello world\", 100, 100, &hFFFFFFFF, font)\n```\n\nFont files can quickly get very large, so be conscious of the size of the font files you include with your application. You should be able to find very good font files that are 50k or less. Anything larger is probably too big. The customvideoplayer sample application is a good example of usage.", + "description": "The roFontRegistry object allows you to create roFont objects, either using the default font or using fonts in TrueType or OpenType files packaged with your application.\n\nThis object is created with no parameters:\n\n`CreateObject(\"roFontRegistry\")`\n\n**Example**\n\n```\nreg = CreateObject(\"roFontRegistry\")\nfont = reg.GetDefaultFont(30, false, false)\nscreen = CreateObject(\"roScreen\")\nscreen.DrawText(\"hello world\", 100, 100, &hFFFFFFFF, font)\n```\n\n**Example using a font file**\n\n```\nreg.Register(\"pkg:/fonts/myfont.ttf\")\nfont = reg.GetFont(\"MyFont\", 30, false, false)\nscreen = CreateObject(\"roScreen\")\nscreen.DrawText(\"hello world\", 100, 100, &hFFFFFFFF, font)\n```\n\nFont files can quickly get very large, so be conscious of the size of the font files you include with your application. You should be able to find very good font files that are 50k or less. Anything larger is probably too big.", "events": [], "interfaces": [ { @@ -6251,43 +6562,6 @@ "name": "roFunction", "url": "https://developer.roku.com/docs/references/brightscript/components/rofunction.md" }, - "rogridscreen": { - "constructors": [ - { - "params": [], - "returnType": "roGridScreen" - } - ], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe Grid Screen provides a graphical display of poster art from multiple content categories from within a single screen.\n\nUsers can browse within a category list by scrolling horizonally and between category lists by scrolling vertically. There is an optional callout box in the lower right corner of the screen that can display details about the focused item without leaving the screen. Each item in the grid screen is represented by an image (aka poster), so any type of item that can be visually represented by an image can be displayed in the poster screen. It is used to show lists of data to users and common patterns include content categories, movies, podcasts, pictures, and search results. The initial release of roGridScreen only enabled the default list style, \"portrait\", using the following art sizes:\n\n* Artwork sizes: SD=110x150; HD=210x270\n\nIt also required grid posters to be .jpg files.\n\nLater Roku OS versions added mixed aspect ratio grids, and the [ifGridScreen](https://developer.roku.com/docs/references/brightscript/interfaces/ifgridscreen.md\"ifGridScreen\") interface [SetListPosterStyles()](https://developer.roku.com/docs/references/brightscript/interfaces/ifgridscreen.mdsetlistposterstylesstyles-as-object-as-void \"SetListPosterStyles()\") to set the aspect ratio of each row in the grid. If you want a mixed aspect ratio grid, you must call SetListPosterStyles() before you call [SetContentList()](https://developer.roku.com/docs/references/brightscript/interfaces/ifgridscreen.mdsetcontentlistrowindex-as-integer-contentlist-as-object-as-void \"SetContentList()\"), to avoid possible distortion of the graphic images in the grid.\n\n**Since Roku OS version 2.8**\n\nFile types of .png and .gif files are now supported, though they are converted internally to .jpg by the roGridScreen so they have a performance penalty.\n\nIn v2.8, there are now multiple grid styles that are specified in the SetGridStyle()method below. It's also worth going back and reviewing the appManager theme parameters in [roAppManager](https://developer.roku.com/docs/references/brightscript/components/roappmanager.md\"roAppManager\"), as v2.8 adds some new grid parameters. The border around the focused poster screen can be customized with the GridScreenFocusBorder images in png format. PNG files can have a transparent color value that you will need to allow the focused poster image to show through the border image. The corresponding offsets should be negative offsets that would be up and to the left of the top left corner of the poster image. The width of the borders should be the absolute values of the offsets and the rest of the image should be transparent inside. The GridScreenDescriptionImage is also positioned relative to the top left corner of the focused image. It can be positioned up and to the left with negative x and y offsets, below and to the right with positive offsets, or in the other corners with mixed signed x and y offsets. It's recommended that you include a \"callout\" tip pointing to the focused image in the GridScreenDescriptionImage.\n\n**Diagram: roGridScreen**\n\n![Diagram: roGridScreen](https://image.roku.com/ZHZscHItMTc2/roGridScreen.png \"roGridScreen\")\n\nThis object is created with no parameters:\n\n`CreateObject(\"roGridScreen\")`\n\n**Example**\n\n```\nFunction Main()\n port = CreateObject(\"roMessagePort\")\n grid = CreateObject(\"roGridScreen\")\n grid.SetMessagePort(port)\n rowTitles = CreateObject(\"roArray\", 10, true)\n for j = 0 to 10\n rowTitles.Push(\"[Row Title \" + j.toStr() + \" ] \")\n end for\n grid.SetupLists(rowTitles.Count())\n grid.SetListNames(rowTitles)\n for j = 0 to 10\n list = CreateObject(\"roArray\", 10, true)\n for i = 0 to 10\n o = CreateObject(\"roAssociativeArray\")\n o.ContentType = \"episode\"\n o.Title = \"[Title\" + i.toStr() + \"]\"\n o.ShortDescriptionLine1 = \"[ShortDescriptionLine1]\"\n o.ShortDescriptionLine2 = \"[ShortDescriptionLine2]\"\n o.Description = \"\"\n o.Description = \"[Description] \"\n o.Rating = \"NR\"\n o.StarRating = \"75\"\n o.ReleaseDate = \"[ SceneGraph Audio and Video nodes always create a new roHttpAgent object and do not share it, and can use a different mechanism for HTTPS and cookie support, that involves setting certificates and cookies as Content Meta-Data attributes for the node ContentNode node.", + "description": "All SceneGraph nodes can use the roHttpAgent component to support cookies, custom HTTP headers, and support secure HTTP file transfer protocols, such as passing certificates to the server as part of a URL transfer. An roHttpAgent component object is created by default for all SceneGraph nodes for this purpose. The roHttpAgent object supports the [ifHttpAgent](https://developer.roku.com/docs/references/brightscript/interfaces/ifhttpagent.md\"ifHttpAgent\") interface used by many BrightScript components to allow secure HTTP file transfer protocols. Child nodes of a SceneGraph node automatically inherit the parent roHttpAgent object, unless a new roHttpAgent object is created, or an existing roHttpAgent is set for a child node. There are two roSGNode [ifSGNodeHttpAgentAccess](https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodehttpagentaccess.md\"ifSGNodeHttpAgentAccess\") interface methods that allow a specific roHttpAgent object to be selected and set for a specific SceneGraph node.\n\nAn roHttpAgent object is created automatically for all SceneGraph nodes, or can be created with no parameters:\n\n`CreateObject(\"roHttpAgent\")`\n\n> SceneGraph Audio and Video nodes always create a new roHttpAgent object and do not share it, and can use a different mechanism for HTTPS and cookie support, that involves setting certificates and cookies as Content Meta-Data attributes for the node ContentNode.", "events": [], "interfaces": [ { @@ -6341,37 +6615,13 @@ "name": "roHttpAgent", "url": "https://developer.roku.com/docs/references/brightscript/components/rohttpagent.md" }, - "roimagecanvas": { + "roimagemetadata": { "constructors": [ { "params": [], - "returnType": "roImageCanvas" - } - ], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roImageCanvas component provides an interface to render graphic elements at specific spots on the screen.\n\nAlthough it is not intended to be a full-fledged graphics component for high-performance gaming, it does provide a simple interface for building custom animations out of arrays of images displayed on the screen.\n\nAn item (graphical element) may be one of three types: image, text, or colored rectangle. The item type is determined by the [Content Meta-data](/docs/developer-program/getting-started/architecture/content-metadata.md \"Content Meta-data\") fields set on the item.", - "events": [ - { - "name": "roImageCanvasEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/roimagecanvasevent.md" - } - ], - "interfaces": [ - { - "name": "ifHttpAgent", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifhttpagent.md" - }, - { - "name": "ifImageCanvas", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifimagecanvas.md" + "returnType": "roImageMetadata" } ], - "isDeprecated": true, - "name": "roImageCanvas", - "url": "https://developer.roku.com/docs/references/brightscript/components/roimagecanvas.md" - }, - "roimagemetadata": { - "constructors": [], "description": "The roImageMetadata component provides developers access to image file metadata included in many .jpg EXIF headers.\n\nroImageMetadata currently only works with local file Urls.\n\nThis object is created without any arguments:\n\n`CreateObject(\"roImageMetadata\")`", "events": [], "interfaces": [ @@ -6445,39 +6695,6 @@ "name": "roInvalid", "url": "https://developer.roku.com/docs/references/brightscript/components/roinvalid.md" }, - "rokeyboardscreen": { - "constructors": [ - { - "params": [], - "returnType": "roKeyboardScreen" - } - ], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe Keyboard Screen is designed to allow the user to enter an alpha-numeric string for searching, username/password registration or other purposes.\n\nThis component is generally used as part of a sequence of screens and the results are displayed on the subsequent screen in the sequence. In the case of a search screen, results are displayed on the roPosterScreen and categories may be used to segregate TV and Movie results.\n\n**Diagram: roKeyboardScreen**\n\n![**Diagram: roKeyboardScreen**](https://image.roku.com/ZHZscHItMTc2/roKeyboardScreenImage1.png \"roKeyboardScreenImage1\")\n\n**Example**\n\n```\nSub Main()\n screen = CreateObject(\"roKeyboardScreen\")\n port = CreateObject(\"roMessagePort\")\n screen.SetMessagePort(port)\n screen.SetTitle(\"Search Screen\")\n screen.SetText(\"default\")\n screen.SetDisplayText(\"enter text to search\")\n screen.SetMaxLength(8)\n screen.AddButton(1, \"finished\")\n screen.AddButton(2, \"back\")\n screen.Show()\n\n while true\n msg = wait(0, screen.GetMessagePort())\n print \"message received\"\n if type(msg) = \"roKeyboardScreenEvent\"\n if msg.isScreenClosed()\n return\n else if msg.isButtonPressed() then\n print \"Evt:\"; msg.GetMessage ();\" idx:\"; msg.GetIndex()\n if msg.GetIndex() = 1\n searchText = screen.GetText()\n print \"search text: \"; searchText\n return\n endif\n endif\n endif\n end while\nEnd Sub\n```\n\n**Image: roKeyboardScreen example results**\n\n![Image: roKeyboardScreen example results](https://image.roku.com/ZHZscHItMTc2/roKeyboardScreenImage2.png \"roKeyboardScreenImage2\")", - "events": [ - { - "name": "roKeyboardScreenEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/rokeyboardscreenevent.md" - } - ], - "interfaces": [ - { - "name": "ifGetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifgetmessageport.md" - }, - { - "name": "ifKeyboardScreen", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifkeyboardscreen.md" - }, - { - "name": "ifSetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md" - } - ], - "isDeprecated": true, - "name": "roKeyboardScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rokeyboardscreen.md" - }, "rolist": { "constructors": [ { @@ -6516,38 +6733,6 @@ "name": "roList", "url": "https://developer.roku.com/docs/references/brightscript/components/rolist.md" }, - "rolistscreen": { - "constructors": [], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe List Screen provides a graphical display of content in a vertical list within a single screen.\n\nUsers can browse the content by scrolling the text list vertically. The vertical list is displayed on the left side of the screen and the poster is displayed on the right side of the screen. As the user scrolls through the content, the poster is updated with the poster art of the focused list item. There is an optional short description text below the poster that can display the description of the focused item and gets updated as the user scrolls the list.\n\nThe poster art uses the following art sizes:\n\n```\n Artwork sizes: SD=136x124; HD=250x250\n```\n\nroListScreen has a default dark highlight for the focused list item. The highlight can be customized by including a .png file with the following dimensions:\n\n```\n Highlight sizes: SD=304x38; HD=511x54\n```\n\n![List Screen Draft](https://image.roku.com/ZHZscHItMTc2/roListScreen.png \"roListScreen\")", - "events": [ - { - "name": "roListScreenEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/rolistscreenevent.md" - } - ], - "interfaces": [ - { - "name": "ifGetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifgetmessageport.md" - }, - { - "name": "ifHttpAgent", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifhttpagent.md" - }, - { - "name": "ifListScreen", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iflistscreen.md" - }, - { - "name": "ifSetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md" - } - ], - "isDeprecated": true, - "name": "roListScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rolistscreen.md" - }, "rolocalization": { "constructors": [ { @@ -6583,39 +6768,6 @@ "name": "roLongInteger", "url": "https://developer.roku.com/docs/references/brightscript/components/rolonginteger.md" }, - "romessagedialog": { - "constructors": [ - { - "params": [], - "returnType": "roMessageDialog" - } - ], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe Message Dialog displays a formatted, multi-line text message to the user. The dialog may optionally be displayed with a busy animation to indicate progress on a long running operation. The dialog will automatically handle formatting of text and resize to fit. It may also display buttons to get user acknowledgment or a selection choice.\n\nThe following example shows an roMessageDialog with a single done button. When the title, text and button are added, the dialog automatically formats and resizes the dialog as needed for display when Show() is called.\n\n**Diagram: roMessageDialog**\n\n![Diagram: roMessageDialog](https://image.roku.com/ZHZscHItMTc2/roMessageDialog.png \"roMessageDialog\")\n\n**Example**\n\nThe following code example creates a message dialog and displays it to the user. Note that dialogs are not full screen and that the previous screen is dimmed and displays in the background. When the user presses the message dialog button, the dialog is dismissed and the previous screen comes to the foreground. Since dialog.EnableBackButton(true) is also called, the message dialog is dismissed when the remote control's back button is pressed as well. You can of course add additional buttons to your message dialogs that do things other than dismiss the dialog. You would simply need to implement button specific event handling code for these cases in the dlgMsg.isButtonPressed() code block.\n\n```\nFunction ShowMessageDialog() As Void\n port = CreateObject(\"roMessagePort\")\n dialog = CreateObject(\"roMessageDialog\")\n dialog.SetMessagePort(port)\n dialog.SetTitle(\"[Message dialog title]\")\n dialog.SetText(\"[Message dialog text............]\")\n\n dialog.AddButton(1, \"[button text]\")\n dialog.EnableBackButton(true)\n dialog.Show()\n While True\n dlgMsg = wait(0, dialog.GetMessagePort())\n If type(dlgMsg) = \"roMessageDialogEvent\"\n if dlgMsg.isButtonPressed()\n if dlgMsg.GetIndex() = 1\n exit while\n end if\n else if dlgMsg.isScreenClosed()\n exit while\n end if\n end if\n end while\nEnd Function\n```\n\n**Image: roMessageDialog example results**\n\n![roMessageDialog example results](https://image.roku.com/ZHZscHItMTc2/roMessageDialogimage2.png \"roMessageDialogimage2\")", - "events": [ - { - "name": "roMessageDialogEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/romessagedialogevent.md" - } - ], - "interfaces": [ - { - "name": "ifGetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifgetmessageport.md" - }, - { - "name": "ifMessageDialog", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifmessagedialog.md" - }, - { - "name": "ifSetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md" - } - ], - "isDeprecated": true, - "name": "roMessageDialog", - "url": "https://developer.roku.com/docs/references/brightscript/components/romessagedialog.md" - }, "romessageport": { "constructors": [ { @@ -6636,7 +6788,7 @@ }, "romicrophone": { "constructors": [], - "description": "The roMicrophone API allows channel applications to receive audio data from the user’s microphone-supported remote control device or mobile phone. When a user initiates recording on their remote control device or mobile phone (via the Roku Mobile App) for the first time within the application, the application will request the user’s permission for the application to access the microphone by displaying a UI dialog box.\n\nThe application will only receive microphone access if the permission is granted by the user.\n\n![microphone-access](https://image.roku.com/ZHZscHItMTc2/microphone-access.jpg \"microphone-access\")\n\nAfter the permission is granted, whenever a user activates the microphone, the application will display a notice informing the user that the microphone is currently being used by the application.\n\nFrom the settings menu (Settings > Privacy > Microphone), the user can revoke microphone permissions from individual applications, at which time the particular application will not be able to access the microphone unless the user re-enables microphone permissions.\n\nFrom the settings menu, the user may also:\n\n* (a) enable universal microphone access permissions for all applications (thereby eliminating the need to request microphone permission on an application by application basis), and\n* (b) prohibit all applications from accessing the microphone.\n\n![microphone-setting](https://image.roku.com/ZHZscHItMTc2/microphone-setting.jpg \"microphone-setting\")\n\nWhen integrating the roMicrophone API, you acknowledge and agree to the following:\n\n* (i) that you will notify your users of your collection, use, and disclosure of any voice recordings or other derived data that you receive through the roMicrophone API;\n* (ii) you will not modify, circumvent, obscure, or otherwise diminish the notices provided by the roMicrophone API to users when they activate or enable microphone recording from their remote control device or mobile phone;\n* (iii) you will not collect any information from, or otherwise activate, the microphone on any remote control device or mobile phone using the roMicrophone API feature without receiving the requisite permissions from the user;\n* (iv) you have and will maintain a legally adequate privacy policy;\n* (v) you have and will maintain all necessary rights and consents from users to use the roMicrophone API features; and\n* (vi) your use of the roMicrophone API features will comply with all applicable laws, rules, and regulations.\n\nYOU FURTHER AGREE YOU WILL NOT USE THE roMicrophone API AND FEATURES IN CONNECTION WITH CONTENT OR CHANNELS DIRECTED TOWARD CHILDREN OR IN CONNECTION WITH USERS KNOWN TO BE CHILDREN. If Roku discovers or determines that you are using the roMicrophone API and features in connection with content or channels directed toward children or with users known to be children, Roku reserves the right to disable or otherwise limit your access to the roMicrophone API feature and related functionality.\n\nYOU MAY NOT ENABLE THE roMicrophone API FEATURES IF YOU DO NOT AGREE TO ABOVE. PLEASE CONTACT ROKU FOR FURTHER INFORMATION. Implementation\n\nThe application should display a focusable button or indicator in the UI that the user selects by pressing and holding the OK button. In response to the OK press event, the application can call:\n\n* [StartRecording()](https://developer.roku.com/docs/references/brightscript/interfaces/ifmicrophone.md\"StartRecording\") - to receive streamed audio data from the microphone asynchronously or\n* [RecordToFile()](https://developer.roku.com/docs/references/brightscript/interfaces/ifmicrophone.md\"RecordToFile()\") - to have the audio data directly captured to a WAV format output file.\n\n> Roku OS will display a HUD to let the user initially consent to be recorded and to subsequently be informed when the microphone is being used. Recording is performed as long as the user holds down the OK button, or until a limit is reached or if an error should occur.", + "description": "The roMicrophone API allows channel applications to receive audio data from the user’s microphone-supported remote control device or mobile phone. When a user initiates recording on their remote control device or mobile phone (via the Roku Mobile App) for the first time within the application, the application will request the user’s permission for the application to access the microphone by displaying a UI dialog box.\n\nThe application will only receive microphone access if the permission is granted by the user.\n\n![roku815px - microphone-access](https://image.roku.com/ZHZscHItMTc2/microphone-access.jpg \"microphone-access\")\n\nAfter the permission is granted, whenever a user activates the microphone, the application will display a notice informing the user that the microphone is currently being used by the application.\n\nFrom the settings menu (Settings > Privacy > Microphone), the user can revoke microphone permissions from individual applications, at which time the particular application will not be able to access the microphone unless the user re-enables microphone permissions.\n\nFrom the settings menu, the user may also:\n\n* (a) enable universal microphone access permissions for all applications (thereby eliminating the need to request microphone permission on an application by application basis), and\n* (b) prohibit all applications from accessing the microphone.\n\n![roku815px - microphone-setting](https://image.roku.com/ZHZscHItMTc2/microphone-setting.jpg \"microphone-setting\")\n\nWhen integrating the roMicrophone API, you acknowledge and agree to the following:\n\n* (i) that you will notify your users of your collection, use, and disclosure of any voice recordings or other derived data that you receive through the roMicrophone API;\n* (ii) you will not modify, circumvent, obscure, or otherwise diminish the notices provided by the roMicrophone API to users when they activate or enable microphone recording from their remote control device or mobile phone;\n* (iii) you will not collect any information from, or otherwise activate, the microphone on any remote control device or mobile phone using the roMicrophone API feature without receiving the requisite permissions from the user;\n* (iv) you have and will maintain a legally adequate privacy policy;\n* (v) you have and will maintain all necessary rights and consents from users to use the roMicrophone API features; and\n* (vi) your use of the roMicrophone API features will comply with all applicable laws, rules, and regulations.\n\nYOU FURTHER AGREE YOU WILL NOT USE THE roMicrophone API AND FEATURES IN CONNECTION WITH CONTENT OR CHANNELS DIRECTED TOWARD CHILDREN OR IN CONNECTION WITH USERS KNOWN TO BE CHILDREN. If Roku discovers or determines that you are using the roMicrophone API and features in connection with content or channels directed toward children or with users known to be children, Roku reserves the right to disable or otherwise limit your access to the roMicrophone API feature and related functionality.\n\nYOU MAY NOT ENABLE THE roMicrophone API FEATURES IF YOU DO NOT AGREE TO ABOVE. PLEASE CONTACT ROKU FOR FURTHER INFORMATION. Implementation\n\nThe application should display a focusable button or indicator in the UI that the user selects by pressing and holding the OK button. In response to the OK press event, the application can call:\n\n* [StartRecording()](https://developer.roku.com/docs/references/brightscript/interfaces/ifmicrophone.md\"StartRecording\") - to receive streamed audio data from the microphone asynchronously or\n* [RecordToFile()](https://developer.roku.com/docs/references/brightscript/interfaces/ifmicrophone.md\"RecordToFile()\") - to have the audio data directly captured to a WAV format output file.\n\n> Roku OS will display a HUD to let the user initially consent to be recorded and to subsequently be informed when the microphone is being used. Recording is performed as long as the user holds down the OK button, or until a limit is reached or if an error should occur.", "events": [ { "name": "roMicrophoneEvent", @@ -6660,69 +6812,8 @@ "name": "roMicrophone", "url": "https://developer.roku.com/docs/references/brightscript/components/romicrophone.md" }, - "roonelinedialog": { - "constructors": [], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe One Line Dialog is a special type of dialog optimized for single line text.\n\nUnlike the message dialog ([roMessageDialog](https://developer.roku.com/docs/references/brightscript/components/roMessageDialog.md\"roMessageDialog\")) which displays formatted multi-line messages, roOneLineDialog displays a single line of text centered for the user.\n\nThis dialog is optimized for rendering of single-line text strings. It is generally used for displaying text to indicate that an operation is in progress. When the operation completes, the dialog is destroyed and the message dialog disappears.", - "events": [ - { - "name": "roOneLineDialogEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/roonelinedialogevent.md" - } - ], - "interfaces": [ - { - "name": "ifGetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifGetMessagePort.md" - }, - { - "name": "ifOneLineDialog", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifonelinedialog.md" - }, - { - "name": "ifSetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md" - } - ], - "isDeprecated": true, - "name": "roOneLineDialog", - "url": "https://developer.roku.com/docs/references/brightscript/components/roonelinedialog.md" - }, - "roparagraphscreen": { - "constructors": [ - { - "params": [], - "returnType": "roParagraphScreen" - } - ], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe Paragraph Screen provides a way to display text and selection choices to the user.\n\nThis type of screen is frequently used for implementing wizard functionality to guide the user through a specific task. The caller may specify header text which is displayed at the top of the screen and one or more paragraphs of text on the screen. In addition, one or more buttons may be added to the screen to get user input or allow navigation. The screen is designed to automatically format the text, headings and buttons and create the photo-fit for them on screen. Some care must be taken to not provide too much text or clipping may occur.\n\n![roParagraphScreen image](https://image.roku.com/ZHZscHItMTc2/roParagraphScreenImage1.png \"roParagraphScreenImage1\")\n\nThis object is created with no parameters:\n\n`CreateObject(\"roParagraphScreen\")`\n\n**Example**\n\n```\nFunction ShowParagraphScreen() As Void\n port = CreateObject(\"roMessagePort\")\n screen = CreateObject(\"roParagraphScreen\")\n screen.SetMessagePort(port)\n screen.SetTitle(\"[Screen Title]\")\n screen.AddHeaderText(\"[Header Text]\")\n screen.AddParagraph(\"[Paragraph text 1 - Text in the paragraph screen is justified to the right and left edges]\")\n screen.AddParagraph(\"[Paragraph text 2 - Multiple paragraphs may be added to the screen by simply making additional calls]\")\n screen.AddButton(1, \"[button text 1]\")\n screen.AddButton(2, \"[button text 2]\")\n screen.Show()\n while true\n msg = wait(0, screen.GetMessagePort())\n if type(msg) = \" roParagraphScreenEvent\"\n exit while\n endif\n end while\nEnd Function\n```\n\n**Image: roParagraphScreen example results**\n\n![Image: roParagraphScreen example results](https://image.roku.com/ZHZscHItMTc2/roParagraphScreenImage2.png \"roParagraphScreenImage2\")", - "events": [ - { - "name": "roParagraphScreenEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/roparagraphscreenevent.md" - } - ], - "interfaces": [ - { - "name": "ifGetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifgetmessageport.md" - }, - { - "name": "ifParagraphScreen", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifparagraphscreen.md" - }, - { - "name": "ifSetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md" - } - ], - "isDeprecated": true, - "name": "roParagraphScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/roparagraphscreen.md" - }, - "ropath": { - "constructors": [ + "ropath": { + "constructors": [ { "params": [ { @@ -6737,14 +6828,14 @@ "params": [ { "isRequired": true, - "name": "param1", + "name": "filename", "type": "dynamic" } ], "returnType": "roPath" } ], - "description": "The roPath component provides developers an easy way to create valid file system paths.\n\nThe roPath component is a convenience class that implements [ifString](https://developer.roku.com/docs/references/brightscript/interfaces/ifstring.md\"ifString\") while providing additional validation and path inspection functionality. See [File System](docs/developer-program/getting-started/architecture/file-system.md \"File System\") for more information about valid path names.\n\nThis object is created with a string that represents the initial path:\n\n`CreateObject(\"roPath\", \"ext1:/vid\")`\n\n**Example**\n\n```\npath = CreateObject(\"roPath\", filename)\nparts = path.Split()\nif parts.phy = \"tmp:\" then print \"this is a temp file\"\nif parts.extension = \".bmp\" then print \"this is a bitmap file\"\n```", + "description": "The roPath component provides developers an easy way to create valid file system paths.\n\nThe roPath component is a convenience class that implements [ifString](https://developer.roku.com/docs/references/brightscript/interfaces/ifstring.md\"ifString\") while providing additional validation and path inspection functionality. See [File System](/docs/developer-program/getting-started/architecture/file-system.md \"File System\") for more information about valid path names.\n\nThis object is created with a string that represents the initial path:\n\n`CreateObject(\"roPath\", \"ext1:/vid\")`\n\n**Example**\n\n```\npath = CreateObject(\"roPath\", filename)\nparts = path.Split()\nif parts.phy = \"tmp:\" then print \"this is a temp file\"\nif parts.extension = \".bmp\" then print \"this is a bitmap file\"\n```", "events": [], "interfaces": [ { @@ -6759,63 +6850,6 @@ "name": "roPath", "url": "https://developer.roku.com/docs/references/brightscript/components/ropath.md" }, - "ropinentrydialog": { - "constructors": [], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe Pin Entry Dialog is designed to allow the user to enter a numeric PIN for purchasing content.\n\nUsers establish a PIN on the partner's website for purchasing transactions. The roPinEntryDialog allows the script to present the user with a pop-up, modal dialog for PIN entry and then the script can subsequently call the API's to conclude the purchase transaction. When the last digit is entered, focus jumps to the first button.\n\n**Image: roPinEntryDialog sample**\n\n![roPinEntryDialog](https://image.roku.com/ZHZscHItMTc2/roPinEntryDialog.png \"roPinEntryDialog\")", - "events": [ - { - "name": "roPinEntryDialogEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/ropinentrydialogevent.md" - } - ], - "interfaces": [ - { - "name": "ifGetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifgetmessageport.md" - }, - { - "name": "ifPinEntryDialog", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifpinentrydialog.md" - }, - { - "name": "ifSetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md" - } - ], - "isDeprecated": true, - "name": "roPinEntryDialog", - "url": "https://developer.roku.com/docs/references/brightscript/components/ropinentrydialog.md" - }, - "roposterscreen": { - "constructors": [ - { - "params": [], - "returnType": "roPosterScreen" - } - ], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThis object is created with no parameters:\n\n`CreateObject(\"roPosterScreen\")`\n\nThe Poster Screen provides a graphical display of poster art for content selection or can be used as a submenu to provide hierarchical structure to the application.\n\nIn some cases, applications may wish to present a flat single-level list of titles in a queue, but the Poster Screen can also be used at multiple levels in the application to provide hierarchical browsing. It also provides an optional \"filter banner\" for displaying categories representing filtered subsets of the data or categorized groups.\n\nEach item in the poster screen is represented by an image (aka poster), so any type of item that can be visually represented by an image can be displayed in the poster screen. It is used to show lists of data to users and common patterns include content categories, movies, podcasts, and search results.\n\nJust below the overhang is the filter banner. It allows a method of easily selecting or filtering content based on categories. The categories are set by the developer during screen initialization, and the script is notified when a new category is highlighted or selected. Based on the event notification, the script can set the desired content in the view. The filter banner is optional.\n\n**Diagram: roPosterScreen (flat-category)**\n\n![Diagram: roPosterScreen (flat-category)](https://image.roku.com/ZHZscHItMTc2/roPosterScreenImage1.png \"roPosterScreenImage1\")\n\nShortDescriptionLine1 from the content metadata. Generally the category title.\n\nShortDescriptionLine2 from the content metadata. Generally a description for the category.\n\n**Diagram: roPosterScreen (arced-landscape)**\n\n![Diagram: roPosterScreen (arced-landscape](https://image.roku.com/ZHZscHItMTc2/roPosterScreenImage2.png \"roPosterScreenImage2\")\n\n**Diagram: roPosterScreen (arced-portrait)**\n\n![Diagram: roPosterScreen (arced-portrait)](https://image.roku.com/ZHZscHItMTc2/roPosterScreenImage3.png \"roPosterScreenImage3\")\n\n**Diagram: roPosterScreen (flat-episodic)**\n\n![Diagram: roPosterScreen (flat-episodic)](https://image.roku.com/ZHZscHItMTc2/roPosterScreenImage4.png \"roPosterScreenImage4\")\n\nTV content is often displayed as a series of episodes within a season. The flat-episodic screen type provides a standard way to display episodic content, such as a TV series.\n\nThere is also a flat-episodic-16x9-episodic screen type to display episodic content with 16x9 images.\n\nThe paragraph text allows the user to view the synopsis for the currently selected episode. As the user scrolls right/left to select a new episode, the paragraph text and the short description lines are updated to reflect the description of the highlighted episode\n\nIn order to see poster art in the side posters instead of episode numbers, please ensure that the SDPosterUrl and HDPosterUrl are defined for the content and that episodeNumber is not defined for that content. EpisodeNumber overrides the poster URL.\n\n**Example**\n\n```\nFunction Main()\n port = CreateObject(\"roMessagePort\")\n poster = CreateObject(\"roPosterScreen\")\n poster.SetBreadcrumbText(\"[location1]\", \"[location2]\")\n poster.SetMessagePort(port)\n list = CreateObject(\"roArray\", 10, true)\n For i = 0 To 10\n o = CreateObject(\"roAssociativeArray\")\n o.ContentType = \"episode\"\n o.Title = \"[Title]\"\n o.ShortDescriptionLine1 = \"[ShortDescriptionLine1]\"\n o.ShortDescriptionLine2 = \"[ShortDescriptionLine2]\"\n o.Description = \"\"\n o.Description = \"[Description] \"\n o.Rating = \"NR\"\n o.StarRating = \"75\"\n o.ReleaseDate = \"[ This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe Search History object implements the system wide storage of search terms for use in implementing the roSearchScreen.\n\nAs the user searches for content, recent searches are placed into the search history. This allows the user to easily re-execute these commands later without typing on the keyboard. The initial list of recent searches is displayed on the roSearchScreen to assist the user in finding content to watch. This history is used system wide, so that the user can find references to their search in multiple types of content.\n\nThis object is created with no parameters:\n\n`CreateObject(\"roSearchHistory\")`\n\n**Example**\n\n```\nhistory = CreateObject(\"roSearchHistory\")\nlist = history.GetAsArray()\nprint \"There are \"; list.Count(); \" items in the history\"\n```", - "events": [], - "interfaces": [ - { - "name": "ifSearchHistory", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsearchhistory.md" - } - ], - "isDeprecated": true, - "name": "roSearchHistory", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosearchhistory.md" - }, - "rosearchscreen": { - "constructors": [ - { - "params": [], - "returnType": "roSearchScreen" - } - ], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe Search Screen provides a standard way to allow users to enter text for searching.\n\nThis screen features a simplified keyboard (a-z, 0-9) designed to provide just the keys necessary to perform case-insensitive searches without punctuation.\n\nIdeally, the user would enter a search string and the backend service would perform that query in a case-insensitive manner ignoring special characters like punctuation. The script is notified as each key is pressed so that a progress disclosure search can be performed if supported by the back-end service. In addition, the script can control the text displayed on the screen and will receive events when the text entry is complete.\n\nIn addition to entering search strings, this screen features a list that can be used to display search results or show the most recent searches. It's desirable for the screen to maintain a list of recent searches for the user to allow them to easily repeat a recent query without typing. In some implementations, it may be desirable to use this list to show a progressive set of results after each character while the user is typing.\n\nThis object is created with no parameters:\n\n`CreateObject(\"roSearchScreen\")`\n\n**Example**\n\n```\nREM ******************************************************\nREM Main routine - example of search screen usage\nREM ******************************************************\nSub Main()\n print \"start\"\n 'toggle the search suggestions vs. search history behavior\n 'this allow you to generate both versions of the example below\n displayHistory = false\n history = CreateObject(\"roArray\", 1, true)\n 'prepopulate the search history with sample results\n history.Push(\"seinfeld\")\n history.Push(\"fraiser\")\n history.Push(\"cheers\")\n port = CreateObject(\"roMessagePort\")\n screen = CreateObject(\"roSearchScreen\")\n 'commenting out SetBreadcrumbText() hides breadcrumb on screen\n screen.SetBreadcrumbText(\"\", \"search\")\n screen.SetMessagePort(port)\n if displayHistory\n screen.SetSearchTermHeaderText(\"Recent Searches:\")\n screen.SetSearchButtonText(\"search\")\n screen.SetClearButtonText(\"clear history\")\n screen.SetClearButtonEnabled(true) 'defaults to true\n screen.SetSearchTerms(history)\n else\n screen.SetSearchTermHeaderText(\"Suggestions:\")\n screen.SetSearchButtonText(\"search\")\n screen.SetClearButtonEnabled(false)\n endif\n print \"Doing show screen...\"\n screen.Show()\n print \"Waiting for a message from the screen...\"\n ' search screen main event loop\n done = false\n while done = false\n msg = wait(0, screen.GetMessagePort())\n if type(msg) = \"roSearchScreenEvent\"\n if msg.isScreenClosed()\n print \"screen closed\"\n done = true\n else if msg.isCleared()\n print \"search terms cleared\"\n history.Clear()\n else if msg.isPartialResult()\n print \"partial search: \"; msg.GetMessage()\n if not displayHistory\n screen.SetSearchTerms(GenerateSearchSuggestions(msg.GetMessage()))\n endif\n else if msg.isFullResult()\n print \"full search: \"; msg.GetMessage()\n history.Push(msg.GetMessage())\n if displayHistory\n screen.AddSearchTerm(msg.GetMessage())\n end if\n 'uncomment to exit the screen after a full search result:\n 'done = true\n else\n print \"Unknown event: \"; msg.GetType(); \" msg: \"; msg.GetMessage()\n endif\n endif\n endwhile\n print \"Exiting...\"\nEnd Sub\n\nFunction GenerateSearchSuggestions(partSearchText As String) As Object\n availableContent = [\n \"ghost in the shell\"\n \"parasite dolls\"\n \"final fantasy\"\n \"ninja scroll\"\n \"space ghost\"\n \"hellboy\"\n \"star wars\"\n \"terminator\"\n \"house of cards\"\n \"dexter\"\n ]\n suggestions = []\n if partSearchText <> \"\"\n partSearchText = LCase(partSearchText)\n for each available in availableContent\n if available.Instr(partSearchText) >= 0\n suggestions.Push(available)\n end if\n end for\n end if\n return suggestions\nEnd Function\n```\n\n**Image: roSearchScreen example results (search suggestions)**\n\n![Image: roSearchScreen example results (search suggestions)](https://image.roku.com/ZHZscHItMTc2/roSearchScreen.png \"roSearchScreen\")", - "events": [ - { - "name": "roSearchScreenEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/rosearchscreenevent.md" - } - ], - "interfaces": [ - { - "name": "ifGetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifgetmessageport.md" - }, - { - "name": "ifSearchScreen", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsearchscreen.md" - }, - { - "name": "ifSetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md" - } - ], - "isDeprecated": true, - "name": "roSearchScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosearchscreen.md" - }, "rosgnode": { "constructors": [ { @@ -7172,35 +7171,6 @@ "name": "roSGScreen", "url": "https://developer.roku.com/docs/references/brightscript/components/rosgscreen.md" }, - "roslideshow": { - "constructors": [ - { - "params": [], - "returnType": "roSlideShow" - } - ], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe Slide Show screen provides the ability to setup a photo slide show to playback a series of images.\n\nImages may be jpg, png or gif files. The developer can control the sequencing and timing of the slideshow. The object is designed to accept an array of [Content Meta-Data](/docs/developer-program/getting-started/architecture/content-metadata.md \"Content Meta-Data\") objects, describing the images and providing URLs for accessing each image. TextOverlayUL, TextOverlayUR, and TextOverlayBody are content meta-data properties used to display a text overlay.\n\nThis object is created with no parameters:\n\n`CreateObject(\"roSlideShow\")`", - "events": [ - { - "name": "roSlideShowEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/roslideshowevent.md" - } - ], - "interfaces": [ - { - "name": "ifHttpAgent", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifhttpagent.md" - }, - { - "name": "ifSlideShow", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifslideshow.md" - } - ], - "isDeprecated": true, - "name": "roSlideShow", - "url": "https://developer.roku.com/docs/references/brightscript/components/roslideshow.md" - }, "rosocketaddress": { "constructors": [ { @@ -7219,41 +7189,6 @@ "name": "roSocketAddress", "url": "https://developer.roku.com/docs/references/brightscript/components/rosocketaddress.md" }, - "rospringboardscreen": { - "constructors": [ - { - "params": [], - "returnType": "roSpringboardScreen" - } - ], - "description": "The Springboard Screen shows detailed information about an individual piece of content and provides options for actions that may be taken on that content.\n\nThe detailed description of the content is displayed with poster art for the title. Artwork may be displayed portrait or landscape orientation depending on the ContentType set in the [Content Meta-Data](/docs/developer-program/getting-started/architecture/content-metadata.md \"Content Meta-Data\").\n\nThe caller may add one or more buttons to the screen with actions such as Play, Resume, Purchase or More Info. The script is notified via an event when a button is selected and it is the responsibility of the script writer to handle that event as desired and perform the requested action.\n\n![worddav-button-actions](https://image.roku.com/ZHZscHItMTc2/worddav3570180012b8208f098d035b989f8fa8.png \"worddav3570180012b8208f098d035b989f8fa8\")\n\nThis object is created with no parameters:\n\n`CreateObject(\"roSpringboardScreen\")`\n\n* Orientation for artwork is based on ContentType setting and may be portrait or landscape.\n \n* The audio springboard is capable of adding a progress bar.\n \n* If the ContentType is audio, the album art dimensions are:\n \n\n```\n SD: 124 x 112\n HD: 188 x 188\n```\n\n* If the ContentType is episode, the album art dimensions are:\n\n```\n SD: 180 x 122\n HD: 264 x 198\n```\n\n* If the ContentType is any other value, the album art dimensions are:\n\n```\n SD: 112 x 142\n HD: 148 x 212\n```\n\n* Up to 5 user-defined buttons may be displayed. Buttons are displayed in the order they are added and always appear in a fixed region of the screen\n \n* The description text will be formatted and justified (right and left edges) to fit between the margins. When the maximum length is reached, the text will be clipped and terminated with an ellipsis. The font is variable pitch, so the maximum number of characters is dependent on the text. The spacing is approximately 85 characters per line x 4 lines = 340 characters. The fonts and character spacing for HD and SD are similar, and display approximately the same number of characters, but the relationship is not exactly 1:1.\n \n* The star rating can show either community StarRating (red) or UserStarRating (yellow). If both values are set, the control will display the UserStarRating. If ratings are not desired, it can be removed by calling SetStaticRatingEnabled(false), providing more space to display actor names.\n \n* The Length attribute will display a formatted string or show length. If the value is zero, this field will display 0m, if the attribute is not set/missing then this field will not be displayed.\n \n\n**Example**\n\nThe following example shows the process of creating an roSpringboardScreen, setting up the content meta-data, showing the screen and waiting for an event. This example is simplified for clarity and it's assumed the real-world applications will use techniques like getting data from web services using roUrlTransfer.\n\n![springboard-audio](https://image.roku.com/ZHZscHItMTc2/springboard-audio.png \"springboard-audio\")\n\n```\nFunction Main()\n port = CreateObject(\"roMessagePort\")\n springBoard = CreateObject(\"roSpringboardScreen\")\n springBoard.SetBreadcrumbText(\"[location 1]\", \"[location2]\")\n springBoard.SetMessagePort(port)\n o = CreateObject(\"roAssociativeArray\")\n o.ContentType = \"episode\"\n o.Title = \"[Title]\"\n o.ShortDescriptionLine1 = \"[ShortDescriptionLine1]\"\n o.ShortDescriptionLine2 = \"[ShortDescriptionLine2]\"\n o.Description = \"\"\n For i = 1 To 15\n o.Description = o.Description + \"[Description] \"\n End For\n o.SDPosterUrl = \"\"\n o.HDPosterUrl = \"\"\n o.Rating = \"NR\"\n o.StarRating = \"75\"\n o.ReleaseDate = \"[mm/dd/yyyy]\"\n o.Length = 5400\n o.Categories = CreateObject(\"roArray\", 10, true)\n o.Categories.Push(\"[Category1]\")\n o.Categories.Push(\"[Category2]\")\n o.Categories.Push(\"[Category3]\")\n o.Actors = CreateObject(\"roArray\", 10, true)\n o.Actors.Push(\"[Actor1]\")\n o.Actors.Push(\"[Actor2]\")\n o.Actors.Push(\"[Actor3]\")\n o.Director = \"[Director]\"\n springBoard.SetContent(o)\n springBoard.Show()\n While True\n msg = wait(0, port)\n If msg.isScreenClosed() Then\n Return -1\n Elseif msg.isButtonPressed()\n print \"msg: \"; msg.GetMessage(); \"idx: \"; msg.GetIndex()\n Endif\n End While\nEnd Function\n```\n\nThe following screen is displayed when this code is executed:\n\n![worddav-code-displayed](https://image.roku.com/ZHZscHItMTc2/worddav256ada1e0e0cdc53d79428655ca7702b.png \"worddav256ada1e0e0cdc53d79428655ca7702b\")", - "events": [ - { - "name": "roSpringboardScreenEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/rospringboardscreenevent.md" - } - ], - "interfaces": [ - { - "name": "ifGetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifgetmessageport.md" - }, - { - "name": "ifHttpAgent", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifhttpagent.md" - }, - { - "name": "ifSetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md" - }, - { - "name": "ifSpringboardScreen", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifspringboardscreen.md" - } - ], - "name": "roSpringboardScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rospringboardscreen.md" - }, "rosprite": { "constructors": [], "description": "The roSprite object cannot be created directly with a CreateObject() call. It must be associated with a managing roCompositor object. This association is implicitly created by creating an roSprite object with the roCompositor methods NewSprite() or NewAnimatedSprite().", @@ -7332,7 +7267,12 @@ "url": "https://developer.roku.com/docs/references/brightscript/components/rostring.md" }, "rosystemlog": { - "constructors": [], + "constructors": [ + { + "params": [], + "returnType": "roSystemLog" + } + ], "description": "The roSystemLog component enables the application to receive events from the Roku Streaming Player that are intended for reporting errors and trends, rather than trigger a response to a user action.\n\nAll of the log event messages are sent to the roMessagePort that is registered on the [roSystemLogEvent](https://developer.roku.com/docs/references/brightscript/events/rosystemlogevent.md\"roSystemLogEvent\") object. See roSystemLogEvent for details on the messages.\n\nThis object is created with no parameters:\n\n`CreateObject(\"roSystemLog\")`\n\nThe roSystemLog component requires specific Design Patterns in your BrightScript Application. Take care to:\n\n* Use one roMessagePort throughout the application (instead of creating a new roMessagePort for each screen).\n* Create one roSystemLog instance at startup that remains for the entire lifetime of the application.\n* Pass the global roMessagePort referenced in the first bullet point to SetMessagePort() on the roSystemLog component.\n* Enable the desired log types using EnableType().\n* Handle the [roSystemLogEvents](https://developer.roku.com/docs/references/brightscript/events/rosystemlogevent.md\"roSystemLogEvents\") in all message loops.", "events": [], "interfaces": [ @@ -7344,34 +7284,6 @@ "name": "roSystemLog", "url": "https://developer.roku.com/docs/references/brightscript/components/rosystemlog.md" }, - "rotextscreen": { - "constructors": [], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nroTextScreen provides a way of displaying large amounts of scrollable text.\n\nThis type of screen can be used to display help text, credits, license agreements, or other large amounts of text that require scrolling.\n\nThe interface allows you to set the text and specify zero or more buttons.\n\nIf no buttons are specified, then the user can exit the screen by pressing BACK or OK.", - "events": [ - { - "name": "roTextScreenEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/rotextscreenevent.md" - } - ], - "interfaces": [ - { - "name": "ifGetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifgetmessageport.md" - }, - { - "name": "ifSetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md" - }, - { - "name": "ifTextScreen", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iftextscreen.md" - } - ], - "isDeprecated": true, - "name": "roTextScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rotextscreen.md" - }, "rotexttospeech": { "constructors": [ { @@ -7379,7 +7291,7 @@ "returnType": "roTextToSpeech" } ], - "description": "> Please note this component is only available on the following devices: Roku Streaming Stick (3600X), Roku Express (3700X) and Express+ (3710X), Roku Premiere (4620X) and Premiere+ (4630X), Roku Ultra (4640X), and any Roku TV running Roku OS version 7.2 and later.\n\nThe roTextToSpeech component provides text to speech capabilities to applications.\n\nAn roTextToSpeech component object is created with no parameters:\n\n`CreateObject(\"roTextToSpeech\")`", + "description": "> To implement CVAA/screen reader support in your channel, use the [roAudioGuide](https://developer.roku.com/docs/references/brightscript/components/roaudioguide.md component object. The roTextToSpeech component object is typically used for book readers and other special-purpose applications.\n> \n> Please note this component is only available on the following devices: Roku Streaming Stick (3600X), Roku Express (3700X) and Express+ (3710X), Roku Premiere (4620X) and Premiere+ (4630X), Roku Ultra (4640X), and any Roku TV running Roku OS version 7.2 and later.\n\nThe roTextToSpeech component provides text to speech capabilities to applications.\n\nAn roTextToSpeech component object is created with no parameters:\n\n`CreateObject(\"roTextToSpeech\")`", "events": [ { "name": "roTextToSpeechEvent", @@ -7526,7 +7438,7 @@ "returnType": "roVideoPlayer" } ], - "description": "The roVideoPlayer component implements a video player with more programmatic control, but less user control than the roVideoScreen component.\n\nThe roVideoPlayer can be used in conjunction with the roImageCanvas to do graphical overlays, windowed video, zoom, and programmatic control of playlists and trick play. When using with the roImageCanvas, you can put the roVideoPlayer is at a lower z-order layer than other imageCanvas layers and implement overlays on top of the playing video.\n\nUnlike the roVideoScreen component roVideoPlayer does not have automatic trick play modes and built in controls to support that trick play. Any trick play requires the developer to build his own controls using buttons on the roImageCanvas.\n\nNote that all the video playback notes under roVideoScreen apply to the roVideoPlayer. The customvideoplayer sample application is a good example of roVideoPlayer usage.\n\nThis object is created with no parameters:\n\n`CreateObject(\"roVideoPlayer\")`", + "description": "The roVideoPlayer component implements a video player with programmatic controls.\n\nThis object is created with no parameters:\n\n`CreateObject(\"roVideoPlayer\")`", "events": [ { "name": "roVideoPlayerEvent", @@ -7554,43 +7466,6 @@ "name": "roVideoPlayer", "url": "https://developer.roku.com/docs/references/brightscript/components/rovideoplayer.md" }, - "rovideoscreen": { - "constructors": [ - { - "params": [], - "returnType": "roVideoScreen" - } - ], - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe Video Screen object implements the video playback portion of the user interface.\n\nThis object is created with no parameters:\n\n`CreateObject(\"roVideoScreen\")`\n\nThe API's to the video screen allow the developer to setup a fully featured playback environment with minimal coding. The developer is responsible for initial playback setup and providing the required data (e.g. StreamURLs, SteamsBitrates, etc.) as part of the [Content Meta-Data](/docs/developer-program/getting-started/architecture/content-metadata.md \"Content Meta-Data\"). Once created and displayed, the screen will respond to events and manage the playback experience for the user.\n\nThe roVideoScreen is designed for streaming content. The preferred implementation should provide multiple bitrates (ideally four) of video to provide a high quality user experience under a variety of network conditions. Using the StreamBitrates and StreamURLs provided in the content meta-data for the item, the roVideoScreen will automatically monitor and select the best stream based on the users measured bandwidth. If network performance changes, the system will adapt and rebuffer to stream at a different bandwidth if necessary. Note that the StreamURLs, StreamBitrates, StreamQualities and StreamStickyHttpRedirects are all arrays that are aligned with each other. For example, the first stream listed would be the 0th element of all of these arrays.\n\nThe bitrates should represent the actual bitrate of the stream. The bitrate is used for both the display of the dots as well as the stream selection algorithm. The dots work a follows; If the stream bitrate equals:\n\n* 0 = no dots\n* < 500 Kbps= 1 dot\n* < 800 Kbps = 2 dots\n* <1.1 Mbps = 3 dots\n* > \\= 1.1 Mbps = 4 dots\n \n\nThe dots are displayed automatically based on the bitrate of the stream selected unless there is a single stream and the bitrate is set to zero, then it won't show any dots. The StreamQuality attribute is used to select streams and indicates if a stream is HD or not. If the attribute for HDBranded is set to true and the stream is HD, the HD icon will show beside the quality dots. If the StreamQuality is set to HD, and the user display type is set to SD, the HD stream will not be selected.\n\nThe roVideoScreen automatically provides trick mode for all supported content types. There are two type of trick modes supported; scene based selection and time-based selection. If BIF image files are provided for a title, scene-based trick modes will appear. (See the BIF File format Documentation for more information) The user will be presented with the images and progress bar needed for SEEK, FF, REW within a stream. The following image shows how trick modes are rendered with BIF files:\n\n![IMAGE](https://image.roku.com/ZHZscHItMTc2/worddavdc8a50b63d70082736fbebee19c18eff.png \"worddavdc8a50b63d70082736fbebee19c18eff\")\n\nThe FF/REW functionality provides three speeds; slow, medium and fast. At slower speeds, the system displays the current frame in the center of the screen and additional frames on the side for contextual information. At higher speeds, the side frames disappear and only the center image is displayed. The I-frames within the video do not need to precisely align with the time stamp of the image frames in the BIF file. When the user stops and selects a frame, the video playback begins at the first I-frame less than or equal to the time position of the selected frame.\n\nWhen BIF images are not available, the system will default to a time based trick play behavior. The user control is still the same, but only the progress bar is displayed and the user will not see individual scenes within the video. This mode is the default, so if images are not available for an individual title, the system will always provide this functionality by default.\n\nThe system will only seek to locations on an I-Frame boundary. Window Media (WMA9 or VC-1) uses the simple index object to determine the I-frame locations and H.264 uses the MOOV atom to determine the correct offsets. If the BIF images are at a consistent time intervals which do not align to I-Frame boundaries, the system will use the nearest I-Frame less than or equal to the time of the BIF image. MP4 or Windows Media are the preferred formats.\n\n**Important Notes on Video Playback**\n\n* The dimensions vary on a title-by-title basis depending on the source material and the target aspect ratio for the encode (e.g. 4:3 or 16:9). Content is always encoded at full width and the height is adjusted. For example, a 1.66 aspect ratio source is encoded as a 720x432 video and displayed as letterboxed for a 4:3 display.\n \n* The frame rate used for encoding is dependent on the source material. Film content is generally 23.976 fps, while video content is generally at 29.97.\n \n* For typical streaming video applications, we recommend a range of 384Kbps to 4.5Mbps. For USB playback, we recommend that you stay under 8.0 Mbps. This provides a good balance between quality and support for a wide number of users. In some cases lower and higher bitrates have been used, but this frequently results in poor quality or limits the % of the installed base that can view this encoding.\n \n* It is critical that the StreamURLs, StreamBitrates, StreamQualities and StreamStickyHttpRedirects arrays are all aligned with each other. For example, the first stream listed would be the 0th element of all of these arrays. You may have multiple streams in the arrays and the system will automatically pick the most appropriate stream based on the users available bandwidth and video settings.\n \n* The StreamQualities array identifies streams as either SD or HD. If the user is configured for SD the system will not select HD streams for playback.\n \n* The optional StreamStartTimeOffset is the offset into the stream which is considered to be the new origin of playback.\n \n* Live – declares the video as live and replaces the time remaining text in the progress bar with \"live\".\n \n* HLS Http Live Streaming support is included in the Roku OS (Introduced in Roku OS2.6). We currently support version 3 of the Http Live Streaming protocol (Pantos – Draft submitted to IETF November 19, 2010 [http://tools.ietf.org/html/draft-pantos-http-live-streaming-05](http://tools.ietf.org/html/draft-pantos-http-live-streaming-05) ). When using HLS, the StreamUrls and StreamQualities array should each have exactly one element. If the HLS stream has only a single bitrate stream, the StreamBitrates array should contain one element specifying that bitrate. If the stream contains more than one variant stream at multiple bitrates, the StreamBitrates array should contain one element with a value of zero. Please see the Video Encoding Guide for information about creating HLS .m3u8 files and segmented .ts files from your current h264 encoded video or distributing live video over HLS to the Roku box.\n \n* In addition to the support for version 2 of the HLS Pantos draft spec, the Roku box supports .m3u8 files that are compressed via deflate or gzip.\n \n * The HTTP response for a query that returns a gzip-compressed file must contain the header: Content-Encoding: gzip\n * The HTTP response for a query that returns a deflate-compressed file must contain the header: Content-Encoding: deflate\n* \"Trick Modes\" and seeking work a little differently with HLS streams. There are a couple of ways that seeking works with HLS and they are different than other streams.\n \n One way of seeking uses the \"target duration\" specified in the .m3u8 file. The first segment in an m3u8 file is assigned a time offset:\n \n T = G \\* N\n \n where G is the \"target duration\" value and N is the sequence number of the segment. Each subsequent segment is assigned a time offset equal to T (the time offset of the first segment) plus the duration value of all earlier segments. The duration of a segment is determined by the EXTINF line before that segment.\n \n* Smooth Streaming (since v4.7) and later by setting the StreamFormat to \"ism\" and setting the streamURL to the MANIFEST url.\n \n * The player type (ContentMetaData.StreamFormat) is \"ism\"\n * The stream URL is the URL that points to the manifest\n * Only H.264 and/or AAC encoding formats are currently supported.\n * Only direct PlayReady licensing is supported. Indirect licensing is currently unsupported. That is, for decryption to work, the ProtectionHeader must be available in the manifest and the LA\\_URL should contain a valid URL to an accessible PlayReady license server.\n * If there are multiple audio tracks, a track will be chosen based on the StreamIndex.Language attribute in the manifest. If the StreamIndex.Language attribute is not populated, the audio track will be chosen arbitrarily. To select a specific audio track before playback, set the ContentMetaData.TrackIDAudio field to the desired track's StreamIndex.Name attribute.\n * If there are multiple video tracks, a track will be chosen arbitrarily. To select a specific video track before playback, set the ContentMetaData.TrackIDVideo field to the desired track's StreamIndex.Name attribute.\n* Standard PlayReady SDK 2.0 Direct License Acquisition Over-the-Air (since v4.8) works by reading the Rights Management Protection Header in the Smooth Streaming Manifest Url. The Roku OS retrieves the license from the PlayReady license server at the license acquisition url endpoint in the Protection Header.\n \n\n```\n#EXT-X_TARGETDURATION:10\n#EXT-X-MEDIA-SEQUENCE:37\n#EXTINF:10\nurl1\n#EXTINF:8\nurl2\n#EXTINF:10\nurl3\n```\n\nThe segment url1 has a time offset of 370, url2 is 380, and url3 is 388. Note that if no TARGETDURATION is specified, the default is 1, so the first segment in the file will have a nonzero time offset (equal to the target duration). The PlayStart content-meta data value allows direct seeking to an offset that is valid within the window of data in the current .m3u8 file.\n\nThere is a second way to seek in an HLS stream. If the m3u8 file has #EXT-X-PROGRAM-DATE-TIME entries, you can seek to a particular date/time by passing a value equal to a modified Unix epoch value. The modified epoch is 1/1/2004 rather than the standard Unix epoch of 1/1/1970. A Unix time value can be converted to an HLS seek time by subtracting 1072915200 (the number of seconds between 1/1/1970 and 1/1/2004). Once again, setting the PlayStart content meta data value allows direct seeking to a specific time offset.\n\nFor example, to seek to the segment marked with the date/time of 7/4/2010 11:30, set PlayStart to 205327800. An example shell expression showing this arithmetic is:\n\n```\n% expr `date -d \"7/4/2010Z11:30:00.000\" +%s` - 1072915200\n205327800\n```\n\nIn BrightScript, the same calculation might be:\n\n```\ndt = CreateObject(\"roDateTime\")\ndt.fromISO8601String(\"7/4/2010T11:30:00.000\")\nitemContentMetaData.PlayStart = dt. asSeconds() - 1072915200 '205327800\n```\n\n1. In Roku OS version 2.6, we've introduced support for SRT files. Please see the content meta-data parameter SubtitleUrl for pointing to a matching SRT file for your video content.\n \n2. In Roku OS version 2.7, we've introduced 1080p support. Please see the content meta-data parameter FullHD for specifying 1080p resolution. Playback at 1080p resolution will only occur when the user has set the display type to HDTV 1080p. Another content meta-data parameter, FrameRate, specifies the frames per second of the video. Valid values are 24 and 30. If the user's display type is set to 1080p and FullHD for the content is false or not set, HD playback will be at 720p resolution. If the user's display type is set to HDTV 720p and FullHD content is set to 1080p resolution, the box will downscale the content to 720p resolution.\n \n\n**Example**\n\n```\n'**********************************************************************\n' This example function is passed an associative array representing a ' piece of content (e.g. a TV episode) There are other attributes\n' (title, description, etc.) but this example focuses on showing\n' attributes required for initiating playback. It creates a video\n' screen, sets the content and starts playback by calling Show()\n'**********************************************************************\nFunction showVideoScreen(episode As Object)\n if type(episode) <> \"roAssociativeArray\" then\n print \"invalid data passed to showVideoScreen\"\n return -1\n endif\n port = CreateObject(\"roMessagePort\")\n screen = CreateObject(\"roVideoScreen\")\n ' Note: HDBranded controls whether the \"HD\" logo is displayed for a\n ' title. This is separate from IsHD because its possible to\n' have an HD title where you don't want to show the HD logo\n' branding for the title. Set these two as appropriate for\n' your content\n episode.HDBranded = false\n episode.IsHD = false\n ' Note: The preferred way to specify stream info in v2.6 is to use\n' the Stream roAssociativeArray content meta data parameter.\n\nepisode.Stream = { url:\"http://myserver.mydomain.com/mycontent.mp4\",\nbitrate:2000\nquality:false\ncontentid:\"mycontent-2000\"\n}\nepisode.StreamFormat: \"mp4\"\n ' now just tell the screen about the title to be played, set the\n ' message port for where you will receive events and call show to\n ' begin playback. You should see a buffering screen and then\n ' playback will start immediately when we have enough data buffered.\n screen.SetContent(episode)\n screen.SetMessagePort(port)\n screen.Show()\n ' Wait in a loop on the message port for events to be received.\n ' We will just quit the loop and return to the calling function\n ' when the users terminates playback, but there are other things\n ' you could do here like monitor playback position and see events\n ' from the streaming player. Look for status messages from the video\n ' player for status and failure events that occur during playback\n while true\n msg = wait(0, port)\n\n if type(msg) = \"roVideoScreenEvent\" then\n print \"showVideoScreen | msg = \"; msg.GetMessage() \" | index = \"; msg.GetIndex()\n if msg.isScreenClosed()\n print \"Screen closed\"\n exit while\n else if msg.isStatusMessage()\n print \"status message: \"; msg.GetMessage()\n else if msg.isPlaybackPosition()\n print \"playback position: \"; msg.GetIndex()\n else if msg.isFullResult()\n print \"playback completed\"\n exit while\n else if msg.isPartialResult()\n print \"playback interrupted\"\n exit while\n else if msg.isRequestFailed()\n print \"request failed - error: \"; msg.GetIndex();\" - \"; msg.GetMessage()\n exit while\n end if\n end if\n end while\nEnd Function\n```", - "events": [ - { - "name": "roVideoScreenEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/rovideoscreenevent.md" - } - ], - "interfaces": [ - { - "name": "ifGetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifgetmessageport.md" - }, - { - "name": "ifHttpAgent", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifhttpagent.md" - }, - { - "name": "ifSetMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md" - }, - { - "name": "ifVideoScreen", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifvideoscreen.md" - } - ], - "isDeprecated": true, - "name": "roVideoScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rovideoscreen.md" - }, "roxmlelement": { "constructors": [], "description": "roXMLElement is used to contain an XML tree.\n\nFor instance,\n\n```\nthis is some text\n```\n\nWould parse such that:\n\n```\n Name = \"tag1\"\n Attributes = invalid\n Body = roString with \"this is some text\"\n```\n\n**Example**\n\n```\n \n```\n\nWould parse such that:\n\n```\n Name = \"emptytag\"\n Attributes = roAssociativeArray, with one entry { caveman: \"barney\" }\n Body = invalid\n```\n\nIf the tag contains other tags, body will be of type roXMLList.\n\nTo generate XML, create an roXMLElement, then use functions like SetName(), AddAttribute(), SetBody(), AddElementWithBody(), AddElement(), AddBodyElement(), and AddText() functions to build the XML object hierarchy.\n\nThen call GenXML() to return the XML as a string.\n\nGenXML() takes one parameter (boolean) that indicates whether the generated xml should have the tag at the top.\n\n**Example: Subroutine to print out the contents of an roXMLElement tree**\n\n```\nPrintXML(root, 0)\n\nSub PrintXML(element As Object, depth As Integer)\n print tab(depth*3);\"Name: \";element.GetName()\n if not element.GetAttributes().IsEmpty() then\n print tab(depth*3);\"Attributes: \";\n for each a in element.GetAttributes()\n print a;\"=\";left(element.GetAttributes()[a], 20);\n if element.GetAttributes().IsNext() then print \", \";\n end for\n print\n end if\n if element.GetText()<>invalid then\n print tab(depth*3);\"Contains Text: \";left(element.GetText(), 40)\n end if\n if element.GetChildElements()<>invalid\n print tab(depth*3);\"Contains roXMLList:\"\n for each e in element.GetChildElements()\n PrintXML(e, depth+1)\n end for\n end if\n print\nend sub\n```\n\n**Example: Generating XML**\n\n```\nroot.SetName(\"myroot\")\nroot.AddAttribute(\"key1\", \"value1\")\nroot.AddAttribute(\"key2\", \"value2\")\nne = root.AddBodyElement()\nne.SetName(\"sub\")\nne.SetBody(\"this is the sub1 text\")\nne = root.AddBodyElement()\nne.SetName(\"subelement2\")\nne.SetBody(\"more sub text\")\nne.AddAttribute(\"k\", \"v\")\nne = root.AddElement(\"subelement3\")\nne.SetBody(\"more sub text 3\")\nroot.AddElementWithBody(\"sub\", \"another sub (#4)\")\nPrintXML(root, 0)\nprint root.GenXML(false)\n```", @@ -7631,3785 +7506,368 @@ "implementers": [], "methods": [], "name": "AppManagerTheme", - "properties": [ - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Gr Li Pa Po Se Sp Te. Example: #E0DFDF", - "name": "BackgroundColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Gr Li Pa Po Se Sp Te. Example: #FF00FF", - "name": "BreadcrumbDelimiter", - "type": "string" - }, + "properties": [] + }, + "ifappinfo": { + "implementers": [ { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Gr Li Pa Po Se Sp Te. Example: #FF00FF", - "name": "BreadcrumbTextLeft", - "type": "string" - }, + "description": "Returns information about the application", + "name": "roAppInfo", + "url": "https://developer.roku.com/docs/references/brightscript/components/roappinfo.md" + } + ], + "methods": [ { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Gr Li Pa Po Se Sp Te. Example: #FF00FF", - "name": "BreadcrumbTextRight", - "type": "string" + "description": "Returns the app's developer ID, or the keyed developer ID, if the application is sideloaded.", + "name": "GetDevID", + "params": [], + "returnDescription": "Channel's Developer ID", + "returnType": "String" }, { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Di Se Sp. Example: #FF00FF", - "name": "ButtonHighlightColor", - "type": "string" + "description": "Returns the app's channel ID.", + "name": "GetID", + "params": [], + "returnDescription": "Channel ID; e.g., \"12345\" or \"dev\"", + "returnType": "String" }, { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Di Se Sp. Example: #0033FF", - "name": "ButtonMenuHighlightText", - "type": "string" + "description": "Returns the subtitle value from the manifest.", + "name": "GetSubtitle", + "params": [], + "returnDescription": "Possible subtitle configuration", + "returnType": "String" }, { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Di Se Sp. Example: #B0B0B0", - "name": "ButtonMenuNormalOverlayText", - "type": "string" + "description": "Returns the title value from the manifest.", + "name": "GetTitle", + "params": [], + "returnDescription": "Title of the channel", + "returnType": "String" }, { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Di Se Sp. Example: #686868", - "name": "ButtonMenuNormalText", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Di Se Sp. Example: #FF00FF", - "name": "ButtonNormalColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Gr Po. Example: #00FF00", - "name": "CounterSeparator", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Gr Po. Example: #FF0000", - "name": "CounterTextLeft", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Gr Po. Example: #0000FF", - "name": "CounterTextRight", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Must be a grayscale value. Screen types: Di. Example: #808080", - "name": "DialogBodyText", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Must be a grayscale value. Screen types: Di. Example: #363636", - "name": "DialogTitleText", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Po. Example: #FF00FF", - "name": "EpisodeSynopsisText", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Po. Example: #FF00FF", - "name": "FilterBannerActiveColor", - "type": "string" - }, - { - "default": "invalid", - "description": "URL to set HD Filter Banner Active/Focus Highlighter. Screen types: Po. Example: pkg:/images/Filter\\_ActiveHint\\_HD.png", - "name": "FilterBannerActiveHD", - "type": "string" - }, - { - "default": "invalid", - "description": "URL to set SD Filter Banner Active/Focus Highlighter. Screen types: Po. Example: pkg:/images/Filter\\_ActiveHint\\_SD43.png", - "name": "FilterBannerActiveSD", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Po. Example: #FF00FF", - "name": "FilterBannerInactiveColor", - "type": "string" - }, - { - "default": "invalid", - "description": "URL to set HD Filter Banner Inactive Highlighter. Screen types: Po. Example: pkg:/images/Filter\\_InactiveHint\\_HD.png", - "name": "FilterBannerInactiveHD", - "type": "string" - }, - { - "default": "invalid", - "description": "URL to set SD Filter Banner Inactive Highlighter. Screen types: Po. Example: pkg:/images/Filter\\_ActiveHint\\_SD43.png", - "name": "FilterBannerInactiveSD", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Po. Example: #FF00FF", - "name": "FilterBannerSideColor", - "type": "string" - }, - { - "default": "invalid", - "description": "URL to set HD Filter Banner Background Image. Screen types: Po. Example: pkg:/images/Filter\\_ActiveHint\\_HD.png", - "name": "FilterBannerSliceHD", - "type": "string" - }, - { - "default": "invalid", - "description": "URL to set SD Filter Banner Background Image. Screen types: Po. Example: pkg:/images/Filter\\_ActiveHint\\_SD43.png", - "name": "FilterBannerSliceSD", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value Must be a grayscale value. Screen types: Gr. Example: #363636", - "name": "GridScreenBackgroundColor", - "type": "string" - }, - { - "default": "invalid", - "description": "String representing point \"(x, y)\" that is the offset from the upper left corner of the focused HD image. Set to the negative width & height of border. Screen types: Gr. Example: (-25,-25)", - "name": "GridScreenBorderOffsetHD", - "type": "string" - }, - { - "default": "invalid", - "description": "String representing point \"(x, y)\" that is the offset from the upper left corner of the focused SD image. Set to the negative width & height of border. Screen types: Gr. Example: (-20,-20)", - "name": "GridScreenBorderOffsetSD", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Gr. Example: #FF005B", - "name": "GridScreenDescriptionDateColor", - "type": "string" - }, - { - "default": "invalid", - "description": "URL to set HD Description callout background image on Grid. Screen types: Gr. Example: pkg:/images/Description\\_Background\\_HD.ng", - "name": "GridScreenDescriptionImageHD", - "type": "string" - }, - { - "default": "invalid", - "description": "URL to set SD Description callout background image on Grid. Screen types: Gr. Example: pkg:/images/Description\\_Background\\_SD43.ng", - "name": "GridScreenDescriptionImageSD", - "type": "string" - }, - { - "default": "invalid", - "description": "String representing point \"(x, y)\" that is the offset from the upper left corner of the focused HD image. Negative values have the description above and to the left of the focused image. Screen types: Gr. Example: (190,255)", - "name": "GridScreenDescriptionOffsetHD", - "type": "string" - }, - { - "default": "invalid", - "description": "String representing point \"(x, y)\" that is the offset from the upper left corner of the focused SD image. Negative values have the description above and to the left of the focused image. Screen types: Gr. Example: (125,170)", - "name": "GridScreenDescriptionOffsetSD", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Gr. Example: #5B005B", - "name": "GridScreenDescriptionRuntimeColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Gr. Example: #606000", - "name": "GridScreenDescriptionSynopsisColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Gr. Example: #00FFFF", - "name": "GridScreenDescriptionTitleColor", - "type": "string" - }, - { - "default": "invalid", - "description": "URL to set HD Focus image on Active Grid Poster. Screen types: Gr. Example: pkg:/images/Border\\_16x9\\_HD.png", - "name": "GridScreenFocusBorderHD", - "type": "string" - }, - { - "default": "invalid", - "description": "URL to set SD Focus image on Active Grid Poster. Screen types: Gr. Example: pkg:/images/Border\\_16x9\\_SD43.png", - "name": "GridScreenFocusBorderSD", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Must be a grayscale value. Screen types: Gr. Example: #FFFFFF", - "name": "GridScreenListNameColor", - "type": "string" - }, - { - "default": "invalid", - "description": "Logo formatted for display in the overhang. Screen types: Gr. Example: pkg:/images/gridlogoHD.png", - "name": "GridScreenLogoHD", - "type": "string" - }, - { - "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", - "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", - "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", - "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", - "type": "string" - }, - { - "default": "invalid", - "description": "Logo formatted for display in the overhang. Screen types: Gr. Example: pkg:/images/gridlogoSD.png", - "name": "GridScreenLogoSD", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Must be a grayscale value. Screen types: Gr. Example: #808080", - "name": "GridScreenMessageColor", - "type": "string" - }, - { - "default": "invalid", - "description": "The HD overhang height. Default: \"69\". Screen types: Gr. Example: 75", - "name": "GridScreenOverhangHeightHD", - "type": "string" - }, - { - "default": "invalid", - "description": "The SD overhang height. Default: \"49\". Screen types: Gr. Example: 55", - "name": "GridScreenOverhangHeightSD", - "type": "string" - }, - { - "default": "invalid", - "description": "URI for the overhang slice (thin piece of top of screen border). Screen types: Gr. Example: pkg:/images/gridoverhangHD.png", - "name": "GridScreenOverhangSliceHD", - "type": "string" - }, - { - "default": "invalid", - "description": "URI for the overhang slice (thin piece of top of screen border). Screen types: Gr. Example: pkg:/images/gridoverhangSD.png", - "name": "GridScreenOverhangSliceSD", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Must be a grayscale value. Screen types: Gr. Example: #CCCCCC", - "name": "GridScreenRetrievingColor", - "type": "string" - }, - { - "default": "invalid", - "description": "URL to set HD highlight image. Screen types: Gr Li Po. Example: pkg:/images/listitem\\_highlight\\_hd.png", - "name": "ListItemHighlightHD", - "type": "string" - }, - { - "default": "invalid", - "description": "URL to set SD highlight image. Screen types: Gr Li Po. Example: pkg:/images/listitem\\_highlight\\_sd.png", - "name": "ListItemHighlightSD", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Gr Li Po. Example: #CCCC00", - "name": "ListItemHighlightText", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Gr Li Po. Example: #CCCC00", - "name": "ListItemText", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Li. Example: #CCCC00", - "name": "ListScreenDescriptionText", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Li. Example: #CC0000", - "name": "ListScreenTitleColor", - "type": "string" - }, - { - "default": "invalid", - "description": "Small application logo formatted for display in overhang top left. Screen types: Co Ke Li Pa Po Se Sp Te. Example: pkg:/images/co\\_logo\\_sd.png", - "name": "OverhangPrimaryLogoHD", - "type": "string" - }, - { - "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", - "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", - "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", - "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", - "type": "string" - }, - { - "default": "invalid", - "description": "Small application logo formatted for display in overhang top left. Screen types: Co Ke Li Pa Po Se Sp Te. Example: pkg:/images/co\\_logo\\_sd.png", - "name": "OverhangPrimaryLogoSD", - "type": "string" - }, - { - "default": "invalid", - "description": "Small application logo formatted for display in overhang top left. Screen types: Co Ke Li Pa Po Se Sp Te. Example: pkg:/images/co\\_logo\\_hd.png", - "name": "OverhangSecondaryLogoHD", - "type": "string" - }, - { - "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", - "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", - "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", - "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", - "type": "string" - }, - { - "default": "invalid", - "description": "Small application logo formatted for display in overhang top left. Screen types: Co Ke Li Pa Po Se Sp Te. Example: pkg:/images/co\\_logo\\_sd.png", - "name": "OverhangSecondaryLogoSD", - "type": "string" - }, - { - "default": "invalid", - "description": "URI for the overhang slice (thin piece of border at the top of the screen in HD size). Screen types: Co Ke Li Pa Po Se Sp Te. Example: pkg:/images/overhang\\_hd.png", - "name": "OverhangSliceHD", - "type": "string" - }, - { - "default": "invalid", - "description": "URI for the overhang slice (thin piece of top of screen border). Screen types: Co Ke Li Pa Po Se Sp Te. Example: pkg:/images/overhang\\_sd.png", - "name": "OverhangSliceSD", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Co Pa Te. Example: #FF00FF", - "name": "ParagraphBodyText", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Co Pa Te. Example: #FF00FF", - "name": "ParagraphHeaderText", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Po. Example: #FF00FF", - "name": "PosterScreenLine1Text", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Po. Example: #FF00FF", - "name": "PosterScreenLine2Text", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Co. Example: #FF00FF", - "name": "RegistrationCodeColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Co. Example: #FF00FF", - "name": "RegistrationFocalColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Co. Example: #10FF80", - "name": "RegistrationFocalRectColor", - "type": "string" - }, - { - "default": "invalid", - "description": "Position and size of the HD focal rectangle. Four integer: (x,y,width,height). Screen types: Co. Example: (228,360,120,82)", - "name": "RegistrationFocalRectHD", - "type": "string" - }, - { - "default": "invalid", - "description": "Position and size of the SD focal rectangle. Four integer: (x,y,width,height). Screen types: Co. Example: (172,220,90,76)", - "name": "RegistrationFocalRectSD", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Sp. Example: #FF00FF", - "name": "SpringboardActorColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Sp. Example: #FF00FF", - "name": "SpringboardAlbumColor", - "type": "string" - }, - { - "default": "invalid", - "description": "Album Label. Screen types: Sp. Example: on", - "name": "SpringboardAlbumLabel", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Sp. Example: #FF00FF", - "name": "SpringboardAlbumLabelColor", - "type": "string" - }, - { - "default": "invalid", - "description": "boolean string. Screen types: Sp. Example: true", - "name": "SpringboardAllow6Buttons", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Sp. Example: #FF00FF", - "name": "SpringboardArtistColor", - "type": "string" - }, - { - "default": "invalid", - "description": "Artist Label. Screen types: Sp. Example: by", - "name": "SpringboardArtistLabel", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Sp. Example: #FF00FF", - "name": "SpringboardArtistLabelColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Sp. Example: #FF00FF", - "name": "SpringboardDirectorColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Sp. Example: #FF00FF", - "name": "SpringboardDirectorLabelColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Sp. Example: #FF00FF", - "name": "SpringboardDirectorPrefixText", - "type": "string" - }, - { - "default": "invalid", - "description": "Director Label. Screen types: Sp. Example: Written by", - "name": "SpringboardDirectorText", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Sp. Example: #FF00FF", - "name": "SpringboardGenreColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Sp. Example: #FF00FF", - "name": "SpringboardRuntimeColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Sp. Example: #FF00FF", - "name": "SpringboardSynopsisColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Sp. Example: #FF00FF", - "name": "SpringboardTitleText", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Must be a grayscale value. Screen types: Te. Example: #808080", - "name": "TextScreenBodyBackgroundColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Te. Example: #363636", - "name": "TextScreenBodyText", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Te. Example: #CC0000", - "name": "TextScreenScrollBarColor", - "type": "string" - }, - { - "default": "invalid", - "description": "HTML HEX Color Value. Screen types: Te. Example: #00CC00", - "name": "TextScreenScrollThumbColor", - "type": "string" - }, - { - "default": "invalid", - "description": "Theme type. Generic-dark is the only valid value. Otherwise the default theme applies. Screen types: . Example: generic-dark", - "name": "ThemeType", - "type": "string" - } - ] - }, - "ifappinfo": { - "implementers": [ - { - "description": "Returns information about the application", - "name": "roAppInfo", - "url": "https://developer.roku.com/docs/references/brightscript/components/roappinfo.md" - } - ], - "methods": [ - { - "description": "Returns the app's developer ID, or the keyed developer ID, if the application is sideloaded.", - "name": "GetDevID", - "params": [], - "returnDescription": "Channel's Developer ID", - "returnType": "String" - }, - { - "description": "Returns the app's channel ID.", - "name": "GetID", - "params": [], - "returnDescription": "Channel ID; e.g., \"12345\" or \"dev\"", - "returnType": "String" - }, - { - "description": "Returns the subtitle value from the manifest.", - "name": "GetSubtitle", - "params": [], - "returnDescription": "Possible subtitle configuration", - "returnType": "String" - }, - { - "description": "Returns the title value from the manifest.", - "name": "GetTitle", - "params": [], - "returnDescription": "Title of the channel", - "returnType": "String" - }, - { - "description": "Returns the named manifest value, or an empty string if the entry is does not exist.", - "name": "GetValue", - "params": [ - { - "default": null, - "description": "The manifest value to be returned.", - "isRequired": true, - "name": "key", - "type": "String" - } - ], - "returnDescription": "Manifest value; empty string", - "returnType": "String" - }, - { - "description": "Returns the conglomerate version number from the manifest, as formatted major\\_version + minor\\_version + build\\_version.", - "name": "GetVersion", - "params": [], - "returnDescription": "Channel version number. e.g. \"1.2.3\"", - "returnType": "String" - }, - { - "description": "Returns true if the application is sideloaded, i.e. the channel ID is \"dev\".", - "name": "IsDev", - "params": [], - "returnDescription": "True/ False", - "returnType": "Boolean" - } - ], - "name": "ifAppInfo", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifappinfo.md" - }, - "ifappmanager": { - "implementers": [ - { - "description": "Returns information about the application", - "name": "roAppManager", - "url": "https://developer.roku.com/docs/references/brightscript/components/roappmanager.md" - } - ], - "methods": [ - { - "description": "Clears a previously set attribute and reverts to its default value.", - "name": "ClearThemeAttribute", - "params": [ - { - "default": null, - "description": "The theme attribute to be cleared.", - "isRequired": true, - "name": "attributeName", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Returns the user's screensaver wait time setting in number of minutes, or zero if the screensaver is disabled.", - "name": "GetScreensaverTimeout", - "params": [], - "returnDescription": "The number of minutes set for the screensaver wait time.", - "returnType": "Integer" - }, - { - "description": "Returns an [roTimespan](https://developer.roku.com/docs/references/brightscript/components/rotimespan.md\"roTimespan\") object, which is \"marked\" when the user clicked on the application button on the home screen.Calling the TotalMilliseconds() method on the returned roTimespan object returns the total number of milliseconds since the application started.", - "name": "GetUptime", - "params": [], - "returnDescription": "An [roTimespan](/docs/references/brightscript/components/rotimespan.md \"roTimespan\") object.", - "returnType": "Object" - }, - { - "description": "This method returns true if a channel with the specified channelID and the minimum version required is installed.", - "name": "IsAppInstalled", - "params": [ - { - "default": null, - "description": "The unique id of the channel.", - "isRequired": true, - "name": "channelID", - "type": "String" - }, - { - "default": null, - "description": "The minimum version number of the channel to be used for the query.", - "isRequired": true, - "name": "version", - "type": "String" - } - ], - "returnDescription": "A boolean indicating whether the specified channel is installed.", - "returnType": "Boolean" - }, - { - "description": "Launches the channel with the specified channelID and the specified version, with the playback experience upon launching the channel based on the provided params.", - "name": "LaunchApp", - "params": [ - { - "default": null, - "description": "The unique ID of the channel to be launched.", - "isRequired": true, - "name": "channelID", - "type": "String" - }, - { - "default": null, - "description": "The minimum version of the channel required to launch the channel. If the specified version (or later) is not being used, the channel is not launched. To skip the version check, pass an empty string.", - "isRequired": true, - "name": "version", - "type": "String" - }, - { - "default": null, - "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": "roAssociativeArray" - } - ], - "returnType": "Void" - }, - { - "description": "Enables or disables automatic Audio Guide and override any manifest setting.This is useful for channels that want to temporarily turn off automatic Audio Guide for specific screens.", - "name": "SetAutomaticAudioGuideEnabled", - "params": [ - { - "default": null, - "description": "A flag indicating whether to enable or disable the automatic audio guide.", - "isRequired": true, - "name": "enabled", - "type": "Boolean" - } - ], - "returnType": "Void" - }, - { - "description": "Updates video or audio [content metadata](/docs/developer-program/getting-started/architecture/content-metadata.md) during playback. This method takes a subset of content metadata parameters to be updated. These values override any previously ones sent to the Roku Media Player, and they are used until this function is called again or until the [**roAppManager**](https://developer.roku.com/docs/references/brightscript/components/roappmanager.md instance is deleted.", - "name": "SetNowPlayingContentMetaData", - "params": [ - { - "default": null, - "description": "The video or audio [content metadata](/docs/developer-program/getting-started/architecture/content-metadata.md) parameters to be updated (for example, the title and contentType)", - "isRequired": true, - "name": "contentMetaData", - "type": "roAssociativeArray" - } - ], - "returnType": "Void" - }, - { - "description": "Sets a group of theme attributes for the application.", - "name": "SetTheme", - "params": [ - { - "default": null, - "description": "The attributeArray is an [roAssociativeArray](https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md\"roAssociativeArray\") of attribute/value pairs. The program may create the roAssociativeArray at runtime or read it from an XML file using the [roXMLElement](https://developer.roku.com/docs/references/brightscript/components/roxmlelement.md\"roXMLElement\") object. Existing values for attributes will be overwritten by the values provided. Any values set by a previous SetTheme or SetThemeAttribute call, but not included in the array currently provided by with the subsequent call will remain unchanged. See [roAppManager](https://developer.roku.com/docs/references/brightscript/components/roappmanager.md\"roAppManager\") the list of valid attributes.", - "isRequired": true, - "name": "attributeArray", - "type": "Object" - } - ], - "returnType": "Void" - }, - { - "description": "Set an individual theme attribute for the application.", - "name": "SetThemeAttribute", - "params": [ - { - "default": null, - "description": "The attributeName is the name of one of the settable theme attributes and the value is the desired setting. If the attributeName is not valid, no action is performed.", - "isRequired": true, - "name": "attributeName", - "type": "String" - }, - { - "default": null, - "description": "This attributeValue will override the default value for that attribute or modify the value provided by a previous SetTheme or SetThemeAttribute call to the new value provided.", - "isRequired": true, - "name": "attributeValue", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "This method allows a channel to tell Roku when the user is signed in or signed out of the channelIf the channel is removed, the Roku OS will call SetUserSignedIn(false) on the channel's behalf.", - "name": "SetUserSignedIn", - "params": [ - { - "default": null, - "description": "Set to true to indicate that the user is signed in; set to false to indicate the user is signed out.", - "isRequired": true, - "name": "signedIn", - "type": "Boolean" - } - ], - "returnType": "Void" - }, - { - "description": "Launches the channel store springboard of the specified channel. The channel store springboard contains detailed information about the channel, including ratings, version, date of last update, developer name, and a description.", - "name": "ShowChannelStoreSpringboard", - "params": [ - { - "default": null, - "description": "The unique ID of the channel to be launched.", - "isRequired": true, - "name": "channelID", - "type": "String" - } - ], - "returnType": "Void" - } - ], - "name": "ifAppManager", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifappmanager.md" - }, - "ifarray": { - "implementers": [ - { - "description": "An array stores an indexed collection of BrightScript objects. Each entry of an array can be a different type, or they may all of the same type", - "name": "roArray", - "url": "https://developer.roku.com/docs/references/brightscript/components/roarray.md" - }, - { - "description": "The byte array component is used to contain and manipulate an arbitrary array of bytes", - "name": "roByteArray", - "url": "https://developer.roku.com/docs/references/brightscript/components/robytearray.md" - }, - { - "description": "The list object implements the interfaces: ifList, ifArray, ifEnum and therefore can behave like an array that can dynamically add members", - "name": "roList", - "url": "https://developer.roku.com/docs/references/brightscript/components/rolist.md" - }, - { - "description": "Contains a list of roXML objects", - "name": "roXMLList", - "url": "https://developer.roku.com/docs/references/brightscript/components/roxmllist.md" - } - ], - "methods": [ - { - "description": "Appends the entries in one **roArray** to another. If the passed array contains entries that have not been set to a value, they are not appended.", - "name": "Append", - "params": [ - { - "default": null, - "description": "The **roArray** to be appended to the target array.", - "isRequired": true, - "name": "array", - "type": "Object" - } - ], - "returnType": "Void" - }, - { - "description": "Deletes all the entries in the array.", - "name": "Clear", - "params": [], - "returnType": "Void" - }, - { - "description": "Returns the length of the array, which is one more than the index of highest entry.", - "name": "Count", - "params": [], - "returnDescription": "The length of the array.", - "returnType": "Integer" - }, - { - "description": "Deletes the indicated array entry, and shifts all entries up. This decreases the array length by one.", - "name": "Delete", - "params": [ - { - "default": null, - "isRequired": true, - "name": "index", - "type": "Integer" - } - ], - "returnDescription": "A flag indicating whether the specified array entry has been removed. If the entry was successfully deleted, returns true. If index is out of range, returns false and does not change the array.", - "returnType": "Boolean" - }, - { - "description": "Returns the last (highest index) array entry without removing it. If the array is empty, returns invalid", - "name": "Peek", - "params": [], - "returnDescription": "Invalid", - "returnType": "Dynamic" - }, - { - "description": "Returns the last entry (highest index) from the array and removes it from the array. If the array is empty, returns invalid and does not change the array.", - "name": "Pop", - "params": [], - "returnDescription": "The last (highest index) array entry.", - "returnType": "Dynamic" - }, - { - "description": "Adds the specified value to the end of the array.", - "name": "Push", - "params": [ - { - "default": null, - "description": "The value to be added to the beginning of the array.", - "isRequired": true, - "name": "tvalue", - "type": "Dynamic" - } - ], - "returnType": "Void" - }, - { - "description": "Removes the first entry (zero index) from the beginning of the array and shifts the other entries up. This method is similar to the [Pop method](#pushtvalue-as-dynamic-as-void), but removes the first entry in the array instead of the last.", - "name": "Shift", - "params": [], - "returnDescription": "The first entry (zero index) removed from the array.", - "returnType": "Dynamic" - }, - { - "description": "Adds the specified value to the beginning of the array (at the zero index) and shifts the other entries down. This method is similar to the [Push method](#push-as-dynamic), but removes the first entry in the array instead of the last.", - "name": "Unshift", - "params": [ - { - "default": null, - "description": "The value to be added to the beginning of the array.", - "isRequired": true, - "name": "tvalue", - "type": "Dynamic" - } - ], - "returnType": "Void" - } - ], - "name": "ifArray", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifarray.md" - }, - "ifarrayget": { - "description": "The ifArrayGet interface supports the array indexing operator \\[ \\]\n\n(See [Array Operator](https://developer.roku.com/docs/references/brightscript/language/expressions-variables-types.mdeffects-of-type-conversions-on-accuracy \"Array Operator\"))", - "implementers": [ - { - "description": "An array stores an indexed collection of BrightScript objects. Each entry of an array can be a different type, or they may all of the same type", - "name": "roArray", - "url": "https://developer.roku.com/docs/references/brightscript/components/roarray.md" - }, - { - "description": "The byte array component is used to contain and manipulate an arbitrary array of bytes", - "name": "roByteArray", - "url": "https://developer.roku.com/docs/references/brightscript/components/robytearray.md" - }, - { - "description": "The list object implements the interfaces: ifList, ifArray, ifEnum and therefore can behave like an array that can dynamically add members", - "name": "roList", - "url": "https://developer.roku.com/docs/references/brightscript/components/rolist.md" - }, - { - "description": "Contains a list of roXML objects", - "name": "roXMLList", - "url": "https://developer.roku.com/docs/references/brightscript/components/roxmllist.md" - } - ], - "methods": [ - { - "description": "Returns an array entry based on the provided index.", - "name": "GetEntry", - "params": [ - { - "default": null, - "description": "The index of the array entry to be returned.", - "isRequired": true, - "name": "index", - "type": "Integer" - } - ], - "returnDescription": "The array entry corresponding to the provided index, or invalid if the entry has not been set.", - "returnType": "Dynamic" - } - ], - "name": "ifArrayGet", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifarrayget.md" - }, - "ifarrayjoin": { - "implementers": [ - { - "description": "Returns information about the application", - "name": "roArray", - "url": "https://developer.roku.com/docs/references/brightscript/components/roarray.md" - } - ], - "methods": [ - { - "description": "Creates a string by joining all array elements together separated by the specified separator. All elements must be of type string; otherwise, an empty string is returned", - "name": "Join", - "params": [ - { - "default": null, - "description": "The string used to separate elements in an array.", - "isRequired": true, - "name": "separator", - "type": "String" - } - ], - "returnDescription": "A String containing the array elements.", - "returnType": "String" - } - ], - "name": "ifArrayJoin", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifarrayjoin.md" - }, - "ifarrayset": { - "description": "The ifArraySet interface supports the array indexing operator \\[\\].\n\n(See ArrayOperator)", - "implementers": [ - { - "description": "An array stores an indexed collection of BrightScript objects. Each entry of an array can be a different type, or they may all of the same type", - "name": "roArray", - "url": "https://developer.roku.com/docs/references/brightscript/components/roarray.md" - }, - { - "description": "The byte array component is used to contain and manipulate an arbitrary array of bytes", - "name": "roByteArray", - "url": "https://developer.roku.com/docs/references/brightscript/components/robytearray.md" - }, - { - "description": "The list object implements the interfaces: ifList, ifArray, ifEnum and therefore can behave like an array that can dynamically add members", - "name": "roList", - "url": "https://developer.roku.com/docs/references/brightscript/components/rolist.md" - }, - { - "description": "Contains a list of roXML objects", - "name": "roXMLList", - "url": "https://developer.roku.com/docs/references/brightscript/components/roxmllist.md" - } - ], - "methods": [ - { - "description": "Sets an entry at a given index to the passed value. If index is beyond the bounds of the array, the array is expanded to accommodate it.", - "name": "SetEntry", - "params": [ - { - "default": null, - "description": "The entry to be updated.", - "isRequired": true, - "name": "index", - "type": "Integer" - }, - { - "default": null, - "description": "The new value for the specified entry.", - "isRequired": true, - "name": "tvalue", - "type": "Dynamic" - } - ], - "returnType": "Void" - } - ], - "name": "ifArraySet", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifarrayset.md" - }, - "ifarraysort": { - "implementers": [ - { - "description": "Returns information about the application", - "name": "roArray", - "url": "https://developer.roku.com/docs/references/brightscript/components/roarray.md" - } - ], - "methods": [ - { - "description": "Reverses the order of elements in an array.", - "name": "Reverse", - "params": [], - "returnType": "Void" - }, - { - "description": "Performs a stable sort on an array.", - "name": "Sort", - "params": [ - { - "default": null, - "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": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Performs a stable sort of an array of associative arrays by value of a common field.", - "name": "SortBy", - "params": [ - { - "default": null, - "description": "The field to be used for sorting.", - "isRequired": true, - "name": "fieldName", - "type": "String" - }, - { - "default": null, - "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": "String" - } - ], - "returnType": "Void" - } - ], - "name": "ifArraySort", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifarraysort.md" - }, - "ifassociativearray": { - "implementers": [ - { - "description": "An associative array allows objects to be associated with string keys", - "name": "roAssociativeArray", - "url": "https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md" - }, - { - "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", - "name": "roSGNode", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" - } - ], - "methods": [ - { - "description": "Adds a new entry to the array associating the supplied value with the supplied key string. Only one value may be associated with a key. If the key is already associated with a value, the existing value is discarded.", - "name": "AddReplace", - "params": [ - { - "default": null, - "description": "The key to be added to the associative array.", - "isRequired": true, - "name": "key", - "type": "String" - }, - { - "default": null, - "description": "The value of the key to be added to the associative array.", - "isRequired": true, - "name": "value", - "type": "Dynamic" - } - ], - "returnType": "Void" - }, - { - "description": "Appends an associative array to this calling object. If any key in the **aa** parameter is already associated with a value in the calling object, the current value is discarded and is replaced with the value provided in the **aa** parameter.", - "name": "Append", - "params": [ - { - "default": null, - "description": "The associative array to be appended to the calling object.", - "isRequired": true, - "name": "aa", - "type": "Object" - } - ], - "returnType": "Void" - }, - { - "description": "Remove all key/values from the associative array.", - "name": "Clear", - "params": [], - "returnType": "Void" - }, - { - "description": "Returns the number of keys in the associative array.", - "name": "Count", - "params": [], - "returnDescription": "The number of keys in the associative array.", - "returnType": "Integer" - }, - { - "description": "Deletes an entry from an associative array based on the key.", - "name": "Delete", - "params": [ - { - "default": null, - "description": "The key associated with the entry to be deleted.", - "isRequired": true, - "name": "key", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether an entry is associated with the specified key exists. If there is no associated object then false is returned. If there is such an object then true is returned.", - "returnType": "Boolean" - }, - { - "description": "Looks for an entry in the associative array associated with the specified key.", - "name": "DoesExist", - "params": [ - { - "default": null, - "description": "The key associated with the entry to be checked.", - "isRequired": true, - "name": "key", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether an entry is associated with the specified key exists. If there is no associated object then false is returned. If there is such an object then true is returned.", - "returnType": "Boolean" - }, - { - "description": "Returns an array containing the associative array key/value pairs in lexicographical order of key.", - "name": "Items", - "params": [], - "returnDescription": "An array of associative array keys/value pairs.", - "returnType": "Object" - }, - { - "description": "Returns an array containing the associative array keys in lexicographical order.", - "name": "Keys", - "params": [], - "returnDescription": "An array of associative array keys.", - "returnType": "Object" - }, - { - "description": "Returns the value in the array associated with the specified key. The key comparison is case-insensitive, unless the **SetModeCaseSensitive()** method has been called.", - "name": "Lookup", - "params": [ - { - "default": null, - "description": "The key associated with the value to be retrieved from the associative array.", - "isRequired": true, - "name": "key", - "type": "String" - } - ], - "returnDescription": "Returns the value in the array associated with the specified key. If there is no value associated with the key, the type \"invalid\" is returned.", - "returnType": "Dynamic" - }, - { - "description": "Same as the [Lookup()](#lookupkey-as-string-as-dynamic) method except that the key comparison is always case insensitive, regardless of the case mode.", - "name": "LookupCI", - "params": [ - { - "default": null, - "description": "The key (case-insensitive) associated with the value to be retrieved from the associative array.", - "isRequired": true, - "name": "key", - "type": "String" - } - ], - "returnDescription": "Returns the value in the array associated with the specified key. If there is no value associated with the key, the type \"invalid\" is returned.", - "returnType": "Dynamic" - }, - { - "description": "Makes all subsequent associative array lookups case sensitive (by default, lookups are case insensitive).", - "name": "SetModeCaseSensitive", - "params": [], - "returnType": "Void" - } - ], - "name": "ifAssociativeArray", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifassociativearray.md" - }, - "ifaudioguide": { - "description": "> Please note this component is only available on the following devices: Roku Streaming Stick (3600X), Roku Express (3700X) and Express+ (3710X), Roku Premiere (4620X) and Premiere+ (4630X), Roku Ultra (4640X), and any Roku TV running Roku OS version 7.5 and later.", - "implementers": [ - { - "description": "Returns information about the application", - "name": "roAudioGuide", - "url": "https://developer.roku.com/docs/references/brightscript/components/roaudioguide.md" - } - ], - "methods": [ - { - "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": [], - "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.", - "name": "Say", - "params": [ - { - "default": null, - "description": "The string to be spoken.", - "isRequired": true, - "name": "text", - "type": "String" - }, - { - "default": null, - "description": "Set to true to make the Audio Guide immediately stop speaking any other speech before speaking. Set to false to make the Audio Guide wait until any current speech is done before speaking.", - "isRequired": true, - "name": "flushSpeech", - "type": "Boolean" - }, - { - "default": null, - "description": "Set to true to ignore calls to the say() method with the same text. Set to false to speak when calls to the say() method are sent with the same text.", - "isRequired": true, - "name": "dontRepeat", - "type": "Boolean" - } - ], - "returnDescription": "An ID associated with the spoken string to be used to notify observer callbacks.", - "returnType": "Integer" - }, - { - "description": "If Audio Guide is enabled, causes text to speech to continue to suppress any application background sound for the amount of time specified by duration (in milliseconds).This can be used to add clarity for longer spoken text that may have pauses that might otherwise allow application background sound to be heard. This method does nothing if Audio Guide is currently disabled.", - "name": "Silence", - "params": [ - { - "default": null, - "description": "The number of milliseconds to suppress application background sounds.", - "isRequired": true, - "name": "duration", - "type": "Integer" - } - ], - "returnDescription": "The number of milliseconds that the background sound has been silenced.", - "returnType": "Integer" - } - ], - "name": "ifAudioGuide", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifaudioguide.md" - }, - "ifaudiometadata": { - "implementers": [ - { - "description": "This component provides developers access to audio file metadata included in many audio files", - "name": "roAudioMetadata", - "url": "https://developer.roku.com/docs/references/brightscript/components/roaudiometadata.md" - } - ], - "methods": [ - { - "description": "Returns an associative array with a simple set of audio properties.", - "name": "GetAudioProperties", - "params": [], - "returnDescription": "An associative array that may be set to one of the following values (these are values that may involve reading a larger portion of the file and thus may take longer to retrieve than tags):", - "returnType": "Object" - }, - { - "description": "Returns the cover art, if available.", - "name": "GetCoverArt", - "params": [], - "returnDescription": "An associative array with two entries: \"bytes\" and \"type\".", - "returnType": "Object" - }, - { - "description": "Returns an associative array that contains a simple set of tags that are common to most audio formats.", - "name": "GetTags", - "params": [], - "returnDescription": "An associative array that may be set to one of the following values:", - "returnType": "Object" - }, - { - "description": "Sets the URL to the audio file. Only file URLs are initially supported", - "name": "SetUrl", - "params": [ - { - "default": null, - "description": "The URL of the audio file.", - "isRequired": true, - "name": "url", - "type": "String" - } - ], - "returnType": "Void" - } - ], - "name": "ifAudioMetaData", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifaudiometadata.md" - }, - "ifaudioplayer": { - "implementers": [ - { - "description": "The Audio Player object provides the ability to setup the playing of a series of audio streams", - "name": "roAudioMetadata", - "url": "https://developer.roku.com/docs/references/brightscript/components/roaudiometadata.md" - } - ], - "methods": [ - { - "description": "Adds a new ContentMetaData item to the end of the content list for the Audio Player.", - "name": "AddContent", - "params": [ - { - "default": null, - "description": "The new ContentMetaData item to be added to the content list.", - "isRequired": true, - "name": "contentItem", - "type": "Object" - } - ], - "returnType": "Void" - }, - { - "description": "Clears the content list.", - "name": "ClearContent", - "params": [], - "returnType": "Void" - }, - { - "description": "Puts the Audio Player into pause mode. It is an error to Pause if player is not in play mode.", - "name": "Pause", - "params": [], - "returnDescription": "A flag indicating whether the Audio Player was successfully set to pause mode.", - "returnType": "Boolean" - }, - { - "description": "Puts the Audio Player into play mode starting at the current item in the Content List. This will stop any currently playing content.", - "name": "Play", - "params": [], - "returnDescription": "A flag indicating whether the Audio Player was successfully set to play mode.", - "returnType": "Boolean" - }, - { - "description": "Puts the Audio Player into play mode starting from the pause point. It is an error to Resume if the player is not in pause mode.", - "name": "Resume", - "params": [], - "returnDescription": "A flag indicating whether the Audio Player was successfully set to play mode.", - "returnType": "Boolean" - }, - { - "description": "Set the start point of playback for the current item to offsetMs milliseconds.", - "name": "Seek", - "params": [ - { - "default": null, - "description": "The offset to be used to determine the start point of the current content item.", - "isRequired": true, - "name": "offsetMs", - "type": "Integer" - } - ], - "returnDescription": "A flag indicating whether the Audio Player was successfully set to the specified offset.", - "returnType": "Boolean" - }, - { - "description": "Sets the content list to be played by the Audio Player.", - "name": "SetContentList", - "params": [ - { - "default": null, - "isRequired": true, - "name": "contentList", - "type": "Object" - } - ], - "returnType": "Void" - }, - { - "description": "Enables/disables the automatic replaying of the Content List.", - "name": "SetLoop", - "params": [ - { - "default": null, - "description": "Set to true to have the Audio Player automatically begin playing the first item in the content list after playing the last item. Set to false to have the Audio Player stop after playing the last item in the content list.", - "isRequired": true, - "name": "enable", - "type": "Boolean" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the next item in the Content List to be played.", - "name": "SetNext", - "params": [ - { - "default": null, - "description": "Item is the zero-based index of the item in the content list. This item will be played after the currently playing item finishes.", - "isRequired": true, - "name": "item", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Specifies the timedMetaData keys that the channel is interested in receiving from the timedMetaData event.", - "name": "SetTimedMetaDataForKeys", - "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", - "type": "Dynamic" - } - ], - "returnType": "Void" - }, - { - "description": "Stops the Audio Player from playing or pausing and cleanup.", - "name": "Stop", - "params": [], - "returnDescription": "A flag indicating whether the Audio Player was successfully stopped.", - "returnType": "Boolean" - } - ], - "name": "ifAudioPlayer", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifaudioplayer.md" - }, - "ifaudioresource": { - "implementers": [ - { - "description": "The roAudioResouce allows .wav files to be cached to memory and quickly played at any time", - "name": "roAudioResource", - "url": "https://developer.roku.com/docs/references/brightscript/components/roaudioresource.md" - } - ], - "methods": [ - { - "description": "Returns an [roAssociativeArray](https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md\"roAssociativeArray\") array containing the indicated metadata parameters about the audio resource.", - "name": "GetMetaData", - "params": [], - "returnDescription": "An associative array with the following integer values:", - "returnType": "Object" - }, - { - "description": "Checks whether this audio resource is currently playing.", - "name": "IsPlaying", - "params": [], - "returnDescription": "A flag indicating whether the calling audio resource is playing.", - "returnType": "Boolean" - }, - { - "description": "Returns the device-dependent maximum number of audio streams that can be mixed together and presented simultaneously.", - "name": "MaxSimulStreams", - "params": [], - "returnDescription": "Typically, 1-2.", - "returnType": "Integer" - }, - { - "description": "Stops playing the audio resource. If the resource is not currently playing, has no effect.", - "name": "Stop", - "params": [], - "returnType": "Void" - }, - { - "description": "This method triggers the start of the audio resource sound playback. The effect of Trigger(volume) is identical to Trigger(volume, 0).", - "name": "Trigger", - "params": [ - { - "default": null, - "description": "The volume is a number between 0 and 100 (percentage of full volume). A value of 50 should be used for normal volume.", - "isRequired": true, - "name": "volume", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Triggers the start of the audio resource sound playback. This method will interrupt any playing sound when the index is the same. It will mix with any playing sound if the index is different.", - "name": "Trigger", - "params": [ - { - "default": null, - "description": "The volume is a number between 0 and 100 (percentage of full volume). 50 should be used for normal volume.", - "isRequired": true, - "name": "volume", - "type": "Integer" - }, - { - "default": null, - "description": "The index is a value between 0 and [MaxSimulStreams()](#maxsimulstreams-as-integer) allowing for multiple sounds to be mixed.", - "isRequired": true, - "name": "index", - "type": "Integer" - } - ], - "returnType": "Void" - } - ], - "name": "ifAudioResource", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifaudioresource.md" - }, - "ifboolean": { - "description": "Interface equivalent for intrinsic type Boolean.", - "implementers": [ - { - "description": "Object equivalent for intrinsic type Boolean", - "name": "roBoolean", - "url": "https://developer.roku.com/docs/references/brightscript/components/roboolean.md" - } - ], - "methods": [ - { - "description": "Gets the boolean value stored in the calling boolean object.", - "name": "GetBoolean", - "params": [], - "returnDescription": "The boolean value stored in the calling boolean object.", - "returnType": "Boolean" - }, - { - "description": "Sets the calling boolean object to the specified true/false value.", - "name": "SetBoolean", - "params": [ - { - "default": null, - "description": "True/false.", - "isRequired": true, - "name": "value", - "type": "Boolean" - } - ], - "returnType": "Void" - } - ], - "name": "ifBoolean", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifboolean.md" - }, - "ifbytearray": { - "implementers": [ - { - "description": "The byte array component is used to contain and manipulate an arbitrary array of bytes", - "name": "roByteArray", - "url": "https://developer.roku.com/docs/references/brightscript/components/robytearray.md" - } - ], - "methods": [ - { - "description": "Appends the contents of the Byte Array to the specified file.", - "name": "AppendFile", - "params": [ - { - "default": null, - "description": "The path to the file to be appended to the ByteArray.", - "isRequired": true, - "name": "path", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the file was successfully appended to the calling ByteArray.", - "returnType": "Boolean" - }, - { - "description": "Appends the contents of the Byte Array to the specified file.", - "name": "AppendFile", - "params": [ - { - "default": null, - "description": "The path to the file to be appended to the Byte Array.", - "isRequired": true, - "name": "path", - "type": "String" - }, - { - "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": "length", - "type": "Integer" - } - ], - "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.", - "name": "FromAsciiString", - "params": [ - { - "default": null, - "description": "The string to which the ByteArray is to be set.", - "isRequired": true, - "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.", - "name": "FromBase64String", - "params": [ - { - "default": null, - "description": "A valid base-64 encoding", - "isRequired": true, - "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.", - "name": "FromHexString", - "params": [ - { - "default": null, - "description": "An even number of hexadecimal digits. The string must contain valid hexadecimal digits, or the result is undefined", - "isRequired": true, - "name": "hexstring", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Calculates a CRC-32 of the contents of the Byte Array.", - "name": "GetCRC32", - "params": [], - "returnDescription": "The calculated CRC-32 checksum.", - "returnType": "Integer" - }, - { - "description": "Calculates a CRC-32 of a subset of bytes within the Byte Array.", - "name": "GetCRC32", - "params": [ - { - "default": null, - "description": "The starting index of the subset of bytes to be used in the CRC-32 calculation.", - "isRequired": true, - "name": "start", - "type": "Integer" - }, - { - "default": null, - "description": "The length of the bytes to be included.", - "isRequired": true, - "name": "length", - "type": "Integer" - } - ], - "returnDescription": "The calculated CRC-32 checksum.", - "returnType": "Integer" - }, - { - "description": "Returns the signed byte at the specified zero-based index in the Byte ArrayUse the [ifArrayGet.GetEntry()](https://developer.roku.com/docs/references/brightscript/interfaces/ifarrayget.mdgetentryindex-as-integer-as-dynamic) method or the \\[ \\] array operator to read an unsigned byte in the Byte Array.", - "name": "GetSignedByte", - "params": [ - { - "default": null, - "description": "The index of the signed byte to be returned.", - "isRequired": true, - "name": "index", - "type": "Integer" - } - ], - "returnDescription": "The signed byte at the specified zero-based index in the Byte Array.", - "returnType": "Integer" - }, - { - "description": "Returns the signed long (four bytes) starting at the specified zero-based index in the Byte Array.", - "name": "GetSignedLong", - "params": [ - { - "default": null, - "description": "The index of the ByteArray from which to start retrieving the signed long.", - "isRequired": true, - "name": "index", - "type": "Integer" - } - ], - "returnDescription": "A signed long.", - "returnType": "Integer" - }, - { - "description": "Returns true if the CPU architecture is little-endian.", - "name": "IsLittleEndianCPU", - "params": [], - "returnDescription": "A flag indicating whether the CPU architecture is little-endian.", - "returnType": "Boolean" - }, - { - "description": "Reads the specified file into the Byte Array. Any data currently in the Byte Array is discarded.", - "name": "ReadFile", - "params": [ - { - "default": null, - "description": "The path to the file to be read.", - "isRequired": true, - "name": "path", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the bytes were successfully read into the Byte Array.", - "returnType": "Boolean" - }, - { - "description": "Reads the specified file into the Byte Array. Any data currently in the Byte Array is discarded.", - "name": "ReadFile", - "params": [ - { - "default": null, - "description": "The path to the file to be read.", - "isRequired": true, - "name": "path", - "type": "String" - }, - { - "default": null, - "description": "The index of the file from which to start reading bytes.", - "isRequired": true, - "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.", - "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.", - "name": "SetResize", - "params": [ - { - "default": null, - "description": "The minimum size to which the calling Byte Array is to be expanded.", - "isRequired": true, - "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", - "name": "ToAsciiString", - "params": [], - "returnDescription": "A String containing the contents of the ByteArray.", - "returnType": "String" - }, - { - "description": "Returns a base-64 string representing the contents of the Byte Array.", - "name": "ToBase64String", - "params": [], - "returnDescription": "A base-64 string representing the contents of the Byte Array.", - "returnType": "String" - }, - { - "description": "Returns a hexadecimal string representing the contents of the Byte Array, two digits per byte.", - "name": "ToHexString", - "params": [], - "returnDescription": "A hexadecimal string.", - "returnType": "String" - }, - { - "description": "Writes the bytes contained in the Byte Array to the specified file.", - "name": "WriteFile", - "params": [ - { - "default": null, - "description": "The path to the file to which the bytes are to be written.", - "isRequired": true, - "name": "path", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the bytes were successfully written to the file.", - "returnType": "Boolean" - }, - { - "description": "Writes a subset of the bytes contained in the Byte Array to the specified file.", - "name": "WriteFile", - "params": [ - { - "default": null, - "description": "The path to the file to which the bytes are to be written.", - "isRequired": true, - "name": "path", - "type": "String" - }, - { - "default": null, - "description": "The index of the calling ByteArray from which to start writing bytes.", - "isRequired": true, - "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.", - "returnType": "Boolean" - } - ], - "name": "ifByteArray", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifbytearray.md" - }, - "ifcaptionrenderer": { - "description": "> This component is no longer updated and will be deprecated on January 1st, 2019.Beginning July 1st, 2017, any new channels using this component will be rejected during certification.Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", - "implementers": [ - { - "description": "Returns information about the application", - "name": "roCaptionRenderer", - "url": "https://developer.roku.com/docs/references/brightscript/components/rocaptionrenderer.md" - } - ], - "methods": [ - { - "description": "The ChangeSubtitleTrack function is used to change the caption source after playback has begun.", - "name": "ChangeSubtitleTrack", - "params": [ - { - "default": null, - "description": "One of the 608 channels or ttml text tracks to be selected. The 608 channels are specified as 'eia608/' where is 1, 2, 3, or 4. The ttml text tracks are specified as 'ism/'.", - "isRequired": true, - "name": "track", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Returns an roArray of roAssociativeArrays for each closed caption track found in the stream. This function can also be used to retrieve caption URLs for external (sideloaded) caption files.", - "name": "GetSubtitleTracks", - "params": [], - "returnDescription": "Each associative array in the returned array contains track information similar to that specified in the SubtitleTracks content metadata structure:", - "returnType": "Object" - }, - { - "description": "Sets the [roMessagePort](https://developer.roku.com/docs/references/brightscript/components/romessageport.md that should receive [roCaptionRendererEvents](https://developer.roku.com/docs/references/brightscript/events/rocaptionrendererevent.md from the roCaptionRenderer.", - "name": "SetMessagePort", - "params": [ - { - "default": null, - "isRequired": true, - "name": "port", - "type": "Object" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the rendering mode for the [roCaptionRenderer](https://developer.roku.com/docs/references/brightscript/components/rocaptionrenderer.md\"roCaptionRenderer\").", - "name": "SetMode", - "params": [ - { - "default": null, - "isRequired": true, - "name": "mode", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Sets 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 associated with this caption renderer.This function only needs to be called if the roCaptionRenderer mode is set to 1 (the default value). In this case, the Roku OS is responsible for all of the closed caption text rendering, and thus must know what screen to draw on.If the mode is set to 2, the BrightScript channel is responsible for all of the caption drawing, and thus the Roku OS does not need to be informed as to what screen is being rendered on.", - "name": "SetScreen", - "params": [ - { - "default": null, - "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", - "roImageCanvas" - ] - } - ], - "returnType": "Void" - }, - { - "description": "Specifies whether the roCaptionRenderer displays captions. This function behaves the same as [ifVideoScreen.ShowSubtitle()](https://developer.roku.com/docs/references/brightscript/interfaces/ifvideoscreen.md\"ifVideoScreen.ShowSubtitle/(/)\").", - "name": "ShowSubtitle", - "params": [ - { - "default": null, - "description": "A flag indicating whether the roCaptionRenderer displays captions.", - "isRequired": true, - "name": "enable", - "type": "Boolean" - } - ], - "returnType": "Void" - }, - { - "description": "For roCaptionRenderer instances with the mode set to 1, this method tells the Roku OS to render the current caption. If the mode is 2, this function does nothing", - "name": "UpdateCaption", - "params": [], - "returnType": "Void" - } - ], - "name": "ifCaptionRenderer", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifcaptionrenderer.md" - }, - "ifchannelstore": { - "implementers": [ - { - "description": "allows the application to perform a purchase of an In-Channel Product or upgrade a channel", - "name": "roChannelStore", - "url": "https://developer.roku.com/docs/references/brightscript/components/rochannelstore.md" - } - ], - "methods": [ - { - "name": "ClearOrder", - "params": [], - "returnType": "Void" - }, - { - "description": "Applies a change in quantity to one item in the current Order (shopping cart).", - "name": "DeltaOrder", - "params": [ - { - "default": null, - "description": "The product identifier.", - "isRequired": true, - "name": "code", - "type": "Object" - }, - { - "default": null, - "description": "The quantity purchased. This may be a negative number.", - "isRequired": true, - "name": "qty", - "type": "Integer" - } - ], - "returnType": "Integer" - }, - { - "description": "Displays the Roku Channel Store Product Purchase Screen populated with information from the current Order.", - "name": "DoOrder", - "params": [], - "returnDescription": "A flag indicating whether the user approved the order (true if the order was approved; false otherwise).", - "returnType": "Boolean" - }, - { - "description": "This test mode short circuits communication to the Roku Channel store. It makes other methods get their responses to async queries and operations from configuration files, rather than actual server communication.", - "name": "FakeServer", - "params": [ - { - "default": null, - "description": "If enable is true, enables a test mode for the roChannelStore component.", - "isRequired": true, - "name": "enable", - "type": "Boolean" - } - ], - "returnType": "Void" - }, - { - "description": "Requests the list of In-Channel products that are linked to the running channel.", - "name": "GetCatalog", - "params": [], - "returnType": "Void" - }, - { - "description": "Retrieves a Roku Partner Unique Customer Identifier (roku\\_pucid), or retrieves an access token, oAuth token, or other authentication artifact (channel\\_data).", - "name": "GetChannelCred", - "params": [], - "returnDescription": "An associative array that contains the following fields:", - "returnType": "Object" - }, - { - "description": "Returns a unique number for this object that can be used to identify whether a roChannelStoreEvent event originated from this object, by comparing with the roChannelStoreEvent object's GetSourceIdentity() value.", - "name": "GetIdentity", - "params": [], - "returnDescription": "The unique number generated for the object.", - "returnType": "Integer" - }, - { - "description": "Retrieves the current Order.", - "name": "GetOrder", - "params": [], - "returnDescription": "The returned object is an roList of roAssociativeArray items, where each item contains the following parameter names with specified value type:", - "returnType": "Object" - }, - { - "description": "This function works like GetUserData(), but allows the caller to specify which user data elements to return. The specified values are also displayed in the user data dialog screen.", - "name": "GetPartialUserData", - "params": [ - { - "default": null, - "description": "A comma-separated list of the attribute names to be returned. For example, to return only the email address and first name of the user's account, you would call GetPartialUserData(\"email, firstname\"). The full set of user account properties that can be queried with the function is: * firstname * lastname * email * street * city * state * zip * country * phone * birth (_Available since Roku OS 10.0_) * gender (_Available since Roku OS 10.0_)", - "isRequired": true, - "name": "properties", - "type": "String" - }, - { - "default": null, - "isRequired": true, - "name": "requestInfo", - "type": "Object" - } - ], - "returnDescription": "An roAssociativeArray containing the Roku account information passed in the method.", - "returnType": "Object" - }, - { - "description": "Requests the list of purchases associated with the current user account.", - "name": "GetPurchases", - "params": [], - "returnType": "Void" - }, - { - "description": "Requests the list of globally available In-Channel products, which are available to all channels.", - "name": "GetStoreCatalog", - "params": [], - "returnType": "Void" - }, - { - "description": "The GetUserData() function provides a way to request user authorization to share the user’s account information with the calling channel.", - "name": "GetUserData", - "params": [], - "returnDescription": "When called, the method presents a dialog screen containing the user’s account information, along with two buttons labeled Share and Don’t Share.", - "returnType": "Object" - }, - { - "description": "Retrieves the state, zip code, and country associated with the customer's Roku account. The location information returned by this command can be used to determine a customer's eligibility for regional-specific subscription products and content.", - "name": "GetUserRegionData", - "params": [], - "returnDescription": "An associative array that contains the following fields:", - "returnType": "Object" - }, - { - "description": "Sets the current Order (shopping cart) to the elements specified in the parameter, which must be an roList of roAssociativeArray items.Passing an empty roList clears the Order, like calling ClearOrder().", - "name": "SetOrder", - "params": [ - { - "default": null, - "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" - }, - { - "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: \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" - } - ], - "returnType": "Void" - }, - { - "description": "Stores an access token, oAuth token, or other authentication artifact that can be retrieved by calling the [GetChannelCred()](https://developer.roku.com/docs/references/brightscript/interfaces/ifchannelstore.mdgetchannelcred-as-object)method. This data is stored securely in the Roku cloud and can be retrieved by other devices linked to the same Roku account. This method can be used to store an authentication artifact with Roku for a signed in user, associating that user with a particular Roku account. For more information, see [Automatic Account Link](/docs/developer-program/authentication/universal-authentication-protocol-for-single-sign-on.md).", - "name": "StoreChannelCredData", - "params": [ - { - "default": null, - "description": "An OAuth token, custom token, or other custom data to be stored.", - "isRequired": true, - "name": "data", - "type": "String" - } - ], - "returnDescription": "This command returns an roAssociativeArray with the following values:", - "returnType": "Object" - } - ], - "name": "ifChannelStore", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifchannelstore.md" - }, - "ifcoderegistrationscreen": { - "deprecatedDescription": "This component is deprecated.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", - "implementers": [ - { - "description": "The Code Registration Screen is designed to present the user a registration code, and the information required to instruct the user on how to register with a service provider", - "name": "roCodeRegistrationScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rocoderegistrationscreen.md" - } - ], - "isDeprecated": true, - "methods": [ - { - "description": "Adds a button to the screen identified by the title and ID provided. The buttons are at the bottom of the screen and appear in the order added", - "name": "AddButton", - "params": [ - { - "default": null, - "description": "The ID of the button.", - "isRequired": true, - "name": "id", - "type": "Integer" - }, - { - "default": null, - "description": "The title of the button.", - "isRequired": true, - "name": "title", - "type": "String" - } - ], - "returnDescription": "When the button is pressed, the script will receive an event from the application indicating the ID of the button pressed.", - "returnType": "Boolean" - }, - { - "description": "Adds high visibility focal text to the screen to be placed above the registration code.", - "name": "AddFocalText", - "params": [ - { - "default": null, - "description": "This text is intended to provide the user important instructions on where to use the registration code. It is generally a few words of instruction followed by the URL for the registration site on the web.", - "isRequired": true, - "name": "text", - "type": "String" - }, - { - "default": null, - "description": "Multiple lines of text may be added and the spacing between each is controlled by specifying the spacing format as one of the following: spacing-dense, spacing–normal or spacing-sparse.", - "isRequired": true, - "name": "spacingFormat", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Add a string of bold, high visibility text to the screen as a header to introduce the subsequent paragraph(s).", - "name": "AddHeaderText", - "params": [ - { - "default": null, - "description": "The text to be displayed in the header of the code registration screen.", - "isRequired": true, - "name": "text", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Adds a paragraph of text to the screen. A paragraph is specified as a single string and are ordered on the screen in the same order as they are added. The roCodeRegistrationScreen handles all text formatting and justification. Spacing is automatically inserted between paragraphs for readability.", - "name": "AddParagraph", - "params": [ - { - "default": null, - "description": "The paragraph of text to be displayed on the code registration screen.", - "isRequired": true, - "name": "text", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Closes the screen and deletes the associated object. This is useful for avoiding screen flicker when the display order of your screens does not resemble a stack.", - "name": "Close", - "params": [], - "returnType": "Void" - }, - { - "description": "Breadcrumbs allow the application to display a two-part navigational title which shows the current and the previous locations in the application hierarchy (e.g. TV – Friends). If both location values are set, the application will display the title in breadcrumb format. If only the first location is set, the application will display the specified text in the title area like the SetTitle API call", - "name": "SetBreadcrumbText", - "params": [ - { - "default": null, - "isRequired": true, - "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.", - "name": "SetRegistrationCode", - "params": [ - { - "default": null, - "isRequired": true, - "name": "regCode", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the title for the screen to the specified string.", - "name": "SetTitle", - "params": [ - { - "default": null, - "description": "The title to be displayed on the code registration screen.", - "isRequired": true, - "name": "title", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Displays or refreshes the screen after creation or state changes.", - "name": "Show", - "params": [], - "returnDescription": "A flag indicating whether the screen is displayed (returns true if the screen is displayed, otherwise false).", - "returnType": "Boolean" - } - ], - "name": "ifCodeRegistrationScreen", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifcoderegistrationscreen.md" - }, - "ifcompositor": { - "implementers": [ - { - "description": "The roCompositor allows the composition and animation of multiple roBitmaps and roRegions", - "name": "roCompositor", - "url": "https://developer.roku.com/docs/references/brightscript/components/rocompositor.md" - } - ], - "methods": [ - { - "description": "Moves all animated sprites. Sprites will not animate unless you call this function regularly.", - "name": "AnimationTick", - "params": [ - { - "default": null, - "description": "The number of ms since the last call.", - "isRequired": true, - "name": "duration", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Provides a global search and replace of sprite [roRegions](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegions\"). Replaces regions that match oldRegion with newRegion", - "name": "ChangeMatchingRegions", - "params": [ - { - "default": null, - "description": "The sprite roRegion to be replaced.", - "isRequired": true, - "name": "oldRegion", - "type": "Object" - }, - { - "default": null, - "description": "The new sprite roRegion to be used.", - "isRequired": true, - "name": "newRegion", - "type": "Object" - } - ], - "returnType": "Void" - }, - { - "description": "Draws any dirty sprites (that is, whatever is new or has changed since the last Draw). No compositor or sprite operations will be reflected on the display until Draw() is called. After calling Draw(), you must call Finish() (if single buffered) or SwapBuffers() (if double buffered) before the changes will be user visible", - "name": "Draw", - "params": [], - "returnType": "Void" - }, - { - "description": "Redraws all sprites even if not dirty. After calling Draw(), you must call Finish() (if single buffered) or SwapBuffers() (if double buffered) before the changes will be user visible", - "name": "DrawAll", - "params": [], - "returnType": "Void" - }, - { - "description": "Creates a new sprite that consists of a sequence of frames to be animated. The frames are defined by the regionArray which is an [roArray](https://developer.roku.com/docs/references/brightscript/components/roarray.md\"roArray\") of [roRegions](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegions\"). Position the sprite at coordinate x,y. If z is provided, position the sprite in front of all other sprites with equal or lower z value", - "name": "NewAnimatedSprite", - "params": [ - { - "default": null, - "description": "The x-coordinate of the sprite.", - "isRequired": true, - "name": "x", - "type": "Integer" - }, - { - "default": null, - "description": "The y-coordinate of the sprite.", - "isRequired": true, - "name": "y", - "type": "Integer" - }, - { - "default": null, - "description": "The frames to be animated.", - "isRequired": true, - "name": "regionArray", - "type": "Object" - }, - { - "default": null, - "description": "The z-coordinate of the sprite.", - "isRequired": true, - "name": "z", - "type": "Integer" - } - ], - "returnDescription": "Returns an [roSprite](/docs/references/brightscript/components/rosprite.md \"roSprite\") object.", - "returnType": "Object" - }, - { - "description": "Creates a new sprite, using an roRegion to define the sprite's bitmap. Position the sprite at coordinate x,y. If z is provided, position the sprite in front of all other sprites with equal or lower z value. Sprites with negative z values are not rendered or displayed on the screen.", - "name": "NewSprite", - "params": [ - { - "default": null, - "description": "The x-coordinate of the sprite.", - "isRequired": true, - "name": "x", - "type": "Integer" - }, - { - "default": null, - "description": "The y-coordinate of the sprite.", - "isRequired": true, - "name": "y", - "type": "Integer" - }, - { - "default": null, - "description": "The region to be used to define the sprite's bitmap.", - "isRequired": true, - "name": "region", - "type": "Object" - }, - { - "default": null, - "description": "The z-coordinate of the sprite.", - "isRequired": true, - "name": "z", - "type": "Integer" - } - ], - "returnDescription": "Returns an [roSprite](/docs/references/brightscript/components/rosprite.md \"roSprite\") object.", - "returnType": "Object" - }, - { - "description": "Sets the destBitmap ([roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or [roScreen](https://developer.roku.com/docs/references/brightscript/components/roscreen.md\"roScreen\")) and the background color.", - "name": "SetDrawTo", - "params": [ - { - "default": null, - "description": "The bitmap to be drawn.", - "isRequired": true, - "name": "destBitmap", - "type": "Object" - }, - { - "default": null, - "description": "The background color to be used.", - "isRequired": true, - "name": "rgbaBackground", - "type": "Integer" - } - ], - "returnType": "Void" - } - ], - "name": "ifCompositor", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifcompositor.md" - }, - "ifdatetime": { - "implementers": [ - { - "description": "The roDateTime provides an interface to obtain the current date/time for the player and manipulate date/times", - "name": "roDateTime", - "url": "https://developer.roku.com/docs/references/brightscript/components/rodatetime.md" - } - ], - "methods": [ - { - "description": "Returns the date/time formatted string.", - "name": "AsDateString", - "params": [ - { - "default": null, - "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" - } - ], - "returnDescription": "A dateString corresponding to the specified format.", - "returnType": "String" - }, - { - "description": "Returns the date/time in long-date format.", - "name": "AsDateStringNoParam", - "params": [], - "returnDescription": "A date/time string in long-date format (for example, Tuesday October 9, 2012)", - "returnType": "String" - }, - { - "description": "Returns the date/time as the number of seconds from the Unix epoch (00:00:00 1/1/1970 GMT).", - "name": "AsSeconds", - "params": [], - "returnDescription": "Number of seconds as Integer.", - "returnType": "Integer" - }, - { - "description": "Sets the date/time using a string in the ISO 8601 format. For example \"YYYY-MM-DD HH:MM:SS\" e.g \"2009-01-01 01:00:00.000\" or \"2009-01-01T01:00:00.000\".", - "name": "FromISO8601String", - "params": [ - { - "default": null, - "description": "The ISO-8601 string to be used to set the date and time.", - "isRequired": true, - "name": "dateString", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the date/time value using the number of seconds from the Unix epoch.", - "name": "FromSeconds", - "params": [ - { - "default": null, - "description": "The number of seconds from the Unix epoch.", - "isRequired": true, - "name": "numSeconds", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Returns the date/time value's day of the month.", - "name": "GetDayOfMonth", - "params": [], - "returnDescription": "Month value as an Integer (1-31).", - "returnType": "Integer" - }, - { - "description": "Returns the date/time value's day of week.", - "name": "GetDayOfWeek", - "params": [], - "returnDescription": "Day value as an Integer (Sunday=0, Monday=1, ..., Saturday=6).", - "returnType": "Integer" - }, - { - "description": "Returns the date/time value's hour within the day.", - "name": "GetHours", - "params": [], - "returnDescription": "Hour value as an Integer (0-23)", - "returnType": "Integer" - }, - { - "description": "Returns the date/time value's last day of the month.", - "name": "GetLastDayOfMonth", - "params": [], - "returnDescription": "Day as an Integer (28-31)", - "returnType": "Integer" - }, - { - "description": "Returns the date/time value's millisecond within the second.", - "name": "GetMilliseconds", - "params": [], - "returnDescription": "Millisecond value as an Integer (0-999).", - "returnType": "Integer" - }, - { - "description": "Returns the date/time value's minute within the hour.", - "name": "GetMinutes", - "params": [], - "returnDescription": "Minute value as an Integer (0-59)", - "returnType": "Integer" - }, - { - "description": "Returns the date/time value's month.", - "name": "GetMonth", - "params": [], - "returnDescription": "Month value as an Integer (1=Jan, 12=Dec).", - "returnType": "Integer" - }, - { - "description": "Returns the date/time value's second within the minute.", - "name": "GetSeconds", - "params": [], - "returnDescription": "Second value as an Integer (0-59).", - "returnType": "Integer" - }, - { - "description": "Returns the offset in minutes from the system time zone to UTC. For example, if the system time zone is in PDT / UTC-7 the value returned would be 420.", - "name": "GetTimeZoneOffset", - "params": [], - "returnDescription": "Minutes of offset as Integer.", - "returnType": "Integer" - }, - { - "description": "Returns the day of the week.", - "name": "GetWeekday", - "params": [], - "returnDescription": "Week value as a String (e.g. \"Monday\").", - "returnType": "String" - }, - { - "description": "Return Value", - "name": "GetYear", - "params": [], - "returnType": "Integer" - }, - { - "description": "Sets the date/time value to the current UTC date and time.", - "name": "Mark", - "params": [], - "returnType": "Void" - }, - { - "description": "Returns an ISO 8601 representation of the date/time value. As of Roku OS 10.0, this now resolves to milliseconds.", - "name": "ToISOString", - "params": [], - "returnDescription": "ISO 8601 as String, e.g. \"2021-03-25T18:53:03+0000\"", - "returnType": "String" - }, - { - "description": "Offsets the date/time value from an assumed UTC date/time to a local date/time using the system time zone setting. This function is not idempotent, and multiple calls will do multiple timezone adjustments to the time yielding an incorrect result.", - "name": "ToLocalTime", - "params": [], - "returnType": "Void" - } - ], - "name": "ifDateTime", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifdatetime.md" - }, - "ifdevicecrypto": { - "implementers": [ - { - "description": "Encrypts and decrypts data on a device using a key that is unique per channel, device, or model.", - "name": "roDeviceCrypto", - "url": "https://developer.roku.com/docs/references/brightscript/components/rodevicecrypto.md" - } - ], - "methods": [], - "name": "ifDeviceCrypto", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifdevicecrypto.md" - }, - "ifdeviceinfo": { - "implementers": [ - { - "description": "The roDeviceInfo component provides an interface to obtain attributes about the device", - "name": "roDeviceInfo", - "url": "https://developer.roku.com/docs/references/brightscript/components/rodeviceinfo.md" - } - ], - "methods": [ - { - "description": "Checks if the device can decode and play the specified audio format.", - "name": "CanDecodeAudio", - "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_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.", - "returnType": "Object" - }, - { - "description": "Checks whether the device can decode and play the specified video format.", - "name": "CanDecodeVideo", - "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_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.", - "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.", - "name": "EnableAppFocusEvent", - "params": [ - { - "default": null, - "description": "A flag specifying whether to enable/disable system overlay event notifications.", - "isRequired": true, - "name": "enable", - "type": "Boolean" - } - ], - "returnDescription": "A flag indicating whether the system overlay event notifications are enabled (true) or disabled (false).", - "returnType": "Dynamic" - }, - { - "description": "Notifies the channel when the audio guide changes. This function enables the sending of an [roDeviceInfoEvent](https://developer.roku.com/docs/references/brightscript/events/rodeviceinfoevent.md when the audio guide changes. To receive events, you 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", - "name": "EnableAudioGuideChangedEvent", - "params": [ - { - "default": null, - "description": "A flag indicating whether to enable/disable audio guide change event notifications.", - "isRequired": true, - "name": "enable", - "type": "Boolean" - } - ], - "returnDescription": "A flag indicating whether audio guide change event notifications are enabled (true) or disabled (false).", - "returnType": "Dynamic" - }, - { - "description": "Notifies the channel when the audio or video codec changes. This function enables the sending of an [roDeviceInfoEvent](https://developer.roku.com/docs/references/brightscript/events/rodeviceinfoevent.md when the codec changes. To receive events, you 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", - "name": "EnableCodecCapChangedEvent", - "params": [ - { - "default": null, - "description": "A flag indicating whether to enable/disable codec change event notifications.", - "isRequired": true, - "name": "enable", - "type": "Boolean" - } - ], - "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.", - "name": "EnableInternetStatusEvent", - "params": [ - { - "default": null, - "description": "A flag specifying whether to enable/disable network connection status event notifications.", - "isRequired": true, - "name": "enable", - "type": "Boolean" - } - ], - "returnDescription": "A flag indicating whether network connection status event notifications are enabled (true) or disabled (false).", - "returnType": "Boolean" - }, - { - "description": "Notifies the channel when a network 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. To receive events, you 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", - "name": "EnableLinkStatusEvent", - "params": [ - { - "default": null, - "description": "A flag specifying whether to enable/disable network connection status event notifications.", - "isRequired": true, - "name": "enable", - "type": "Boolean" - } - ], - "returnDescription": "A flag indicating whether network connection status event notifications are enabled (true) or disabled (false).", - "returnType": "Boolean" - }, - { - "description": "Notifies the channel when a lowGeneralMemoryLevel event occurs. This function enables the sending of an [roDeviceInfoEvent](https://developer.roku.com/docs/references/brightscript/events/rodeviceinfoevent.md when a low general memory event occurs.", - "name": "EnableLowGeneralMemoryEvent", - "params": [ - { - "default": null, - "isRequired": true, - "name": "enabled", - "type": "Boolean" - } - ], - "returnDescription": "A flag indicating whether lowGeneralMemoryLevel event notifications are enabled (true) or disabled (false).", - "returnType": "Dynamic" - }, - { - "description": "Notifies the channel when a screensaver exit event occurs. This function enables the sending of an [roDeviceInfoEvent](https://developer.roku.com/docs/references/brightscript/events/rodeviceinfoevent.md when a user has exited the screensaver.", - "name": "EnableScreensaverExitedEvent", - "params": [ - { - "default": null, - "description": "A flag specifying whether to enable/disable screensaver exit event notifications.", - "isRequired": true, - "name": "enable", - "type": "Boolean" - } - ], - "returnDescription": "A flag indicating whether screensaver exit event notifications are enabled (true) or disabled (false).", - "returnType": "Dynamic" - }, - { - "description": "Forces a new internet connection check. A new check will only be initiated if the cached internet status is older than 10 seconds.", - "name": "ForceInternetStatusCheck", - "params": [], - "returnDescription": "True indicates only that a new internet check has been initiated; otherwise, false. To get the actual internet connection status, use the [**GetInternetStatus()**](getinternetstatus-as-boolean) method.", - "returnType": "Boolean" - }, - { - "deprecatedDescription": "**This method is deprecated**.\n\nDevelopers must update their channels to use the [GetRIDA()](/docs/references/brightscript/interfaces/ifdeviceinfo.md#getrida-as-string) method to get the unique identifier.\n", - "description": "Returns a unique identifier for the device. This identifier is persistent but can be reset by the user from the device's Settings menu or by performing a factory reset on the device.", - "isDeprecated": true, - "name": "GetAdvertisingId", - "params": [], - "returnDescription": "A Universally Unique Identifier (UUID) as specified in IETF-RFC 4122 with 36 characters (32 alphanumeric characters and four hyphens). The characters are grouped in the form 8-4-4-4-12, for example \"123e4567-e89b-12d3-a456-426655440000\"", - "returnType": "String" - }, - { - "deprecatedDescription": "**This method is deprecated**.\n\nChannel developers should use the [CanDecodeAudio()](#candecodeaudioaudio_format-as-object-as-object) function instead.\n", - "description": "Lists each audio decoder supported by the device, with up to four numbers describing the decoder from the EDID SAD (Short Audio Descriptor). Each value is of the form \"::::\"", - "isDeprecated": true, - "name": "GetAudioDecodeInfo", - "params": [], - "returnDescription": "An associative array with EDID (EIA.2FCEA-861) audio decoder information for the device connected to the HDMI port (or the device itself for a Roku TV).", - "returnType": "Object" - }, - { - "description": "Checks for the type of audio output.", - "name": "GetAudioOutputChannel", - "params": [], - "returnDescription": "The selected audio output, which may be one of the following values:", - "returnType": "String" - }, - { - "description": "Determines whether global captions are turned on or off, or are in instant replay mode.", - "name": "GetCaptionsMode", - "params": [], - "returnDescription": "The current global setting for the Mode property, which may be one of the following values:", - "returnType": "String" - }, - { - "description": "Checks the current value of the specified global setting property.", - "name": "GetCaptionsOption", - "params": [ - { - "default": null, - "description": "The global setting property to be checked, which may be one of the following values: * Mode * Text/Font * Text/Effect * Text/Size * Text/Color * Text/Opacity * Background/Color * Background/Opacity * Window/Color * Window/Opacity * Track * Track\\_Composite * Track\\_Analog * Muted", - "isRequired": true, - "name": "option", - "type": "String" - } - ], - "returnDescription": "The value of the specified global setting property, which may be as follows:", - "returnType": "String" - }, - { - "description": "Returns a unique identifier for the device. The ID is persistent and cannot be reset. This value can be used to manage or identify devices linked to the channel’s content services.", - "name": "GetChannelClientId", - "params": [], - "returnDescription": "A unique device identifier. This identifier is different across channels so each channel will get a different identifier when calling this function", - "returnType": "String" - }, - { - "deprecatedDescription": "**This method is deprecated**.\n\nDevelopers must update their channels to use the [GetChannelClientId](/docs/references/brightscript/interfaces/ifdeviceinfo.md#getchannelclientid-as-string) method to get the unique identifier.\n", - "description": "Returns a unique identifier for the device.", - "isDeprecated": true, - "name": "GetClientTrackingId", - "params": [], - "returnDescription": "A unique device identifier. This identifier is different across channels so each channel will get a different identifier when calling this function", - "returnType": "String" - }, - { - "description": "Checks whether the system settings for Time (**Setting > System > Time**) is set to a 12 or 24-hour format.", - "name": "GetClockFormat", - "params": [], - "returnDescription": "The time format:", - "returnType": "String" - }, - { - "description": "Checks for the information associated with the hardware's connection", - "name": "GetConnectionInfo", - "params": [], - "returnDescription": "An associative array with the following key-value pairs:", - "returnType": "Object" - }, - { - "description": "Checks whether the device has a WiFi or wired connection, or if it is not connected through any type of network.", - "name": "GetConnectionType", - "params": [], - "returnDescription": "The type of internet connection the device is using. This may be one of the following values:", - "returnType": "String" - }, - { - "description": "Checks for the country code of the channel.", - "name": "GetCountryCode", - "params": [], - "returnDescription": "A value that indicates the Roku Channel Store associated with a user’s Roku account. Typically, the value returned will be an ISO 3166-1 (2-letter) country code representing the country. Alternatively, if the channel owner entered into an additional agreement to have the channel published to a curated [Roku Powered Channel Store](https://www.roku.com/roku-powered) instead of the user country, then a Roku Powered Channel Store Identifier will instead be returned. This may be one of the following values:", - "returnType": "String" - }, - { - "description": "Gets the current locale value based on the user's language setting.", - "name": "GetCurrentLocale", - "params": [], - "returnDescription": "A string representing the current locale based on the user's language setting. The string is an ISO 639-1 (2-letter) language code followed by an underscore and a ISO 3166-1 (2-letter) country code. This may be one of the following values:", - "returnType": "String" - }, - { - "deprecatedDescription": "**This method is deprecated**.\n\nDevelopers must update their channels to use the 32-character alphanumeric unique identifier returned by [GetChannelClientId()](/docs/references/brightscript/interfaces/ifdeviceinfo.md#getchannelclientid-as-string).\n", - "description": "Returns a string of 12 zeroes (it no longer returns the unique identifier for the channel on a device).", - "isDeprecated": true, - "name": "GetDeviceUniqueId", - "params": [], - "returnDescription": "A string of 12 zeros (\"000000000000\")", - "returnType": "String" - }, - { - "description": "Checks the aspect ratio for the display screen.", - "name": "GetDisplayAspectRatio", - "params": [], - "returnDescription": "The aspect ratio, which may be one of the following values:", - "returnType": "String" - }, - { - "description": "Checks the UI resolution of the device.", - "name": "GetDisplayMode", - "params": [], - "returnDescription": "The configured graphics layer resolution, which may be one of the following values:", - "returnType": "String" - }, - { - "description": "Checks for the display properties of the screen.", - "name": "GetDisplayProperties", - "params": [], - "returnDescription": "An associative array with the following key/value pairs for the display properties of the screen:", - "returnType": "Object" - }, - { - "description": "Checks the display size of a screen.", - "name": "GetDisplaySize", - "params": [], - "returnDescription": "An associative array with the screen width and height. Specifically, the keys \"w\" and \"h\" contain the values for the screen width and height respectively, either 720 and 480, or 1280 and 720", - "returnType": "Object" - }, - { - "description": "Gets the text corresponding to the button selection in the Player Info Settings/Display Type page.", - "name": "GetDisplayType", - "params": [], - "returnDescription": "The display type, which may be one of the following values:", - "returnType": "String" - }, - { - "deprecatedDescription": "**This method is deprecated**.\n\nDevelopers must update their channels to use the replacement API [GetDrmInfoEx()](/docs/references/brightscript/interfaces/ifdeviceinfo.md#getdrminfoex-as-object) to return the supported DRM system and features.\n", - "description": "Checks for the supported DRM system and its features.", - "isDeprecated": true, - "name": "GetDrmInfo", - "params": [], - "returnDescription": "An associative array with the supported DRM system and features. For example, a device that supports PlayReady inside a trusted environment with secure stop returns:", - "returnType": "Object" - }, - { - "name": "GetDrmInfoEx", - "params": [], - "returnType": "Object" - }, - { - "description": "Checks the IP address assigned to the device by your internet service provider (ISP). This IP address is visible to the internet and all other computers outside your local network.", - "name": "GetExternalIp", - "params": [], - "returnDescription": "The external IP address assigned to the device.", - "returnType": "String" - }, - { - "description": "Returns a string describing the device that may be used for network device selection. The string is subject to change and should not be used as a persistent key or ID", - "name": "GetFriendlyName", - "params": [], - "returnDescription": "A user-assigned device name or a description of the device such as model name and/or serial number.", - "returnType": "String" - }, - { - "description": "Checks the general memory levels of the channel.", - "name": "GetGeneralMemoryLevel", - "params": [], - "returnDescription": "Returns the general memory levels of the channel, which may be one of the following values:", - "returnType": "String" - }, - { - "description": "Checks the graphics platform of the device.", - "name": "GetGraphicsPlatform", - "params": [], - "returnDescription": "The device's graphics platform, which may be one of the following values:", - "returnType": "String" - }, - { - "description": "Checks the internet connection status of the device.", - "name": "GetInternetStatus", - "params": [], - "returnDescription": "True if the cached internet status shows a connection; false, otherwise.", - "returnType": "Boolean" - }, - { - "description": "Checks the local IP address of the device. This can be used in conjunction with the ECP (see the External Control Protocol Guide) \"launch\" command (or the \"install\" command for uninstalled channels) to start a different channel from the current channel.", - "name": "GetIPAddrs", - "params": [], - "returnDescription": "An associative array, where each key is the name of a network interface and the value is the IP-address of the interface. Typically, the associative array only contains a single interface.", - "returnType": "Object" - }, - { - "description": "Checks if the device has an active connection.", - "name": "GetLinkStatus", - "params": [], - "returnDescription": "A flag indicating whether the device has an active connection.", - "returnType": "Boolean" - }, - { - "description": "Returns the model name of the Roku device. See the [Hardware Specification](/docs/specs/hardware.md) for the list of the current, updatable, and legacy Roku models.", - "name": "GetModel", - "params": [], - "returnDescription": "A five-character alphanumeric string (for example, \"3050X\") .", - "returnType": "String" - }, - { - "description": "Returns detailed information about the device model.", - "name": "GetModelDetails", - "params": [], - "returnDescription": "An associative array containing the following information about the device model:", - "returnType": "Object" - }, - { - "description": "Returns the model display name of the Roku device.", - "name": "GetModelDisplayName", - "params": [], - "returnDescription": "The model display name (for example, \"Roku 2 XD\")", - "returnType": "String" - }, - { - "description": "Returns a string describing the type of device. For future compatibility, the caller should by default assume \"STB\" when anything other than described value is returned", - "name": "GetModelType", - "params": [], - "returnDescription": "The device type, which may be one of the following values:", - "returnType": "String" - }, - { - "description": "Returns an roAssociativeArray containing the **major**, **minor**, **revision**, and **build** numbers of the Roku OS running on the device.", - "name": "GetOSVersion", - "params": [], - "returnDescription": "An roAssociativeArray containing the following fields:", - "returnType": "Object" - }, - { - "description": "Checks the three-letter ISO 639-2 language terminology code of the preferred caption language set on the Roku device.", - "name": "GetPreferredCaptionLanguage", - "params": [], - "returnDescription": "The three-letter ISO 639-2 language terminology code, which may be one of the following values:", - "returnType": "String" - }, - { - "description": "Returns a randomly generated unique identifier. Each time this function is called, a different identifier is returned", - "name": "GetRandomUUID", - "params": [], - "returnDescription": "A Universally Unique Identifier (UUID) version 4 as specified in IETF-RFC 4122 with 36 characters (32 alphanumeric characters and four hyphens). The characters are grouped in the form 8-4-4-4-12, for example \"123e4567-e89b-12d3-a456-426655440000\"", - "returnType": "String" - }, - { - "description": "Returns a unique identifier for the device.", - "name": "GetRIDA", - "params": [], - "returnDescription": "A Universally Unique Identifier (UUID). This identifier is persistent, but it can be reset by the user from the device's **Settings** menu or by performing a factory reset on the device", - "returnType": "String" - }, - { - "description": "Checks for the user interface sound effects volume level.", - "name": "GetSoundEffectsVolume", - "params": [], - "returnDescription": "The UI sounds effects volume as a percentage. A return value of 0 indicates that UI sound effects are muted, and a value of 100 indicates that they are set to the maximum volume level", - "returnType": "Integer" - }, - { - "description": "Checks the supported graphics resolutions.", - "name": "GetSupportedGraphicsResolutions", - "params": [], - "returnDescription": "A list of associative arrays. Each associative array contains the following key/value pairs for the graphics resolutions:", - "returnType": "Object" - }, - { - "description": "Checks for the user's current system time zone setting.", - "name": "GetTimeZone", - "params": [], - "returnDescription": "A string representing the user's current system time zone setting. For example, this method may return values such as:", - "returnType": "String" - }, - { - "description": "Checks for the UI resolution of the screen.", - "name": "GetUIResolution", - "params": [], - "returnDescription": "An associative array with the following key-value pairs describing the current UI resolution:", - "returnType": "Object" - }, - { - "description": "Returns the ISO 3166-1 (2-letter) country code associated with the user's Roku account.", - "name": "GetUserCountryCode", - "params": [], - "returnDescription": "An ISO 3166-1 (2-letter) country code.", - "returnType": "String" - }, - { - "deprecatedDescription": "**This method is deprecated**.\n\nDevelopers must update their channels to use [GetOSVersion()](/docs/references/brightscript/interfaces/ifdeviceinfo.md#getosversion-as-object) method to get the current Roku OS version running on a device.\n", - "description": "Returns the version number of the device.", - "isDeprecated": true, - "name": "GetVersion", - "params": [], - "returnDescription": "A 13-character string (for example \"034.08E01185A\"). The third through sixth characters are the major/minor version number (\"4.08\") and the ninth through twelfth are the build number (\"1185\")", - "returnType": "String" - }, - { - "deprecatedDescription": "**This method is deprecated**.\n\nChannel developers should use the [CanDecodeVideo()](#candecodevideovideo_format-as-object-as-object) function instead.\n", - "description": "See [http://en.wikipedia.org/wiki/Extended\\_display\\_identification\\_data#EIA.2FCEA-861\\_extension\\_block](http://en.wikipedia.org/wiki/Extended_display_identification_data#EIA.2FCEA-861_extension_block) for an explanation of the information returned.", - "isDeprecated": true, - "name": "GetVideoDecodeInfo", - "params": [], - "returnDescription": "An associative array with the EDID (EIA.2FCEA-861) information describing the video display", - "returnType": "Object" - }, - { - "description": "Checks the video playback resolution.", - "name": "GetVideoMode", - "params": [], - "returnDescription": "The video playback resolution, which maybe one of the following values:", - "returnType": "String" - }, - { - "description": "Checks if the current device/firmware supports the passed in feature string.", - "name": "HasFeature", - "params": [ - { - "default": null, - "description": "The feature to be checked, which may be one of the following values: * \"5.1\\_surround\\_sound\" * \"can\\_output\\_5.1\\_surround\\_sound\" * \"sd\\_only\\_hardware\" * \"usb\\_hardware\" * \"sdcard\\_hardware\" * \"ethernet\\_hardware\" * \"gaming\\_hardware\" * \"energy\\_star\\_compliant\" * \"soundbar\\_hardware\"", - "isRequired": true, - "name": "feature", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the current device/firmware supports the passed in feature string.", - "returnType": "Boolean" - }, - { - "deprecatedDescription": "**This method is deprecated**.\n\nDevelopers must update their channels to use [IsRIDADisabled()](/docs/references/brightscript/interfaces/ifdeviceinfo.md#isridadisabled-as-boolean) to get the Ad Id tracking status.\n", - "description": "If Ad Id tracking is disabled, the identifier returned by GetAdvertisingId() should not be used for Ad targeting", - "isDeprecated": true, - "name": "IsAdIdTrackingDisabled", - "params": [], - "returnDescription": "Returns true if the user has disabled Ad Id tracking by selecting \"Limit ad tracking\" from the Roku Settings menu, false otherwise.", - "returnType": "Boolean" - }, - { - "description": "Checks if the audio guide is enabled.", - "name": "IsAudioGuideEnabled", - "params": [], - "returnDescription": "A flag indicating whether the audio guide is enabled.", - "returnType": "Dynamic" - }, - { - "deprecatedDescription": "**This method is deprecated**.\n\nChannel developers must use the [ifHdmiStatus](/docs/references/brightscript/interfaces/ifhdmistatus.md) interface functions instead.\n", - "description": "Checks for an HDMI connection.", - "isDeprecated": true, - "name": "IsHDMIConnected", - "params": [], - "returnDescription": "A flag indicating whether an HDMI connection to a TV has been detected.", - "returnType": "Boolean" - }, - { - "description": "Indicates whether tracking via Roku's ID for Advertisers (RIDA) is disabled on the device.", - "name": "IsRIDADisabled", - "params": [], - "returnDescription": "A flag indicating whether RIDA tracking is disabled on the device (RIDA tracking can be disabled by selecting \"Limit ad tracking\" from the **Settings>Privacy>Advertising** menu). If RIDA tracking is disabled, this returns true; false otherwise.", - "returnType": "Boolean" - }, - { - "description": "Checks whether the device is in demo mode.", - "name": "IsStoreDemoMode", - "params": [], - "returnDescription": "A flag indicating whether the device is in demo mode.", - "returnType": "Boolean" - }, - { - "description": "Sets the current global setting for the Mode property.", - "name": "SetCaptionsMode", + "description": "Returns the named manifest value, or an empty string if the entry is does not exist.", + "name": "GetValue", "params": [ { "default": null, - "description": "The current global setting for the Mode property, which may be one of the following values: * On * Off * Instant replay * When mute (Roku TVs only)", + "description": "The manifest value to be returned.", "isRequired": true, - "name": "mode", + "name": "key", "type": "String" } ], - "returnDescription": "A flag indicating whether the Mode property was successfully set.", - "returnType": "Boolean" + "returnDescription": "Manifest value; empty string", + "returnType": "String" }, { - "description": "Checks for the number of seconds passed since the last remote keypress.", - "name": "TimeSinceLastKeypress", - "params": [], - "returnDescription": "The number of seconds since the last remote keypress was received.", - "returnType": "Integer" - } - ], - "name": "ifDeviceInfo", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifdeviceinfo.md" - }, - "ifdouble": { - "description": "> Interface equivalent for intrinsic type Double", - "implementers": [ - { - "description": "roDouble is a legacy object name, corresponding to the intrinsic Double object", - "name": "roDouble", - "url": "https://developer.roku.com/docs/references/brightscript/components/rodouble.md" - } - ], - "methods": [ - { - "description": "Gets the double value stored in the calling Double object.", - "name": "GetDouble", + "description": "Returns the conglomerate version number from the manifest, as formatted major\\_version + minor\\_version + build\\_version.", + "name": "GetVersion", "params": [], - "returnDescription": "The double value stored in the calling Double object.", - "returnType": "Double" + "returnDescription": "Channel version number. e.g. \"1.2.3\"", + "returnType": "String" }, { - "description": "Sets the calling Double object to the specified double value.", - "name": "SetDouble", - "params": [ - { - "default": null, - "description": "The double value to be set on the calling Double object.", - "isRequired": true, - "name": "value", - "type": "Double" - } - ], - "returnType": "Void" + "description": "Returns true if the application is sideloaded, i.e. the channel ID is \"dev\".", + "name": "IsDev", + "params": [], + "returnDescription": "True/ False", + "returnType": "Boolean" } ], - "name": "ifDouble", + "name": "ifAppInfo", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifdouble.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifappinfo.md" }, - "ifdraw2d": { - "description": "Coordinates (x,y) for this interface are based on an origin (0,0) at the top, left. (This is common for 2D drawing APIs, but is different than OpenGL's default coordinate system).\n\nBitmap pixel values and color values are always represented as 32-bit integer RGBA color values. That is, red is in the most significant byte and alpha is in the least significant byte.", + "ifappmanager": { "implementers": [ { - "description": "The roBitmap component contains image data and provides an interface (ifDraw2D) for drawing", - "name": "roBitmap", - "url": "https://developer.roku.com/docs/references/brightscript/components/robitmap.md" - }, - { - "description": "The roRegion component is used to represent a subsection of a bitmap", - "name": "roRegion", - "url": "https://developer.roku.com/docs/references/brightscript/components/roregion.md" - }, - { - "description": "The roScreen component provides a full screen drawing surface that can be stacked and that you can receive input events from", - "name": "roScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/roscreen.md" + "description": "Returns information about the application", + "name": "roAppManager", + "url": "https://developer.roku.com/docs/references/brightscript/components/roappmanager.md" } ], "methods": [ { - "description": "Clears the bitmap, and fills it with the specified RGBA color.", - "name": "Clear", - "params": [ - { - "default": null, - "description": "The RGBA color to be used to fill the bitmap.", - "isRequired": true, - "name": "rgba", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Draws a line from (xStart, yStart) to (xEnd, yEnd) with RGBA color.", - "name": "DrawLine", - "params": [ - { - "default": null, - "description": "The x-coordinate of the line's start point.", - "isRequired": true, - "name": "xStart", - "type": "Integer" - }, - { - "default": null, - "description": "The y-coordinate of the line's start point.", - "isRequired": true, - "name": "yStart", - "type": "Integer" - }, - { - "default": null, - "description": "The x-coordinate of the line's end point.", - "isRequired": true, - "name": "xEnd", - "type": "Integer" - }, - { - "default": null, - "description": "The y-coordinate of the line's end point.", - "isRequired": true, - "name": "yEnd", - "type": "Integer" - }, - { - "default": null, - "description": "The RGBA color of the line.", - "isRequired": true, - "name": "rgba", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Draws the source object, where src is an [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object, at position x,y.", - "name": "DrawObject", - "params": [ - { - "default": null, - "description": "The x-coordinate of the source object.", - "isRequired": true, - "name": "x", - "type": "Integer" - }, - { - "default": null, - "description": "The y-coordinate of the source object.", - "isRequired": true, - "name": "y", - "type": "Integer" - }, - { - "default": null, - "description": "The [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object to be drawn.", - "isRequired": true, - "name": "src", - "type": "Object" - } - ], - "returnDescription": "A flag indicating whether the object was successfully drawn.", - "returnType": "Boolean" - }, - { - "description": "Draws a point at (x,y) with the given size and RGBA color.", - "name": "DrawPoint", - "params": [ - { - "default": null, - "description": "The x-coordinate of the point.", - "isRequired": true, - "name": "x", - "type": "Integer" - }, - { - "default": null, - "description": "The y-coordinate of the point.", - "isRequired": true, - "name": "y", - "type": "Integer" - }, - { - "default": null, - "description": "The size of the point.", - "isRequired": true, - "name": "size", - "type": "Float" - }, - { - "default": null, - "description": "The RGBA color of the point.", - "isRequired": true, - "name": "rgba", - "type": "Integer" - } - ], - "returnType": "Void" + "description": "Returns the user's screensaver wait time setting in number of minutes, or zero if the screensaver is disabled.", + "name": "GetScreensaverTimeout", + "params": [], + "returnDescription": "The number of minutes set for the screensaver wait time.", + "returnType": "Integer" }, { - "description": "Fills the specified rectangle from left (x), top (y) to right (x + width), bottom (y + height) with the RGBA color.", - "name": "DrawRect", - "params": [ - { - "default": null, - "description": "The x-coordinate of the rectangle.", - "isRequired": true, - "name": "x", - "type": "Integer" - }, - { - "default": null, - "description": "The y-coordinate of the rectangle.", - "isRequired": true, - "name": "y", - "type": "Integer" - }, - { - "default": null, - "description": "The width of the rectangle.", - "isRequired": true, - "name": "width", - "type": "Integer" - }, - { - "default": null, - "description": "The height of the rectangle.", - "isRequired": true, - "name": "height", - "type": "Integer" - }, - { - "default": null, - "description": "The RGBA color to be used to fill the rectangle.", - "isRequired": true, - "name": "rgba", - "type": "Integer" - } - ], - "returnType": "Void" + "description": "Returns an [roTimespan](https://developer.roku.com/docs/references/brightscript/components/rotimespan.md\"roTimespan\") object, which is \"marked\" when the user clicked on the application button on the home screen.Calling the TotalMilliseconds() method on the returned roTimespan object returns the total number of milliseconds since the application started.", + "name": "GetUptime", + "params": [], + "returnDescription": "An [roTimespan](/docs/references/brightscript/components/rotimespan.md \"roTimespan\") object.", + "returnType": "Object" }, { - "description": "Draws the source object, where src is an [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object, at position x,y rotated by angle theta degrees.", - "name": "DrawRotatedObject", + "description": "This method returns true if a channel with the specified channelID and the minimum version required is installed.", + "name": "IsAppInstalled", "params": [ { "default": null, - "description": "The x-coordinate of the source object.", - "isRequired": true, - "name": "x", - "type": "Integer" - }, - { - "default": null, - "description": "The y-coordinate of the source object.", - "isRequired": true, - "name": "y", - "type": "Integer" - }, - { - "default": null, - "description": "The position which to rotate the source object. This may be 0, 90, 180, and 270 degrees.", + "description": "The unique id of the channel.", "isRequired": true, - "name": "theta", - "type": "Float" + "name": "channelID", + "type": "String" }, { "default": null, - "description": "The [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object to be drawn.", + "description": "The minimum version number of the channel to be used for the query.", "isRequired": true, - "name": "src", - "type": "Object" + "name": "version", + "type": "String" } ], - "returnDescription": "A flag indicating whether the object was successfully drawn.", + "returnDescription": "A boolean indicating whether the specified channel is installed.", "returnType": "Boolean" }, { - "description": "Draws the source object, where src is an [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object, at position x,y, scaled in the x direction by scaleX and in the y direction by scaleY. scaleX and scaleY should each be greater than zero and less than one to reduce the object size, or greater than one to increase the object size", - "name": "DrawScaledObject", + "description": "Enables or disables the automatic screen reader and override any manifest setting.This is useful for channels that want to temporarily turn off the automatic screen reader for specific screens.", + "name": "SetAutomaticAudioGuideEnabled", "params": [ { "default": null, - "description": "The x-coordinate of the source object.", - "isRequired": true, - "name": "x", - "type": "Integer" - }, - { - "default": null, - "description": "The y-coordinate of the source object.", - "isRequired": true, - "name": "y", - "type": "Integer" - }, - { - "default": null, - "description": "The x direction in which the source object is to be scaled.", - "isRequired": true, - "name": "scaleX", - "type": "Float" - }, - { - "default": null, - "description": "The y direction in which the source object is to be scaled.", - "isRequired": true, - "name": "scaleY", - "type": "Float" - }, - { - "default": null, - "description": "The [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object to be drawn.", + "description": "A flag indicating whether to enable or disable the automatic screen reader.", "isRequired": true, - "name": "src", - "type": "Object" + "name": "enabled", + "type": "Boolean" } ], - "returnDescription": "A flag indicating whether the object was successfully drawn.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Draws the source object, where src is an [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object, at position x,y, scaled in the x direction by scaleX and in the y direction by scaleY. scaleX and scaleY should each be greater than zero and less than one to reduce the object size, or greater than one to increase the object size.", - "name": "DrawScaledObject", + "description": "Updates video or audio [content metadata](/docs/developer-program/getting-started/architecture/content-metadata.md) during playback. This method takes a subset of content metadata parameters to be updated. These values override any previously ones sent to the Roku Media Player, and they are used until this function is called again or until the [**roAppManager**](https://developer.roku.com/docs/references/brightscript/components/roappmanager.md instance is deleted.", + "name": "SetNowPlayingContentMetaData", "params": [ { "default": null, - "description": "The x-coordinate of the source object.", - "isRequired": true, - "name": "x", - "type": "Integer" - }, - { - "default": null, - "description": "The y-coordinate of the source object.", - "isRequired": true, - "name": "y", - "type": "Integer" - }, - { - "default": null, - "description": "The x direction in which the source object is to be scaled.", + "description": "The video or audio [content metadata](/docs/developer-program/getting-started/architecture/content-metadata.md) parameters to be updated (for example, the title and contentType)", "isRequired": true, - "name": "scaleX", - "type": "Float" - }, + "name": "contentMetaData", + "type": "roAssociativeArray" + } + ], + "returnType": "Void" + }, + { + "description": "This method allows a channel to tell Roku when the user is signed in or signed out of the channelIf the channel is removed, the Roku OS will call SetUserSignedIn(false) on the channel's behalf.", + "name": "SetUserSignedIn", + "params": [ { "default": null, - "description": "The y direction in which the source object is to be scaled.", + "description": "Set to true to indicate that the user is signed in; set to false to indicate the user is signed out.", "isRequired": true, - "name": "scaleY", - "type": "Float" - }, + "name": "signedIn", + "type": "Boolean" + } + ], + "returnType": "Void" + }, + { + "description": "Specifies a list of text strings, such as user profile names, that can be matched to voice requests.", + "name": "SetVoiceActionStrings", + "params": [ { "default": null, - "description": "The [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object to be drawn.", + "description": "The list of text strings to be regsitered. Once a text string is registered, it can be matched to voice requests received by the channel. Each text string is defined with the following attributes: * a **text** key for storing the name or word to be matched. * an optional **link** key for storing a deep link.", "isRequired": true, - "name": "src", + "name": "actions", "type": "Object" - }, - { - "default": null, - "description": "The RGBA color of the source object.", - "isRequired": true, - "name": "rgba", - "type": "Integer" } ], - "returnDescription": "A flag indicating whether the object was successfully drawn.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Draws the text at position (x,y) using the specified RGBA color and [roFont](https://developer.roku.com/docs/references/brightscript/components/rofont.md\"roFont\") font object. Text is drawn anti-aliased. The background image/color behind the text will show through the spaces and holes in the text. To have the text erase the background, make a call to [DrawRect()](#drawrectx-as-integer-y-as-integer-width-as-integer-height-as-integer-rgba-as-integer-as-void) before calling DrawText(). The size, bold, and italic attributes are specified when creating the [roFont](https://developer.roku.com/docs/references/brightscript/components/rofont.md\"roFont\").", - "name": "DrawText", + "description": "Launches the channel store springboard of the specified channel. The channel store springboard contains detailed information about the channel, including ratings, version, date of last update, developer name, and a description.", + "name": "ShowChannelStoreSpringboard", "params": [ { "default": null, - "description": "The text to be drawn.", + "description": "The unique ID of the channel to be launched.", "isRequired": true, - "name": "text", + "name": "channelID", "type": "String" - }, - { - "default": null, - "description": "The x-coordinate of the source object.", - "isRequired": true, - "name": "x", - "type": "Integer" - }, - { - "default": null, - "description": "The y-coordinate of the source object.", - "isRequired": true, - "name": "y", - "type": "Integer" - }, - { - "default": null, - "description": "The color of the text.", - "isRequired": true, - "name": "rgba", - "type": "Integer" - }, + } + ], + "returnType": "Void" + }, + { + "description": "Triggers a voice request for the viewer to select a user profile if the device is paired with a hands-free Roku Voice remote control. This function should be called by channels that support voice commands and display a user profile selection screen upon launch, which is when this method should be called.", + "name": "StartVoiceActionSelectionRequest", + "params": [], + "returnType": "Void" + } + ], + "name": "ifAppManager", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifappmanager.md" + }, + "ifappmemorymonitor": { + "implementers": [ + { + "description": "Subscribes channels to low-memory notifications. When a channel is subscribed, it receives a [roAppMemoryMonitorEvent](https://developer.roku.com/docs/references/brightscript/events/roappmemorymonitorevent.md when it reaches a specific percentage of the per-channel memory limit (80%).", + "name": "roAppMemoryMonitor", + "url": "https://developer.roku.com/docs/references/brightscript/components/roappmemorymonitor.md" + } + ], + "methods": [ + { + "description": "Enables a channel to be alerted when it has reached 80% of its memory usage limit.", + "name": "EnableMemoryWarningEvent", + "params": [ { "default": null, - "description": "The [roFont](https://developer.roku.com/docs/references/brightscript/components/rofont.md\"roFont\") object to be used for the text.", + "description": "A flag that enables or disables memory alerts on the channel.", "isRequired": true, - "name": "font", - "type": "Object" + "name": "enable", + "type": "Boolean" } ], - "returnDescription": "A flag indicating whether the object was successfully drawn.", + "returnDescription": "A flag indicating whether memory alerts have been enabled.", "returnType": "Boolean" }, { - "description": "Realizes the bitmap by finishing all queued draw calls. Until Finish() is called, prior graphics operations may not be user visible. For example, they may be in the graphics display pipeline, or in a server queue.", - "name": "Finish", + "description": "Returns the memory limit for the channel.", + "name": "GetMemoryLimitPercent", "params": [], - "returnType": "Void" + "returnDescription": "The memory limit for the channel.", + "returnType": "Int" + } + ], + "name": "ifAppMemoryMonitor", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifappmemorymonitor.md" + }, + "ifarray": { + "implementers": [ + { + "description": "An array stores an indexed collection of BrightScript objects. Each entry of an array can be a different type, or they may all of the same type", + "name": "roArray", + "url": "https://developer.roku.com/docs/references/brightscript/components/roarray.md" }, { - "description": "Checks if the alpha blending is enabled.", - "name": "GetAlphaEnable", - "params": [], - "returnDescription": "A flag indicating whether alpha blending is enabled.", - "returnType": "Boolean" + "description": "The byte array component is used to contain and manipulate an arbitrary array of bytes", + "name": "roByteArray", + "url": "https://developer.roku.com/docs/references/brightscript/components/robytearray.md" }, { - "description": "Gets the RGBA pixel values for the specified rectangle.", - "name": "GetByteArray", + "description": "The list object implements the interfaces: ifList, ifArray, ifEnum and therefore can behave like an array that can dynamically add members", + "name": "roList", + "url": "https://developer.roku.com/docs/references/brightscript/components/rolist.md" + }, + { + "description": "Contains a list of roXML objects", + "name": "roXMLList", + "url": "https://developer.roku.com/docs/references/brightscript/components/roxmllist.md" + } + ], + "methods": [ + { + "description": "Appends the entries in one **roArray** to another. If the passed array contains entries that have not been set to a value, they are not appended.", + "name": "Append", "params": [ { "default": null, - "description": "The x-coordinate of the rectangle.", - "isRequired": true, - "name": "x", - "type": "Integer" - }, - { - "default": null, - "description": "The y-coordinate of the rectangle.", - "isRequired": true, - "name": "y", - "type": "Integer" - }, - { - "default": null, - "description": "The width of the rectangle.", + "description": "The **roArray** to be appended to the target array.", "isRequired": true, - "name": "width", - "type": "Integer" - }, + "name": "array", + "type": "Object" + } + ], + "returnType": "Void" + }, + { + "description": "Deletes all the entries in the array.", + "name": "Clear", + "params": [], + "returnType": "Void" + }, + { + "description": "Returns the length of the array, which is one more than the index of highest entry.", + "name": "Count", + "params": [], + "returnDescription": "The length of the array.", + "returnType": "Integer" + }, + { + "description": "Deletes the indicated array entry, and shifts all entries up. This decreases the array length by one.", + "name": "Delete", + "params": [ { "default": null, - "description": "The height of the rectangle.", "isRequired": true, - "name": "height", + "name": "index", "type": "Integer" } ], - "returnDescription": "An roByteArray representing the RGBA pixel values for the specified rectangle.", - "returnType": "Object" + "returnDescription": "A flag indicating whether the specified array entry has been removed. If the entry was successfully deleted, returns true. If index is out of range, returns false and does not change the array.", + "returnType": "Boolean" }, { - "description": "Gets the height of the bitmap in pixels.", - "name": "GetHeight", + "description": "Returns the last (highest index) array entry without removing it. If the array is empty, returns invalid", + "name": "Peek", "params": [], - "returnDescription": "The height of the bitmap in pixels.", - "returnType": "Integer" + "returnDescription": "Invalid", + "returnType": "Dynamic" }, { - "description": "Gets PNG image data for the specified area of the bitmap. The PNG is in 32-bit RGBA format.", - "name": "GetPng", + "description": "Returns the last entry (highest index) from the array and removes it from the array. If the array is empty, returns invalid and does not change the array.", + "name": "Pop", + "params": [], + "returnDescription": "The last (highest index) array entry.", + "returnType": "Dynamic" + }, + { + "description": "Adds the specified value to the end of the array.", + "name": "Push", "params": [ { "default": null, - "description": "The x-coordinate of the rectangle.", - "isRequired": true, - "name": "x", - "type": "Integer" - }, - { - "default": null, - "description": "The width of the rectangle.", - "isRequired": true, - "name": "width", - "type": "Integer" - }, - { - "default": null, - "description": "The y-coordinate of the rectangle.", - "isRequired": true, - "name": "y", - "type": "Integer" - }, - { - "default": null, - "description": "The height of the rectangle.", + "description": "The value to be added to the end of the array.", "isRequired": true, - "name": "height", - "type": "Integer" + "name": "tvalue", + "type": "Dynamic" } ], - "returnDescription": "An roByteArray object containing PNG image data for the specified area of the bitmap. If the coordinates are out of bounds, or the PNG conversion fails for any reason, then invalid is returned", - "returnType": "Object" + "returnType": "Void" }, { - "description": "Gets the width of the bitmap.", - "name": "GetWidth", + "description": "Removes the first entry (zero index) from the beginning of the array and shifts the other entries up. This method is similar to the [Pop method](#pushtvalue-as-dynamic-as-void), but inserts a new first entry in the array instead of adding a last one.", + "name": "Shift", "params": [], - "returnDescription": "The width of the bitmap in pixels.", - "returnType": "Integer" + "returnDescription": "The first entry (zero index) removed from the array.", + "returnType": "Dynamic" }, { - "description": "Enables alpha blending when the source bitmap is the destination. The setting of the source bitmap's alpha enable is ignored.", - "name": "SetAlphaEnable", + "description": "Adds the specified value to the beginning of the array (at the zero index) and shifts the other entries down. This method is similar to the [Push method](#push-as-dynamic), but inserts a new first entry in the array instead of adding a last one.", + "name": "Unshift", "params": [ { "default": null, - "description": "A flag specifying whether alpha blending is enabled.", + "description": "The value to be added to the beginning of the array.", "isRequired": true, - "name": "enable", - "type": "Boolean" + "name": "tvalue", + "type": "Dynamic" } ], "returnType": "Void" } ], - "name": "ifDraw2D", + "name": "ifArray", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifdraw2d.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifarray.md" }, - "ifenum": { + "ifarrayget": { + "description": "The ifArrayGet interface supports the array indexing operator \\[ \\]\n\n(See [Array Operator](https://developer.roku.com/docs/references/brightscript/language/expressions-variables-types.mdeffects-of-type-conversions-on-accuracy \"Array Operator\"))", "implementers": [ { - "description": "An array stores an indexed collection of BrightScript objects", + "description": "An array stores an indexed collection of BrightScript objects. Each entry of an array can be a different type, or they may all of the same type", "name": "roArray", "url": "https://developer.roku.com/docs/references/brightscript/components/roarray.md" }, - { - "description": "An associative array (also known as a map, dictionary or hash table) allows objects to be associated with string keys", - "name": "roAssociativeArray", - "url": "https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md" - }, { "description": "The byte array component is used to contain and manipulate an arbitrary array of bytes", "name": "roByteArray", @@ -11420,11 +7878,6 @@ "name": "roList", "url": "https://developer.roku.com/docs/references/brightscript/components/rolist.md" }, - { - "description": "A Message Port is the place messages (events) are sent", - "name": "roMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/components/romessageport.md" - }, { "description": "Contains a list of roXML objects", "name": "roXMLList", @@ -11433,5207 +7886,5413 @@ ], "methods": [ { - "description": "Checks whether the enumeration contains no elements.", - "name": "IsEmpty", - "params": [], - "returnDescription": "A flag indicating whether the enumeration contains no elements (true), or contains elements (false).", - "returnType": "Boolean" - }, - { - "description": "Checks whether the current position is not past the end of the enumeration.", - "name": "IsNext", - "params": [], - "returnDescription": "A flag indicating whether the current position is not past the end (true), or is past the end (false).", - "returnType": "Boolean" - }, - { - "description": "Increments the position of an enumeration. If the last element of the enumeration is returned, this method sets the current position to indicate that it is now past the end.", - "name": "Next", - "params": [], - "returnDescription": "The value at the current position of the enumeration. If the current position is already past the end (that is, the last element has already been returned by a previous call to this method), \"invalid\" is returned.", + "description": "Returns an array entry based on the provided index.", + "name": "GetEntry", + "params": [ + { + "default": null, + "description": "The index of the array entry to be returned.", + "isRequired": true, + "name": "index", + "type": "Integer" + } + ], + "returnDescription": "The array entry corresponding to the provided index, or invalid if the entry has not been set.", "returnType": "Dynamic" - }, - { - "description": "Resets the current position to the first element of the enumeration.", - "name": "Reset", - "params": [], - "returnType": "Void" } ], - "name": "ifEnum", + "name": "ifArrayGet", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifenum.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifarrayget.md" }, - "ifevpcipher": { + "ifarrayjoin": { "implementers": [ { - "description": "The EVP Cipher component provides an interface to the OpenSSL EVP library of symmetric cipher commands", - "name": "roEVPCipher", - "url": "https://developer.roku.com/docs/references/brightscript/components/roevpdigest.md" + "description": "Returns information about the application", + "name": "roArray", + "url": "https://developer.roku.com/docs/references/brightscript/components/roarray.md" } ], "methods": [ { - "description": "Signals that all data has been submitted by previous calls to Update().", - "name": "Final", - "params": [], - "returnDescription": "The last remaining encrypted or decrypted bytes.", - "returnType": "Object" - }, - { - "description": "Processes the included [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md containing encrypted/decrypted data.", - "name": "Process", + "description": "Creates a string by joining all array elements together separated by the specified separator. All elements must be of type string; otherwise, an empty string is returned", + "name": "Join", "params": [ { "default": null, - "description": "An [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md containing data that is encrypted or decrypted.", + "description": "The string used to separate elements in an array.", "isRequired": true, - "name": "bytes", - "type": "Object" + "name": "separator", + "type": "String" } ], - "returnDescription": "An [roByteArray](/docs/references/brightscript/components/robytearray.md \"roByteArray\") containing the result.", - "returnType": "Object" + "returnDescription": "A String containing the array elements.", + "returnType": "String" + } + ], + "name": "ifArrayJoin", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifarrayjoin.md" + }, + "ifarrayset": { + "description": "The ifArraySet interface supports the array indexing operator \\[\\].\n\n(See ArrayOperator)", + "implementers": [ + { + "description": "An array stores an indexed collection of BrightScript objects. Each entry of an array can be a different type, or they may all of the same type", + "name": "roArray", + "url": "https://developer.roku.com/docs/references/brightscript/components/roarray.md" }, { - "description": "Reinitializes an existing cipher context. This can be called to reuse an existing [roEVPCipher](https://developer.roku.com/docs/references/brightscript/components/roevpdigest.md\"roEVPCipher\") object to encrypt new data", - "name": "Reinit", - "params": [], - "returnDescription": "Returns 0 on success or non-zero on failure.", - "returnType": "Integer" + "description": "The byte array component is used to contain and manipulate an arbitrary array of bytes", + "name": "roByteArray", + "url": "https://developer.roku.com/docs/references/brightscript/components/robytearray.md" }, { - "description": "Configures and initializes a new cipher context.", - "name": "Setup", + "description": "The list object implements the interfaces: ifList, ifArray, ifEnum and therefore can behave like an array that can dynamically add members", + "name": "roList", + "url": "https://developer.roku.com/docs/references/brightscript/components/rolist.md" + }, + { + "description": "Contains a list of roXML objects", + "name": "roXMLList", + "url": "https://developer.roku.com/docs/references/brightscript/components/roxmllist.md" + } + ], + "methods": [ + { + "description": "Sets an entry at a given index to the passed value. If index is beyond the bounds of the array, the array is expanded to accommodate it.", + "name": "SetEntry", "params": [ { "default": null, - "description": "True for encryption; false for decryption", - "isRequired": true, - "name": "encrypt", - "type": "Boolean" - }, - { - "default": null, - "description": "Cipher format string, from openssl, listed at roEVPCipher", - "isRequired": true, - "name": "format", - "type": "String" - }, - { - "default": null, - "description": "A hex-encoded key", - "isRequired": true, - "name": "key", - "type": "String" - }, - { - "default": null, - "description": "A hex-encoded initialization vector, which can be an empty string", - "isRequired": true, - "name": "iv", - "type": "String" - }, - { - "default": null, - "description": "1 to use standard padding; 0 for no padding)", + "description": "The entry to be updated.", "isRequired": true, - "name": "padding", + "name": "index", "type": "Integer" - } - ], - "returnDescription": "Returns 0 on success or non-zero on failure.", - "returnType": "Integer" - }, - { - "description": "Updates the included [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md containing encrypted/decrypted data.", - "name": "Update", - "params": [ + }, { "default": null, - "description": "An [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md containing data that is encrypted or decrypted.", + "description": "The new value for the specified entry.", "isRequired": true, - "name": "bytes", - "type": "Object" + "name": "tvalue", + "type": "Dynamic" } ], - "returnDescription": "An [roByteArray](/docs/references/brightscript/components/robytearray.md \"roByteArray\") containing a subset of the result. Some or all of the result may not be returned until the next call to Update().", - "returnType": "Object" + "returnType": "Void" } ], - "name": "ifEVPCipher", + "name": "ifArraySet", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifevpcipher.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifarrayset.md" }, - "ifevpdigest": { + "ifarraysort": { "implementers": [ { - "description": "The EVP Digest component provides an interface to the OpenSSL EVP library of message digest algorithms", - "name": "roEVPDigest", - "url": "https://developer.roku.com/docs/references/brightscript/components/roevpdigest.md" + "description": "Returns information about the application", + "name": "roArray", + "url": "https://developer.roku.com/docs/references/brightscript/components/roarray.md" } ], "methods": [ { - "description": "Returns the digest of data passed in by previous calls to [Update()](#updatebytes-as-object-as-void) as a hex string.", - "name": "Final", + "description": "Reverses the order of elements in an array.", + "name": "Reverse", "params": [], - "returnDescription": "Hex string (digest of data)", - "returnType": "String" + "returnType": "Void" }, { - "description": "Digests the provided data.", - "name": "Process", + "description": "Performs a stable sort on an array.", + "name": "Sort", "params": [ { "default": null, - "description": "An [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md containing digested data", + "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": "bytes", - "type": "Object" + "name": "flags", + "type": "String" } ], - "returnDescription": "A Hex string (Digested array data).", - "returnType": "String" - }, - { - "description": "Re-initializes an existing message digest context. This can be called to reuse an existing [roEVPDigest](https://developer.roku.com/docs/references/brightscript/components/roevpdigest.md\"roEVPDigest\") object to digest new data.", - "name": "Reinit", - "params": [], - "returnDescription": "Returns 0 on success or non-zero on failure.", - "returnType": "Integer" + "returnType": "Void" }, { - "description": "Initializes a new message digest context.", - "name": "Setup", + "description": "Performs a stable sort of an array of associative arrays by value of a common field.", + "name": "SortBy", "params": [ { "default": null, - "description": "The supported digest algorithm from openssl, listed at roEVPDigest.", + "description": "The field to be used for sorting.", "isRequired": true, - "name": "digestType", + "name": "fieldName", "type": "String" - } - ], - "returnDescription": "Returns 0 on success or non-zero on failure.", - "returnType": "Integer" - }, - { - "description": "Adds more data to be digested.", - "name": "Update", - "params": [ + }, { "default": null, - "description": "An [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md containing data to be added to the current digest", + "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": "bytes", - "type": "Object" + "name": "flags", + "type": "String" } ], "returnType": "Void" } ], - "name": "ifEVPDigest", + "name": "ifArraySort", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifevpdigest.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifarraysort.md" }, - "iffilesystem": { + "ifassociativearray": { "implementers": [ { - "description": "The roFilesystem component implements common filesystem inspection and modification routines", - "name": "roFile System", - "url": "https://developer.roku.com/docs/developer-program/getting-started/architecture/file-system.md" + "description": "An associative array allows objects to be associated with string keys", + "name": "roAssociativeArray", + "url": "https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md" + }, + { + "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", + "name": "roSGNode", + "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" } ], "methods": [ { - "description": "Copies the files from one directory to another.", - "name": "CopyFile", + "description": "Adds a new entry to the array associating the supplied value with the supplied key string. Only one value may be associated with a key. If the key is already associated with a value, the existing value is discarded.", + "name": "AddReplace", "params": [ { "default": null, - "description": "The source path containing the files to be copied.", + "description": "The key to be added to the associative array.", "isRequired": true, - "name": "fromPath", + "name": "key", "type": "String" }, { "default": null, - "description": "The target path to which files are to be copied.", + "description": "The value of the key to be added to the associative array.", "isRequired": true, - "name": "toPath", - "type": "String" + "name": "value", + "type": "Dynamic" } ], - "returnDescription": "A flag indicating whether the files were successfully copied.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Creates the directory specified by the path parameter. All directories in path except the last one must already exist; that is, only one directory can be created.", - "name": "CreateDirectory", + "description": "Appends an associative array to this calling object. If any key in the **aa** parameter is already associated with a value in the calling object, the current value is discarded and is replaced with the value provided in the **aa** parameter.", + "name": "Append", "params": [ { "default": null, - "description": "The path of the directory to be created.", + "description": "The associative array to be appended to the calling object.", "isRequired": true, - "name": "path", - "type": "String" + "name": "aa", + "type": "Object" } ], - "returnDescription": "A flag indicating whether the path was successfully created.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Permanently removes the file or directory specified by the path parameter. If path is a directory, its contents are recursively removed.", + "description": "Remove all key/values from the associative array.", + "name": "Clear", + "params": [], + "returnType": "Void" + }, + { + "description": "Returns the number of keys in the associative array.", + "name": "Count", + "params": [], + "returnDescription": "The number of keys in the associative array.", + "returnType": "Integer" + }, + { + "description": "Deletes an entry from an associative array based on the key.", "name": "Delete", "params": [ { "default": null, - "description": "The path of the directory to be deleted.", + "description": "The key associated with the entry to be deleted.", "isRequired": true, - "name": "path", + "name": "key", "type": "String" } ], - "returnDescription": "A flag indicating whether the path was successfully deleted.", + "returnDescription": "A flag indicating whether an entry is associated with the specified key exists. If there is no associated object then false is returned. If there is such an object then true is returned.", "returnType": "Boolean" }, { - "description": "Checks if the specified directory path exists on the device.", - "name": "Exists", + "description": "Looks for an entry in the associative array associated with the specified key.", + "name": "DoesExist", "params": [ { "default": null, - "description": "The directory path to be checked.", + "description": "The key associated with the entry to be checked.", "isRequired": true, - "name": "path", + "name": "key", "type": "String" } ], - "returnDescription": "A flag indicating whether the specified path directory exists on the device.", + "returnDescription": "A flag indicating whether an entry is associated with the specified key exists. If there is no associated object then false is returned. If there is such an object then true is returned.", "returnType": "Boolean" }, { - "description": "Returns the file names in the specified directory path matching the provided regex.", - "name": "Find", + "description": "Returns an array containing the associative array key/value pairs in lexicographical order of key.", + "name": "Items", + "params": [], + "returnDescription": "An array of associative array keys/value pairs.", + "returnType": "Object" + }, + { + "description": "Returns an array containing the associative array keys in lexicographical order.", + "name": "Keys", + "params": [], + "returnDescription": "An array of associative array keys.", + "returnType": "Object" + }, + { + "description": "Returns the value in the array associated with the specified key. The key comparison is case-insensitive, unless the **SetModeCaseSensitive()** method has been called.", + "name": "Lookup", "params": [ { "default": null, - "description": "The directory path from which to get a list of file names.", + "description": "The key associated with the value to be retrieved from the associative array.", "isRequired": true, - "name": "dirPath", + "name": "key", "type": "String" - }, + } + ], + "returnDescription": "Returns the value in the array associated with the specified key. If there is no value associated with the key, the type \"invalid\" is returned.", + "returnType": "Dynamic" + }, + { + "description": "Same as the [Lookup()](#lookupkey-as-string-as-dynamic) method except that the key comparison is always case insensitive, regardless of the case mode.", + "name": "LookupCI", + "params": [ { "default": null, - "description": "The regex to be used to search for files.", + "description": "The key (case-insensitive) associated with the value to be retrieved from the associative array.", "isRequired": true, - "name": "regEx", + "name": "key", "type": "String" } ], - "returnDescription": "An [roList](/docs/references/brightscript/components/rolist.md \"roList\") of Strings representing the directory listing of names in dirPath that match the regex.", - "returnType": "Object" + "returnDescription": "Returns the value in the array associated with the specified key. If there is no value associated with the key, the type \"invalid\" is returned.", + "returnType": "Dynamic" }, { - "description": "Returns the file names in the specified directory path and any sudirectories matching the provided regex.", - "name": "FindRecurse", + "description": "Makes all subsequent associative array lookups case sensitive (by default, lookups are case insensitive).", + "name": "SetModeCaseSensitive", + "params": [], + "returnType": "Void" + } + ], + "name": "ifAssociativeArray", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifassociativearray.md" + }, + "ifaudioguide": { + "description": "> Please note this component is only available on the following devices: Roku Streaming Stick (3600X), Roku Express (3700X) and Express+ (3710X), Roku Premiere (4620X) and Premiere+ (4630X), Roku Ultra (4640X), and any Roku TV running Roku OS version 7.5 and later.", + "implementers": [ + { + "description": "Returns information about the application", + "name": "roAudioGuide", + "url": "https://developer.roku.com/docs/references/brightscript/components/roaudioguide.md" + } + ], + "methods": [ + { + "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": [], + "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.", + "name": "Say", "params": [ { "default": null, - "description": "The directory path from which to get a list of file names.", + "description": "The string to be spoken. Punctuation such as commas and periods can be used to add pauses to the speech playback. Typically, special characters are generally not spoken; however, you can pass in the appropriate text such as \"question mark\" to have a special character be spoken (do not use the symbol).", "isRequired": true, - "name": "dirPath", + "name": "text", "type": "String" }, { "default": null, - "description": "The regex to be used to search for files.", + "description": "Set to true to make the screen reader immediately stop speaking any other speech before speaking. Set to false to make the screen reader wait until any current speech is done before speaking.", "isRequired": true, - "name": "regEx", - "type": "String" + "name": "flushSpeech", + "type": "Boolean" + }, + { + "default": null, + "description": "Set to true to ignore calls to the say() method with the same text. Set to false to speak when calls to the say() method are sent with the same text.", + "isRequired": true, + "name": "dontRepeat", + "type": "Boolean" } ], - "returnDescription": "An [roList](/docs/references/brightscript/components/rolist.md \"roList\") of Strings representing the directory listing of names in dirPath that match the regex. Each item in the list is the name of the file relative to dirPath.", + "returnDescription": "An ID associated with the spoken string to be used to notify observer callbacks.", + "returnType": "Integer" + }, + { + "description": "If the screen reader is enabled, causes text to speech to continue to suppress any application background sound for the amount of time specified by duration (in milliseconds).This can be used to add clarity for longer spoken text that may have pauses that might otherwise allow application background sound to be heard. This method does nothing if screen reader is currently disabled.", + "name": "Silence", + "params": [ + { + "default": null, + "description": "The number of milliseconds to suppress application background sounds.", + "isRequired": true, + "name": "duration", + "type": "Integer" + } + ], + "returnDescription": "The number of milliseconds that the background sound has been silenced.", + "returnType": "Integer" + } + ], + "name": "ifAudioGuide", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifaudioguide.md" + }, + "ifaudiometadata": { + "implementers": [ + { + "description": "This component provides developers access to audio file metadata included in many audio files", + "name": "roAudioMetadata", + "url": "https://developer.roku.com/docs/references/brightscript/components/roaudiometadata.md" + } + ], + "methods": [ + { + "description": "Returns an associative array with a simple set of audio properties.", + "name": "GetAudioProperties", + "params": [], + "returnDescription": "An associative array that may be set to one of the following values (these are values that may involve reading a larger portion of the file and thus may take longer to retrieve than tags):", "returnType": "Object" }, { - "description": "Returns the file names in the specified directory path.", - "name": "GetDirectoryListing", + "description": "Returns the cover art, if available.", + "name": "GetCoverArt", + "params": [], + "returnDescription": "An associative array with two entries: \"bytes\" and \"type\".", + "returnType": "Object" + }, + { + "description": "Returns an associative array that contains a simple set of tags that are common to most audio formats.", + "name": "GetTags", + "params": [], + "returnDescription": "An associative array that may be set to one of the following values:", + "returnType": "Object" + }, + { + "description": "Sets the URL to the audio file. Only file URLs are initially supported", + "name": "SetUrl", "params": [ { "default": null, - "description": "The directory path from which to get a list of file names.", + "description": "The URL of the audio file.", "isRequired": true, - "name": "dirPath", + "name": "url", "type": "String" } ], - "returnDescription": "An [roList](/docs/references/brightscript/components/rolist.md \"roList\") of strings representing the directory listing of names in dirPath.", - "returnType": "Object" - }, + "returnType": "Void" + } + ], + "name": "ifAudioMetaData", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifaudiometadata.md" + }, + "ifaudioplayer": { + "implementers": [ { - "description": "Returns information about the specified volume. The function can only be called on external volumes; internal volumes do not return meaningful information.", - "name": "GetVolumeInfo", + "description": "The Audio Player object provides the ability to setup the playing of a series of audio streams", + "name": "roAudioMetadata", + "url": "https://developer.roku.com/docs/references/brightscript/components/roaudiometadata.md" + } + ], + "methods": [ + { + "description": "Adds a new ContentMetaData item to the end of the content list for the Audio Player.", + "name": "AddContent", "params": [ { "default": null, - "description": "The external volume for which to get information. This should be specified as the volume name plus a directory separator (for example, \"ext1:/\").", + "description": "The new ContentMetaData item to be added to the content list.", "isRequired": true, - "name": "path", - "type": "String" + "name": "contentItem", + "type": "Object" } ], - "returnDescription": "An roAssociativeArray containing the following key-value pairs about the specified external volume:", - "returnType": "Object" + "returnType": "Void" }, { - "description": "Returns the available volumes on the device.", - "name": "GetVolumeList", + "description": "Clears the content list.", + "name": "ClearContent", "params": [], - "returnDescription": "An [roList](/docs/references/brightscript/components/rolist.md \"roList\") containing strings representing the available volumes.", - "returnType": "Object" + "returnType": "Void" }, { - "description": "Returns the file names in the specified directory path matching the provided shell-like pattern. This method is similar to the [Find()](#finddirpath-as-string-regex-as-string-as-object) method except that it uses shell-like pattern matching rather than regular expression matching.", - "name": "Match", + "description": "Puts the Audio Player into pause mode. It is an error to Pause if player is not in play mode.", + "name": "Pause", + "params": [], + "returnDescription": "A flag indicating whether the Audio Player was successfully set to pause mode.", + "returnType": "Boolean" + }, + { + "description": "Puts the Audio Player into play mode starting at the current item in the Content List. This will stop any currently playing content.", + "name": "Play", + "params": [], + "returnDescription": "A flag indicating whether the Audio Player was successfully set to play mode.", + "returnType": "Boolean" + }, + { + "description": "Puts the Audio Player into play mode starting from the pause point. It is an error to Resume if the player is not in pause mode.", + "name": "Resume", + "params": [], + "returnDescription": "A flag indicating whether the Audio Player was successfully set to play mode.", + "returnType": "Boolean" + }, + { + "description": "Set the start point of playback for the current item to offsetMs milliseconds.", + "name": "Seek", "params": [ { "default": null, - "description": "The directory path from which to get a list of file names.", - "isRequired": true, - "name": "path", - "type": "String" - }, - { - "default": null, - "description": "The shell-like pattern to be used to search for files. The pattern may contain wildcards such as `*`and `?`.", + "description": "The offset to be used to determine the start point of the current content item.", "isRequired": true, - "name": "pattern", - "type": "String" + "name": "offsetMs", + "type": "Integer" } ], - "returnDescription": "An [roList](/docs/references/brightscript/components/rolist.md \"roList\") of Strings representing the directory listing of names in dirPath that match the shell-like pattern.", - "returnType": "Object" + "returnDescription": "A flag indicating whether the Audio Player was successfully set to the specified offset.", + "returnType": "Boolean" }, { - "description": "Renames the directory.", - "name": "Rename", + "description": "Sets the content list to be played by the Audio Player.", + "name": "SetContentList", "params": [ { "default": null, - "description": "The current name of the path to be renamed.", "isRequired": true, - "name": "fromPath", - "type": "String" - }, + "name": "contentList", + "type": "Object" + } + ], + "returnType": "Void" + }, + { + "description": "Enables/disables the automatic replaying of the Content List.", + "name": "SetLoop", + "params": [ { "default": null, - "description": "The new name of the path.", + "description": "Set to true to have the Audio Player automatically begin playing the first item in the content list after playing the last item. Set to false to have the Audio Player stop after playing the last item in the content list.", "isRequired": true, - "name": "toPath", - "type": "String" + "name": "enable", + "type": "Boolean" } ], - "returnDescription": "A flag indicating whether the directory was successfully renamed. If the provided target directory (**toPath**) exists, it is not overwritten; instead the operation fails and this method returns false", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Returns the keys in the specified directory path.", - "name": "Stat", + "description": "Sets the next item in the Content List to be played.", + "name": "SetNext", "params": [ { "default": null, - "description": "The directory path to be checked.", + "description": "Item is the zero-based index of the item in the content list. This item will be played after the currently playing item finishes.", "isRequired": true, - "name": "path", - "type": "String" + "name": "item", + "type": "Integer" } ], - "returnDescription": "An [roAssociativeArray](/docs/references/brightscript/components/roassociativearray.md \"roAssociativeArray\") containing the following key-value pairs for the specified path:", - "returnType": "Object" - } - ], - "name": "ifFileSystem", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iffilesystem.md" - }, - "iffloat": { - "description": "Interface equivalent for intrinsic type Float", - "implementers": [ - { - "description": "Object equivalent for intrinsic type 'Float'", - "name": "roFloat", - "url": "https://developer.roku.com/docs/references/brightscript/components/rofloat.md" - } - ], - "methods": [ - { - "description": "Gets the float value stored in the calling Float object.", - "name": "GetFloat", - "params": [], - "returnDescription": "The float value stored in the calling Float object.", - "returnType": "Float" + "returnType": "Void" }, { - "description": "Sets the calling Float object to the specified float value.", - "name": "SetFloat", + "description": "Specifies the timedMetaData keys that the channel is interested in receiving from the timedMetaData event.", + "name": "SetTimedMetaDataForKeys", "params": [ { "default": null, - "description": "The float value to be set on the calling Float object.", + "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": "value", - "type": "Float" + "name": "keys", + "type": "Dynamic" } ], "returnType": "Void" + }, + { + "description": "Stops the Audio Player from playing or pausing and cleanup.", + "name": "Stop", + "params": [], + "returnDescription": "A flag indicating whether the Audio Player was successfully stopped.", + "returnType": "Boolean" } ], - "name": "ifFloat", + "name": "ifAudioPlayer", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iffloat.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifaudioplayer.md" }, - "iffont": { + "ifaudioresource": { "implementers": [ { - "description": "roFont represents a particular font, from a font-family (eg. Arial), with a particular pixel size (e.g 20), and a particular boldness or italicness", - "name": "roFont", - "url": "https://developer.roku.com/docs/references/brightscript/components/rofont.md" + "description": "The roAudioResouce allows .wav files to be cached to memory and quickly played at any time", + "name": "roAudioResource", + "url": "https://developer.roku.com/docs/references/brightscript/components/roaudioresource.md" } ], "methods": [ { - "description": "Returns the number of pixels of the font ascent.", - "name": "GetAscent", + "description": "Returns an [roAssociativeArray](https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md\"roAssociativeArray\") array containing the indicated metadata parameters about the audio resource.", + "name": "GetMetaData", "params": [], - "returnDescription": "The number of pixels.", - "returnType": "Integer" + "returnDescription": "An associative array with the following integer values:", + "returnType": "Object" }, { - "description": "Returns the number of pixels of the font descent.", - "name": "GetDescent", + "description": "Checks whether this audio resource is currently playing.", + "name": "IsPlaying", "params": [], - "returnDescription": "The number of pixels.", - "returnType": "Integer" + "returnDescription": "A flag indicating whether the calling audio resource is playing.", + "returnType": "Boolean" }, { - "description": "Returns the font maximum advance width in pixels.", - "name": "GetMaxAdvance", + "description": "Returns the device-dependent maximum number of audio streams that can be mixed together and presented simultaneously.", + "name": "MaxSimulStreams", "params": [], - "returnDescription": "The number of pixels.", + "returnDescription": "Typically, 1-2.", "returnType": "Integer" }, { - "description": "Returns the number of pixels from one line to the next when drawing with this font.", - "name": "GetOneLineHeight", + "description": "Stops playing the audio resource. If the resource is not currently playing, has no effect.", + "name": "Stop", "params": [], - "returnDescription": "The number of pixels.", - "returnType": "Integer" + "returnType": "Void" }, { - "description": "Returns the number of pixels from one line to the next when drawing with this font. Each glyph and the needed spacing between glyphs is measured.", - "name": "GetOneLineWidth", + "description": "This method triggers the start of the audio resource sound playback. The effect of Trigger(volume) is identical to Trigger(volume, 0).", + "name": "Trigger", "params": [ { "default": null, - "description": "The subject text.", + "description": "The volume is a number between 0 and 100 (percentage of full volume). A value of 50 should be used for normal volume.", "isRequired": true, - "name": "text", - "type": "String" + "name": "volume", + "type": "Integer" + } + ], + "returnType": "Void" + }, + { + "description": "Triggers the start of the audio resource sound playback. This method will interrupt any playing sound when the index is the same. It will mix with any playing sound if the index is different.", + "name": "Trigger", + "params": [ + { + "default": null, + "description": "The volume is a number between 0 and 100 (percentage of full volume). 50 should be used for normal volume.", + "isRequired": true, + "name": "volume", + "type": "Integer" }, { "default": null, - "description": "Generally, the amount of pixels available for rendering on this line.", + "description": "The index is a value between 0 and [MaxSimulStreams()](#maxsimulstreams-as-integer) allowing for multiple sounds to be mixed.", "isRequired": true, - "name": "MaxWidth", + "name": "index", "type": "Integer" } - ], - "returnDescription": "The number of pixels. This will be less than provided MaxWidth.", - "returnType": "Integer" + ], + "returnType": "Void" } ], - "name": "ifFont", + "name": "ifAudioResource", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iffont.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifaudioresource.md" }, - "iffontmetrics": { - "deprecatedDescription": "This interface is deprecated. Developers should use [roFont](/docs/references/brightscript/components/rofont.md \"roFont\") methods (GetOneLineHeight and GetOneLineWidth).\n", - "description": "> This interface is deprecated. Developers should use [roFont](https://developer.roku.com/docs/references/brightscript/components/rofont.md\"roFont\") methods (GetOneLineHeight and GetOneLineWidth).", + "ifboolean": { + "description": "Interface equivalent for intrinsic type Boolean.", "implementers": [ { - "description": "The roFontMetrics object allows you to get display size information for a specific font returned by the roFontRegistry.Get() method", - "name": "roFontMetrics", - "url": "https://developer.roku.com/docs/references/brightscript/components/rofontmetrics.md" + "description": "Object equivalent for intrinsic type Boolean", + "name": "roBoolean", + "url": "https://developer.roku.com/docs/references/brightscript/components/roboolean.md" } ], - "isDeprecated": true, "methods": [ { - "description": "Returns the width and height of the **stringToDraw** parameter rendered in the font passed on the CreateObject() call.", - "name": "Size", + "description": "Gets the boolean value stored in the calling boolean object.", + "name": "GetBoolean", + "params": [], + "returnDescription": "The boolean value stored in the calling boolean object.", + "returnType": "Boolean" + }, + { + "description": "Sets the calling boolean object to the specified true/false value.", + "name": "SetBoolean", "params": [ { "default": null, - "description": "The string to be drawn.", + "description": "True/false.", "isRequired": true, - "name": "stringToDraw", - "type": "String" + "name": "value", + "type": "Boolean" } ], - "returnDescription": "An [roAssociativeArray](/docs/references/brightscript/components/roassociativearray.md \"roAssociativeArray\") with width and height parameters. The following example demonstrates this:", - "returnType": "Object" + "returnType": "Void" } ], - "name": "ifFontMetrics", + "name": "ifBoolean", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iffontmetrics.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifboolean.md" }, - "iffontregistry": { + "ifbytearray": { "implementers": [ { - "description": "The roFontRegistry object allows you to create roFont objects, either using the default font or using fonts in TrueType or OpenType files packaged with your application", - "name": "roFontRegistry", - "url": "https://developer.roku.com/docs/references/brightscript/components/rofontregistry.md" + "description": "The byte array component is used to contain and manipulate an arbitrary array of bytes", + "name": "roByteArray", + "url": "https://developer.roku.com/docs/references/brightscript/components/robytearray.md" } ], "methods": [ { - "description": "Returns a valid font string that can be used as the value of the Font content meta-data parameter recognized by the [roImageCanvas](https://developer.roku.com/docs/references/brightscript/components/roimagecanvas.md\"roImageCanvas\") method.", - "name": "Get", + "description": "Appends the contents of the Byte Array to the specified file.", + "name": "AppendFile", "params": [ { "default": null, - "description": "The font family name.", + "description": "The path to the file to be appended to the ByteArray.", "isRequired": true, - "name": "family", + "name": "path", + "type": "String" + } + ], + "returnDescription": "A flag indicating whether the file was successfully appended to the calling ByteArray.", + "returnType": "Boolean" + }, + { + "description": "Appends the contents of the Byte Array to the specified file.", + "name": "AppendFile", + "params": [ + { + "default": null, + "description": "The path to the file to be appended to the Byte Array.", + "isRequired": true, + "name": "path", "type": "String" }, { "default": null, - "description": "The requested font size, in pixels, not points.", + "description": "The position in the file from which to start appending bytes.", "isRequired": true, - "name": "size", + "name": "start_pos", "type": "Integer" }, { "default": null, - "description": "\"bold\" specifies a font variant that may be (but is not always) supported by the font file.", + "description": "The length of the bytes to be appended to the Byte Array, starting from the specified starting position.", "isRequired": true, - "name": "bold", - "type": "Boolean" - }, + "name": "length", + "type": "Integer" + } + ], + "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.", + "name": "FromAsciiString", + "params": [ { "default": null, - "description": "\"italic\" specifies a font variant that may be (but is not always) supported by the font file.", + "description": "The string to which the ByteArray is to be set.", "isRequired": true, - "name": "italic", - "type": "Boolean" + "name": "s", + "type": "String" } ], - "returnDescription": "A valid font string.", - "returnType": "String" + "returnType": "Void" }, { - "description": "Returns the system font at its default size. Calling this method is the same as calling the [GetDefaultFont()](#getdefaultfontsize-as-integer-bold-as-boolean-italic-as-boolean-as-object) method with the following syntax: `reg.GetDefaultFont(reg.GetDefaultFontSize(), false, false)`.", - "name": "GetDefaultFont", + "description": "Sets the contents of the Byte Array to the specified value. Any data currently in the Byte Array is discarded.", + "name": "FromBase64String", + "params": [ + { + "default": null, + "description": "A valid base-64 encoding", + "isRequired": true, + "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.", + "name": "FromHexString", + "params": [ + { + "default": null, + "description": "An even number of hexadecimal digits. The string must contain valid hexadecimal digits, or the result is undefined", + "isRequired": true, + "name": "hexstring", + "type": "String" + } + ], + "returnType": "Void" + }, + { + "description": "Calculates a CRC-32 of the contents of the Byte Array.", + "name": "GetCRC32", "params": [], - "returnDescription": "The system font as its default size.", - "returnType": "Object" + "returnDescription": "The calculated CRC-32 checksum.", + "returnType": "Integer" }, { - "description": "Returns the system font. The system font is always available, even if the [Register()](#registerpath-as-string-as-boolean) method has not been called", - "name": "GetDefaultFont", + "description": "Calculates a CRC-32 of a subset of bytes within the Byte Array.", + "name": "GetCRC32", "params": [ { "default": null, - "description": "The requested font size, in pixels, not points.", + "description": "The starting index of the subset of bytes to be used in the CRC-32 calculation.", "isRequired": true, - "name": "size", + "name": "start", "type": "Integer" }, { "default": null, - "description": "\"bold\" specifies a font variant that may be (but is not always) supported by the font file.", + "description": "The length of the bytes to be included.", "isRequired": true, - "name": "bold", - "type": "Boolean" - }, + "name": "length", + "type": "Integer" + } + ], + "returnDescription": "The calculated CRC-32 checksum.", + "returnType": "Integer" + }, + { + "description": "Returns the signed byte at the specified zero-based index in the Byte ArrayUse the [ifArrayGet.GetEntry()](https://developer.roku.com/docs/references/brightscript/interfaces/ifarrayget.mdgetentryindex-as-integer-as-dynamic) method or the \\[ \\] array operator to read an unsigned byte in the Byte Array.", + "name": "GetSignedByte", + "params": [ { "default": null, - "description": "\"italic\" specifies a font variant that may be (but is not always) supported by the font file.", + "description": "The index of the signed byte to be returned.", "isRequired": true, - "name": "italic", - "type": "Boolean" + "name": "index", + "type": "Integer" } ], - "returnDescription": "An roFont object representing the system font.", - "returnType": "Object" + "returnDescription": "The signed byte at the specified zero-based index in the Byte Array.", + "returnType": "Integer" }, { - "description": "Returns the default font size.", - "name": "GetDefaultFontSize", - "params": [], - "returnDescription": "The default font size.", + "description": "Returns the signed long (four bytes) starting at the specified zero-based index in the Byte Array.", + "name": "GetSignedLong", + "params": [ + { + "default": null, + "description": "The index of the ByteArray from which to start retrieving the signed long.", + "isRequired": true, + "name": "index", + "type": "Integer" + } + ], + "returnDescription": "A signed long.", "returnType": "Integer" }, { - "description": "Returns the names of the font families that have been registered via the [Register()](#registerpath-as-string-as-boolean) method. Each name can be passed as the first parameter to the [GetFont()](#getfontfamily-as-string-size-as-integer-bold-as-boolean-italic-as-boolean-as-object) method.", - "name": "GetFamilies", + "description": "Returns true if the CPU architecture is little-endian.", + "name": "IsLittleEndianCPU", "params": [], - "returnDescription": "An [roArray](/docs/references/brightscript/components/roarray.md \"roArray\") of strings that represent the names of the font families that have been registered.", - "returnType": "Object" + "returnDescription": "A flag indicating whether the CPU architecture is little-endian.", + "returnType": "Boolean" }, { - "description": "Returns a font from the specified family, selected from the fonts previously registered via the [Register()](#registerpath-as-string-as-boolean) method.", - "name": "GetFont", + "description": "Reads the specified file into the Byte Array. Any data currently in the Byte Array is discarded.", + "name": "ReadFile", "params": [ { "default": null, - "description": "The font family name.", + "description": "The path to the file to be read.", "isRequired": true, - "name": "family", + "name": "path", + "type": "String" + } + ], + "returnDescription": "A flag indicating whether the bytes were successfully read into the Byte Array.", + "returnType": "Boolean" + }, + { + "description": "Reads the specified file into the Byte Array. Any data currently in the Byte Array is discarded.", + "name": "ReadFile", + "params": [ + { + "default": null, + "description": "The path to the file to be read.", + "isRequired": true, + "name": "path", "type": "String" }, { "default": null, - "description": "The requested font size, in pixels, not points.", + "description": "The index of the file from which to start reading bytes.", "isRequired": true, - "name": "size", + "name": "start_pos", "type": "Integer" }, { "default": null, - "description": "\"bold\" specifies a font variant that may be (but is not always) supported by the font file.", + "description": "The length of the bytes to be read from the file, starting from the specified starting position.", "isRequired": true, - "name": "bold", - "type": "Boolean" + "name": "length", + "type": "Integer" + } + ], + "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.", + "name": "SetResize", + "params": [ + { + "default": null, + "description": "The minimum size to which the calling Byte Array is to be expanded.", + "isRequired": true, + "name": "min_size", + "type": "Integer" }, { "default": null, - "description": "\"italic\" specifies a font variant that may be (but is not always) supported by the font file.", + "description": "A flag specifying whether auto resize is enabled on the calling Byte Array.", "isRequired": true, - "name": "italic", + "name": "auto_resize", "type": "Boolean" } ], - "returnDescription": "An [roFont](/docs/references/brightscript/components/rofont.md \"roFont\") object representing a font from the specified family.", - "returnType": "Object" + "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", + "name": "ToAsciiString", + "params": [], + "returnDescription": "A String containing the contents of the ByteArray.", + "returnType": "String" + }, + { + "description": "Returns a base-64 string representing the contents of the Byte Array.", + "name": "ToBase64String", + "params": [], + "returnDescription": "A base-64 string representing the contents of the Byte Array.", + "returnType": "String" + }, + { + "description": "Returns a hexadecimal string representing the contents of the Byte Array, two digits per byte.", + "name": "ToHexString", + "params": [], + "returnDescription": "A hexadecimal string.", + "returnType": "String" }, { - "description": "Registers a font file (.ttf or .otf format). Each font file defines one or more font families (usually one).", - "name": "Register", + "description": "Writes the bytes contained in the Byte Array to the specified file.", + "name": "WriteFile", "params": [ { "default": null, + "description": "The path to the file to which the bytes are to be written.", "isRequired": true, "name": "path", "type": "String" } ], - "returnDescription": "A flag indicating whether the fonts in the specified file were successfully installed.", + "returnDescription": "A flag indicating whether the bytes were successfully written to the file.", "returnType": "Boolean" - } - ], - "name": "ifFontRegistry", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iffontregistry.md" - }, - "iffunction": { - "description": "Interface equivalent for intrinsic type Function.", - "implementers": [ - { - "description": "Object equivalent for intrinsic type Function", - "name": "roFunction", - "url": "https://developer.roku.com/docs/references/brightscript/components/rofunction.md" - } - ], - "methods": [ - { - "name": "GetSub", - "params": [], - "returnType": "Function" }, { - "name": "SetSub", + "description": "Writes a subset of the bytes contained in the Byte Array to the specified file.", + "name": "WriteFile", "params": [ { "default": null, + "description": "The path to the file to which the bytes are to be written.", + "isRequired": true, + "name": "path", + "type": "String" + }, + { + "default": null, + "description": "The index of the calling ByteArray from which to start writing bytes.", "isRequired": true, - "name": "value", - "type": "Function" + "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" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the bytes were successfully written to the file.", + "returnType": "Boolean" } ], - "name": "ifFunction", + "name": "ifByteArray", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iffunction.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifbytearray.md" }, - "ifgetmessageport": { + "ifcecstatus": { "implementers": [ { - "description": "The HDMI status component provides an interface to the current HDMI operational status", - "name": "roHdmiStatus", - "url": "https://developer.roku.com/docs/references/brightscript/components/rohdmistatus.md" - }, - { - "description": "The roScreen component provides a full screen drawing surface that can be stacked and that you can receive input events from", - "name": "roScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/roscreen.md" - }, - { - "description": "The roTextToSpeech component provides text to speech capabilities to applications", - "name": "roTextToSpeech", - "url": "https://developer.roku.com/docs/references/brightscript/components/rotexttospeech.md" - }, - { - "description": "A roUrlTransfer object transfers data to or from remote servers specified by URLs", - "name": "roUrlTransfer", - "url": "https://developer.roku.com/docs/references/brightscript/components/rourltransfer.md" + "description": "Identifies the active source status for set boxes.", + "name": "roCECStatus", + "url": "https://developer.roku.com/docs/references/brightscript/components/rocecstatus.md" } ], "methods": [ { - "description": "Returns the message port (if any) currently associated with the object", - "name": "GetMessagePort", + "description": "Indicates whether the device is the active source.", + "name": "IsActiveSource", "params": [], - "returnDescription": "The message port.", - "returnType": "Object" + "returnDescription": "A flag indicating whether the device is the active source (true). If the device is not the active source, this flag is set to false.", + "returnType": "Boolean" } ], - "name": "ifGetMessagePort", + "name": "ifCECStatus", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifgetmessageport.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifcecstatus.md" }, - "ifgridscreen": { - "deprecatedDescription": "This interface is deprecated.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This interface is deprecated.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", + "ifchannelstore": { "implementers": [ { - "description": "The Grid Screen provides a graphical display of poster art from multiple content categories from within a single screen", - "name": "roGridScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rogridscreen.md" + "description": "allows the application to perform a purchase of an In-Channel Product or upgrade a channel", + "name": "roChannelStore", + "url": "https://developer.roku.com/docs/references/brightscript/components/rochannelstore.md" } ], - "isDeprecated": true, "methods": [ { - "name": "ClearMessage", - "params": [], - "returnType": "Void" - }, - { - "description": "Closes the screen and deletes the associated object.", - "name": "Close", + "name": "ClearOrder", "params": [], "returnType": "Void" }, { - "description": "Enables the breadcrumb text specified with [SetBreadcrumbText()](#setbreadcrumbtextlocation1-as-string-location2-as-string-as-void) method to be displayed.", - "name": "SetBreadcrumbEnabled", - "params": [ - { - "default": null, - "description": "Set this flag to true in order to display the breadcrumb text.", - "isRequired": true, - "name": "enabled", - "type": "Boolean" - } - ], - "returnType": "Void" - }, - { - "description": "If SetBreadcrumbEnabled() is true, display Location1 and Location2 in the right of the overhang.", - "name": "SetBreadcrumbText", + "description": "This function is equivalent to doOrder() for transactional purchases. The user's billing status must first be confirmed with RequestPartnerOrder() prior to calling this function.", + "name": "ConfirmPartnerOrder", "params": [ { "default": null, - "description": "The first location value.", "isRequired": true, - "name": "Location1", - "type": "String" + "name": "confirmOrderInfo", + "type": "roAssociativeArray" }, { "default": null, - "description": "The second location value.", "isRequired": true, - "name": "Location2", + "name": "productID", "type": "String" } ], - "returnType": "Void" - }, - { - "description": "Sets the content list for the specified row.", - "name": "SetContentList", - "params": [ - { - "default": null, - "description": "The row to be updated with the provided content list.", - "isRequired": true, - "name": "rowIndex", - "type": "Integer" - }, - { - "default": null, - "description": "An roArray of items, where each item is an roAssociativeArray containing the [content metadata](/docs/developer-program/getting-started/architecture/content-metadata.md \"Content Meta-Data\") used to display the item (for example, Title, Description, SDPosterUrl, and HDPosterUrl). See [Content metadata](/docs/developer-program/getting-started/architecture/content-metadata.md \"Content Metadata\") for details.", - "isRequired": true, - "name": "contentList", - "type": "Object" - } - ], - "returnType": "Void" + "returnDescription": "If the order is successful, an roAssociativeArray is returned that contains the following keys with string values:", + "returnType": "Object" }, { - "description": "Set or update items in the content list for the specified row. Enables performance improvements when dealing with your backend services by asking only for only a screenful worth of data at a time, and then update the rest of the content list content in the background.", - "name": "SetContentListSubset", + "description": "Applies a change in quantity to one item in the current Order (shopping cart).", + "name": "DeltaOrder", "params": [ { "default": null, + "description": "The product identifier.", "isRequired": true, - "name": "rowIndex", - "type": "Integer" - }, - { - "default": null, - "isRequired": true, - "name": "contentList", + "name": "code", "type": "Object" }, { "default": null, + "description": "The quantity purchased. This may be a negative number.", "isRequired": true, - "name": "offset", - "type": "Integer" - }, - { - "default": null, - "isRequired": true, - "name": "length", + "name": "qty", "type": "Integer" } ], - "returnType": "Void" + "returnType": "Integer" + }, + { + "description": "Displays the Roku Channel Store Product Purchase Screen populated with information from the current Order.", + "name": "DoOrder", + "params": [], + "returnDescription": "A flag indicating whether the user approved the order (true if the order was approved; false otherwise).", + "returnType": "Boolean" }, { - "description": "Specifies whether the item counter should be displayed. The item counter shows the focused item number and count of items in the row.", - "name": "SetCounterVisible", + "description": "This test mode short circuits communication to the Roku Channel store. It makes other methods get their responses to async queries and operations from configuration files, rather than actual server communication.", + "name": "FakeServer", "params": [ { "default": null, - "description": "Set this flag to true in order to display the item counter.", + "description": "If enable is true, enables a test mode for the roChannelStore component.", "isRequired": true, - "name": "visible", + "name": "enable", "type": "Boolean" } ], "returnType": "Void" }, { - "description": "Description", - "name": "SetDescriptionVisible", + "description": "Requests the list of In-Channel products that are linked to the running channel.", + "name": "GetCatalog", + "params": [], + "returnType": "Void" + }, + { + "description": "Retrieves a Roku Partner Unique Customer Identifier (roku\\_pucid), or retrieves an access token, oAuth token, or other authentication artifact (channel\\_data).", + "name": "GetChannelCred", + "params": [], + "returnDescription": "An associative array that contains the following fields:", + "returnType": "Object" + }, + { + "name": "GetDeviceAttestation", "params": [ { "default": null, - "description": "Set this flag to true in order to display the description box for the focused item.", + "description": "A random number used to generate the JWT token. This can be, for example, a hash of the user's account ID that can be verified by the publisher's services.", "isRequired": true, - "name": "visible", - "type": "Boolean" + "name": "nonce", + "type": "String" } ], - "returnType": "Void" + "returnDescription": "The generated JWT token. The following demonstrates a sample JWT that is returned to the channel. Developers can use a [JWT debugger](https://jwt.io/#debugger-io) to decode this token.", + "returnType": "String" + }, + { + "description": "Returns a unique number for this object that can be used to identify whether a roChannelStoreEvent event originated from this object, by comparing with the roChannelStoreEvent object's GetSourceIdentity() value.", + "name": "GetIdentity", + "params": [], + "returnDescription": "The unique number generated for the object.", + "returnType": "Integer" + }, + { + "description": "Retrieves the current Order.", + "name": "GetOrder", + "params": [], + "returnDescription": "The returned object is an roList of roAssociativeArray items, where each item contains the following parameter names with specified value type:", + "returnType": "Object" }, { - "description": "Sets the mode for displaying images in the grid screen. This allows images to be either scaled to completely fill the poster frame (scale-to-fill) or scaled to fit inside the poster frame (scale-to-fit) while maintaining aspect ratio.", - "name": "SetDisplayMode", + "description": "This function works like GetUserData(), but allows the caller to specify which user data elements to return. The specified values are also displayed in the user data dialog screen.", + "name": "GetPartialUserData", "params": [ { "default": null, - "description": "The mode to be used for displaying images, which maybe one of the following values: * \"scale-to-fill\": scales image to completely fill the rectangle of the bounding frame (Default) * \"scale-to-fit\": scale image to fit horizontally or vertically as appropriate while still maintaining aspect ratio. Note that scale-to-fit may result in pillar-box or letter-box display of images. * \"zoom-to-fill\": scales and crops image to maintain aspect ratio and completely fill the rectangle of the bounding frame. * \"photo-fit\": Uses several methods to fit the image with a different aspect ratio to the screen. First, it will asymmetrically scale up to a maximum of 5%. Second, for landscape images, if vertical cropping is necessary, it will remove two lines off the bottom for every one line off the top up to a maximum of 30% of the image. For all images, if horizontal cropping is necessary it will crop an equal amount from both sides.", + "description": "A comma-separated list of the attribute names to be returned. For example, to return only the email address and first name of the user's account, you would call GetPartialUserData(\"email, firstname\"). The full set of user account properties that can be queried with the function is: * firstname * lastname * email * street * city * state * zip * country * phone * birth (_Available since Roku OS 10.0_) * gender (_Available since Roku OS 10.0_)", "isRequired": true, - "name": "displayMode", + "name": "properties", "type": "String" + }, + { + "default": null, + "isRequired": true, + "name": "requestInfo", + "type": "Object" } ], + "returnDescription": "An roAssociativeArray containing the Roku account information passed in the method.", + "returnType": "Object" + }, + { + "description": "Requests the list of purchases associated with the current user account.", + "name": "GetPurchases", + "params": [], + "returnType": "Void" + }, + { + "description": "Requests the list of globally available In-Channel products, which are available to all channels.", + "name": "GetStoreCatalog", + "params": [], "returnType": "Void" }, { - "description": "Specifies the default images to be shown in the grid when the grid screen content fails to load.", - "name": "SetErrorPoster", + "description": "The GetUserData() function provides a way to request user authorization to share the user’s account information with the calling channel.", + "name": "GetUserData", + "params": [], + "returnDescription": "When called, the method presents a dialog screen containing the user’s account information, along with two buttons labeled Share and Don’t Share.", + "returnType": "Object" + }, + { + "description": "Retrieves the state, zip code, and country associated with the customer's Roku account. The location information returned by this command can be used to determine a customer's eligibility for regional-specific subscription products and content.", + "name": "GetUserRegionData", + "params": [], + "returnDescription": "An associative array that contains the following fields:", + "returnType": "Object" + }, + { + "description": "Checks the user's billing status and is a prerequisite for ConfirmPartnerOrder() when doing transactional purchases.", + "name": "RequestPartnerOrder", "params": [ { "default": null, - "description": "The URL of the standard definition poster image to be shown.", "isRequired": true, - "name": "sdPosterUrl", - "type": "String" + "name": "orderInfo", + "type": "roAssociativeArray" }, { "default": null, - "description": "The URL of the high definition poster image to be shown.", "isRequired": true, - "name": "hdPosterUrl", + "name": "productID", "type": "String" } ], - "returnType": "Void" + "returnDescription": "If the order is successful, an roAssociativeArray is returned that contains the following keys with string values:", + "returnType": "Object" }, { - "description": "Set the focus to the specified row and item.", - "name": "SetFocusedListItem", + "description": "Sets the current Order (shopping cart) to the elements specified in the parameter, which must be an roList of roAssociativeArray items.Passing an empty roList clears the Order, like calling ClearOrder().", + "name": "SetOrder", "params": [ { "default": null, - "description": "The row to be updated.", + "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": "rowIndex", - "type": "Integer" + "name": "order", + "type": "roList" }, { "default": null, - "description": "The items within the specified row to be updated.", + "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": "itemIndex", - "type": "Integer" + "name": "orderInfo", + "type": "roAssociativeArray" } ], "returnType": "Void" }, { - "description": "Specifies whether the focus ring is displayed for the focused item.", - "name": "SetFocusRingVisible", + "description": "Stores an access token, oAuth token, or other authentication artifact that can be retrieved by calling the [GetChannelCred()](https://developer.roku.com/docs/references/brightscript/interfaces/ifchannelstore.mdgetchannelcred-as-object)method. This data is stored securely in the Roku cloud and can be retrieved by other devices linked to the same Roku account. This method can be used to store an authentication artifact with Roku for a signed in user, associating that user with a particular Roku account. For more information, see [Automatic Account Link](/docs/developer-program/authentication/universal-authentication-protocol-for-single-sign-on.md).", + "name": "StoreChannelCredData", "params": [ { "default": null, - "description": "Set this flag to true in order to display the focus ring for the focused item.", + "description": "An OAuth token, custom token, or other custom data to be stored.", "isRequired": true, - "name": "visible", - "type": "Boolean" + "name": "data", + "type": "String" } ], - "returnType": "Void" - }, + "returnDescription": "This command returns an roAssociativeArray with the following values:", + "returnType": "Object" + } + ], + "name": "ifChannelStore", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifchannelstore.md" + }, + "ifcompositor": { + "implementers": [ + { + "description": "The roCompositor allows the composition and animation of multiple roBitmaps and roRegions", + "name": "roCompositor", + "url": "https://developer.roku.com/docs/references/brightscript/components/rocompositor.md" + } + ], + "methods": [ { - "description": "Sets the style or theme for displaying images in the grid screen. This allows different appearances of the overall grid for different sized images.", - "name": "SetGridStyle", + "description": "Moves all animated sprites. Sprites will not animate unless you call this function regularly.", + "name": "AnimationTick", "params": [ { "default": null, - "description": "The image size, which may be one of the following values: * flat-movie – movie posters as seen in the Netflix channel (Default) * Image sizes: SD 110x150 HD 210x270 * SD 5 posters across, by 2 rows * HD 5 posters across, by 2 rows", + "description": "The number of ms since the last call.", "isRequired": true, - "name": "style", - "type": "String" + "name": "duration", + "type": "Integer" } ], "returnType": "Void" }, { - "description": "Sets the list of row titles. The first name is displayed for the first row, the second name for the second row, and so on. The list should contain as many titles as the number of rows in the grid.", - "name": "SetListName", + "description": "Provides a global search and replace of sprite [roRegions](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegions\"). Replaces regions that match oldRegion with newRegion", + "name": "ChangeMatchingRegions", "params": [ { "default": null, + "description": "The sprite roRegion to be replaced.", "isRequired": true, - "name": "rowIndex", - "type": "Integer" + "name": "oldRegion", + "type": "Object" }, { "default": null, + "description": "The new sprite roRegion to be used.", "isRequired": true, - "name": "name", - "type": "String" + "name": "newRegion", + "type": "Object" } ], "returnType": "Void" }, { - "description": "Sets the list of row titles. The first name is displayed for the first row, the second name for the second row, etc. The list should contain as many titles as the number of rows in the grid", - "name": "SetListNames", - "params": [ - { - "default": null, - "description": "An roArray of strings containing the titles to be displayed in the grid.", - "isRequired": true, - "name": "names", - "type": "Object" - } - ], + "description": "Draws any dirty sprites (that is, whatever is new or has changed since the last Draw). No compositor or sprite operations will be reflected on the display until Draw() is called. After calling Draw(), you must call Finish() (if single buffered) or SwapBuffers() (if double buffered) before the changes will be user visible", + "name": "Draw", + "params": [], + "returnType": "Void" + }, + { + "description": "Redraws all sprites even if not dirty. After calling Draw(), you must call Finish() (if single buffered) or SwapBuffers() (if double buffered) before the changes will be user visible", + "name": "DrawAll", + "params": [], "returnType": "Void" }, { - "description": "Changes the current position (both row and column) of the downloading thread in populating image posters of the grid.", - "name": "SetListOffset", + "description": "Creates a new sprite that consists of a sequence of frames to be animated. The frames are defined by the regionArray which is an [roArray](https://developer.roku.com/docs/references/brightscript/components/roarray.md\"roArray\") of [roRegions](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegions\"). Position the sprite at coordinate x,y. If z is provided, position the sprite in front of all other sprites with equal or lower z value", + "name": "NewAnimatedSprite", "params": [ { "default": null, - "description": "The row to be updated.", + "description": "The x-coordinate of the sprite.", "isRequired": true, - "name": "rowIndex", + "name": "x", "type": "Integer" }, { "default": null, - "description": "The items within the specified row to be updated.", + "description": "The y-coordinate of the sprite.", "isRequired": true, - "name": "itemIndex", + "name": "y", "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the images size and orientation for each row in the grid. This method is used in conjunction with the mixed-apect-ratio grid style.", - "name": "SetListPosterStyles", - "params": [ + }, { "default": null, - "description": "The style to be used for the row, which may be one of the following values: landscape, portrait, or square", + "description": "The frames to be animated.", "isRequired": true, - "name": "styles", + "name": "regionArray", "type": "Object" + }, + { + "default": null, + "description": "The z-coordinate of the sprite.", + "isRequired": true, + "name": "z", + "type": "Integer" } ], - "returnType": "Void" + "returnDescription": "Returns an [roSprite](/docs/references/brightscript/components/rosprite.md \"roSprite\") object.", + "returnType": "Object" }, { - "description": "Sets the visibility of the specified row.", - "name": "SetListVisible", + "description": "Creates a new sprite, using an roRegion to define the sprite's bitmap. Position the sprite at coordinate x,y. If z is provided, position the sprite in front of all other sprites with equal or lower z value. Sprites with negative z values are not rendered or displayed on the screen.", + "name": "NewSprite", "params": [ { "default": null, - "description": "The row to be updated.", + "description": "The x-coordinate of the sprite.", "isRequired": true, - "name": "rowIndex", + "name": "x", "type": "Integer" }, { "default": null, - "description": "A flag indicating whether the row is to be made visible.", + "description": "The y-coordinate of the sprite.", "isRequired": true, - "name": "visible", - "type": "Boolean" - } - ], - "returnType": "Void" - }, - { - "description": "Specifies the default images to be shown in the grid while the grid screen content is loading.", - "name": "SetLoadingPoster", - "params": [ + "name": "y", + "type": "Integer" + }, { "default": null, - "description": "The URL of the standard definition poster image to be shown.", + "description": "The region to be used to define the sprite's bitmap.", "isRequired": true, - "name": "sdPosterUrl", - "type": "String" + "name": "region", + "type": "Object" }, { "default": null, - "description": "The URL of the high definition poster image to be shown.", + "description": "The z-coordinate of the sprite.", "isRequired": true, - "name": "hdPosterUrl", - "type": "String" + "name": "z", + "type": "Integer" } ], - "returnType": "Void" + "returnDescription": "Returns an [roSprite](/docs/references/brightscript/components/rosprite.md \"roSprite\") object.", + "returnType": "Object" }, { - "description": "Controls how the remote \"up\" key behaves when it is pressed with the top row selected.", - "name": "SetUpBehaviorAtTopRow", + "description": "Sets the destBitmap ([roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or [roScreen](https://developer.roku.com/docs/references/brightscript/components/roscreen.md\"roScreen\")) and the background color.", + "name": "SetDrawTo", "params": [ { "default": null, - "description": "Specifies the behavior of the \"up\" key. This may be one of the following values: * \"stop\": stop scrolling up, and stay on the roGridScreen (default behavior) * \"exit\": exit the roGridScreen", + "description": "The bitmap to be drawn.", "isRequired": true, - "name": "behavior", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the number of rows in the grid. The number of rows must be set before calling other functions to populate grid data.", - "name": "SetupLists", - "params": [ + "name": "destBitmap", + "type": "Object" + }, { "default": null, - "description": "The number of rows to be used in the grid.", + "description": "The background color to be used.", "isRequired": true, - "name": "count", + "name": "rgbaBackground", "type": "Integer" } ], "returnType": "Void" - }, - { - "description": "Displays or refreshes the screen after the initial creation or the state changes.", - "name": "Show", - "params": [], - "returnDescription": "A flag indicating whether the screen is displayed (true).", - "returnType": "Boolean" - }, - { - "description": "Displays a semi-transparent popup message box to the user in the center of the screen over the poster screen. This is generally used for error messages.", - "name": "ShowMessage", - "params": [ - { - "default": null, - "description": "The text to be displayed in the popup message box.", - "isRequired": true, - "name": "message", - "type": "String" - } - ], - "returnType": "Void" } ], - "name": "ifGridScreen", + "name": "ifCompositor", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifgridscreen.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifcompositor.md" }, - "ifhdmistatus": { + "ifdatetime": { "implementers": [ { - "description": "The HDMI status component provides an interface to the current HDMI operational status", - "name": "roHdmiStatus", - "url": "https://developer.roku.com/docs/references/brightscript/components/rohdmistatus.md" + "description": "The roDateTime provides an interface to obtain the current date/time for the player and manipulate date/times", + "name": "roDateTime", + "url": "https://developer.roku.com/docs/references/brightscript/components/rodatetime.md" } ], "methods": [ { - "description": "Returns the version number of the currently established HDCP link.", - "name": "GetHdcpVersion", - "params": [], - "returnDescription": "The version number of the HDCP link: 1.4 or 2.2.", - "returnType": "String" - }, - { - "description": "Checks whether the HDMI or MHL output is connected to an HDMI device.", - "name": "IsConnected", - "params": [], - "returnDescription": "A flag indicating whether the HDMI or MHL output is connected to an HDMI device.", - "returnType": "Boolean" - }, - { - "description": "Checks if the current established HDCP link is the specified version or higher", - "name": "IsHdcpActive", + "description": "Returns the date/time formatted string.", + "name": "AsDateString", "params": [ { "default": null, - "description": "The HDCP link version to be checked (for example, \"1.4\" or \"2.2\").", + "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": "version", + "name": "format", "type": "String" } ], - "returnDescription": "A flag indicating whether the current established HDCP link is the specified `version`.", - "returnType": "Boolean" - } - ], - "name": "ifHdmiStatus", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifhdmistatus.md" - }, - "ifhmac": { - "implementers": [ - { - "description": "The HMAC component provides an interface to the OpenSSL HMAC functions", - "name": "roHMAC", - "url": "https://developer.roku.com/docs/references/brightscript/components/rohmac.md" - } - ], - "methods": [ - { - "description": "Returns an [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md\"roByteArray\") containing the final MAC.", - "name": "Final", - "params": [], - "returnDescription": "The final MAC.", - "returnType": "Object" + "returnDescription": "A dateString corresponding to the specified format.", + "returnType": "String" }, { - "description": "Digests the data in an array generates a MAC. Calling this method is the same as making the following calls:", - "name": "Process", - "params": [ - { - "default": null, - "description": "An [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md\"roByteArray\") with the data to be digested.", - "isRequired": true, - "name": "message", - "type": "Object" - } - ], - "returnDescription": "An [roByteArray](/docs/references/brightscript/components/robytearray.md \"roByteArray\") containing the generated MAC.", - "returnType": "Object" + "description": "Returns the date/time in long-date format.", + "name": "AsDateStringNoParam", + "params": [], + "returnDescription": "A date/time string in long-date format (for example, Tuesday October 9, 2012)", + "returnType": "String" }, { - "description": "Re-initializes an existing HMAC context. This can be called to reuse an existing roHMAC object to authenticate new data.", - "name": "Reinit", + "description": "Returns the date/time as the number of seconds from the Unix epoch (00:00:00 1/1/1970 GMT).", + "name": "AsSeconds", "params": [], - "returnDescription": "An integer indicating whether the function succeeded (0) or failed (1).", + "returnDescription": "Number of seconds as Integer.", "returnType": "Integer" }, { - "description": "Initializes new HMAC context.", - "name": "Setup", + "description": "Sets the date/time using a string in the ISO 8601 format. For example \"YYYY-MM-DD HH:MM:SS\" e.g \"2009-01-01 01:00:00.000\" or \"2009-01-01T01:00:00.000\".", + "name": "FromISO8601String", "params": [ { "default": null, - "description": "Selects one of the supported digest algorithms, as documented in [roEVPDigest](https://developer.roku.com/docs/references/brightscript/components/roevpdigest.md\"roEVPDigest\").", + "description": "The ISO-8601 string to be used to set the date and time.", "isRequired": true, - "name": "digestType", + "name": "dateString", "type": "String" - }, - { - "default": null, - "description": "An roByteArray containing the key for the MAC.", - "isRequired": true, - "name": "key", - "type": "Object" } ], - "returnDescription": "An integer indicating whether the function succeeded (0) or failed (1).", - "returnType": "Integer" + "returnType": "Void" }, { - "description": "Adds more data to be digested. The data in the array is added to the current digest.", - "name": "Update", + "description": "Sets the date/time value using the number of seconds from the Unix epoch.", + "name": "FromSeconds", "params": [ { "default": null, - "description": "An [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md\"roByteArray\") with the additional data to be digested.", - "isRequired": true, - "name": "partialMesssage", - "type": "Object" - } - ], - "returnType": "Void" - } - ], - "name": "ifHMAC", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifhmac.md" - }, - "ifhttpagent": { - "description": "The ifHttpAgent methods modify the way that URLs are accessed", - "implementers": [ - { - "description": "The Application Manager APIs set application level attributes, which mostly affect the look-and-feel of the application", - "name": "roAppManager", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifappmanager.md" - }, - { - "description": "The Audio Player object provides the ability to setup the playing of a series of audio streams", - "name": "roAudioPlayer", - "url": "https://developer.roku.com/docs/references/brightscript/components/roaudioplayer.md" - }, - { - "description": "The Grid Screen provides a graphical display of poster art from multiple content categories from within a single screen", - "name": "roGridScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rogridscreen.md" + "description": "The number of seconds from the Unix epoch.", + "isRequired": true, + "name": "numSeconds", + "type": "Integer" + } + ], + "returnType": "Void" }, { - "description": "The roImageCanvas component provides an interface to render graphic elements at specific spots on the screen", - "name": "roImageCanvas", - "url": "https://developer.roku.com/docs/references/brightscript/components/roimagecanvas.md" + "description": "Returns the date/time value's day of the month.", + "name": "GetDayOfMonth", + "params": [], + "returnDescription": "Month value as an Integer (1-31).", + "returnType": "Integer" }, { - "description": "The List Screen provides a graphical display of content in a vertical list within a single screen", - "name": "roListScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rolistscreen.md" + "description": "Returns the date/time value's day of week.", + "name": "GetDayOfWeek", + "params": [], + "returnDescription": "Day value as an Integer (Sunday=0, Monday=1, ..., Saturday=6).", + "returnType": "Integer" }, { - "description": "The Paragraph Screen provides a way to display text and selection choices to the user", - "name": "roParagraphScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/roparagraphscreen.md" + "description": "Returns the date/time value's hour within the day.", + "name": "GetHours", + "params": [], + "returnDescription": "Hour value as an Integer (0-23)", + "returnType": "Integer" }, { - "description": "The Poster Screen provides a graphical display of poster art for content selection or can be used as a submenu to provide hierarchical structure to the application", - "name": "roPosterScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/roposterscreen.md" + "description": "Returns the date/time value's last day of the month.", + "name": "GetLastDayOfMonth", + "params": [], + "returnDescription": "Day as an Integer (28-31)", + "returnType": "Integer" }, { - "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", - "name": "roSGNode", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" + "description": "Returns the date/time value's millisecond within the second.", + "name": "GetMilliseconds", + "params": [], + "returnDescription": "Millisecond value as an Integer (0-999).", + "returnType": "Integer" }, { - "description": "The Slide Show screen provides the ability to setup a photo slide show to playback a series of images", - "name": "roSlideShow", - "url": "https://developer.roku.com/docs/references/brightscript/components/roslideshow.md" + "description": "Returns the date/time value's minute within the hour.", + "name": "GetMinutes", + "params": [], + "returnDescription": "Minute value as an Integer (0-59)", + "returnType": "Integer" }, { - "description": "The Springboard Screen shows detailed information about an individual piece of content and provides options for actions that may be taken on that content", - "name": "roSpringboardScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rospringboardscreen.md" + "description": "Returns the date/time value's month.", + "name": "GetMonth", + "params": [], + "returnDescription": "Month value as an Integer (1=Jan, 12=Dec).", + "returnType": "Integer" }, { - "description": "roTextScreen provides a way of displaying large amounts of scrollable text", - "name": "roTextScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rotextscreen.md" + "description": "Returns the date/time value's second within the minute.", + "name": "GetSeconds", + "params": [], + "returnDescription": "Second value as an Integer (0-59).", + "returnType": "Integer" }, { - "description": "The Texture Manager provides a set of API's for managing an roBitmap cache.", - "name": "roTextureManager", - "url": "https://developer.roku.com/docs/references/brightscript/components/rotexturemanager.md" + "description": "Returns the offset in minutes from the system time zone to UTC. For example, if the system time zone is in PDT / UTC-7 the value returned would be 420.", + "name": "GetTimeZoneOffset", + "params": [], + "returnDescription": "Minutes of offset as Integer.", + "returnType": "Integer" }, { - "description": "An roTextureRequest is used to make requests to the roTextureManager", - "name": "roTextureRequest", - "url": "https://developer.roku.com/docs/references/brightscript/components/rotexturerequest.md" + "description": "Returns the day of the week.", + "name": "GetWeekday", + "params": [], + "returnDescription": "Week value as a String (e.g. \"Monday\").", + "returnType": "String" }, { - "description": "A roUrlTransfer object transfers data to or from remote servers specified by URLs", - "name": "roUrlTransfer", - "url": "https://developer.roku.com/docs/references/brightscript/components/rourltransfer.md" + "description": "Return Value", + "name": "GetYear", + "params": [], + "returnType": "Integer" }, { - "description": "The roVideoPlayer component implements a video player with more programmatic control, but less user control than the roVideoScreen component", - "name": "roVideoPlayer", - "url": "https://developer.roku.com/docs/references/brightscript/components/rovideoplayer.md" + "description": "Sets the date/time value to the current UTC date and time.", + "name": "Mark", + "params": [], + "returnType": "Void" }, { - "description": "The Video Screen object implements the video playback portion of the user interface", - "name": "roVideoScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rovideoscreen.md" - } - ], - "methods": [ - { - "description": "Adds the specified cookies to the cookie cache.", - "name": "AddCookies", - "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: \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" - } - ], - "returnDescription": "A flag indicating whether the cookies were successfully added to the cache.", - "returnType": "Boolean" + "description": "Returns an ISO 8601 representation of the date/time value.", + "name": "ToISOString", + "params": [], + "returnDescription": "ISO 8601 as String, e.g. \"2021-03-25T18:53:03+0000\"", + "returnType": "String" }, { - "name": "AddHeader", + "description": "Returns an ISO 8601 representation of the date/time value with milliseconds precision.", + "name": "ToISOString", "params": [ { "default": null, - "description": "The name of the HTTP header to be added to the list of headers. If \"x-roku-reserved-dev-id\" is passed as the name, the value parameter is ignored and in its place, the devid of the currently running channel is used as the value. This allows the developer's server to know which client app is talking to it. Any other headers with names beginning with \"x-roku-reserved-\" are reserved and may not be set.", - "isRequired": true, - "name": "name", - "type": "String" - }, - { - "default": null, - "description": "The value of the HTTP header being added.", "isRequired": true, - "name": "value", + "name": "format", "type": "String" } ], - "returnDescription": "A flag indicating whether the HTTP header was successfully added.", - "returnType": "Boolean" + "returnDescription": "ISO 8601 as String with milliseconds precision, e.g. \"2021-03-25T18:53:03.220+0000\"", + "returnType": "String" }, { - "description": "Removes all cookies from the cookie cache.", - "name": "ClearCookies", + "description": "Offsets the date/time value from an assumed UTC date/time to a local date/time using the system time zone setting. This function is not idempotent, and multiple calls will do multiple timezone adjustments to the time yielding an incorrect result.", + "name": "ToLocalTime", "params": [], "returnType": "Void" - }, + } + ], + "name": "ifDateTime", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifdatetime.md" + }, + "ifdevicecrypto": { + "implementers": [ { - "description": "Enables any Set-Cookie headers returned from the request to be interpreted and the resulting cookies to be added to the cookie cache.", - "name": "EnableCookies", - "params": [], - "returnType": "Void" - }, + "description": "Encrypts and decrypts data on a device using a key that is unique per channel, device, or model.", + "name": "roDeviceCrypto", + "url": "https://developer.roku.com/docs/references/brightscript/components/rodevicecrypto.md" + } + ], + "methods": [ { - "name": "GetCookies", + "description": "Decrypts data stored on a device that was previously encoded with the [**Encrypt()**](#encrypt-input-as-robytearray-string-as-enctype-as-robytearray) method.", + "name": "Decrypt", "params": [ { "default": null, - "description": "The domain of the cookies to be retrieved. To match all domains, provide an empty string.", + "description": "The previously encoded data to be decrypted.", "isRequired": true, - "name": "domain", - "type": "String" + "name": "EncryptedData", + "type": "roByteArray" }, { "default": null, - "description": "The path of the cookies to be retrieved.", + "description": "The encryption key type, which is a string that may be set to \"channel\", \"device\", or \"model\": ${encTypeValues-2}", "isRequired": true, - "name": "path", + "name": "encType", "type": "String" } ], - "returnDescription": "An roArray of roAssociativeArrays, where each associative array represents a cookie. The roAssociativeArrays contain the following key-value pairs:", - "returnType": "Object" - }, - { - "description": "Initializes the object to be sent to the Roku client certificate.", - "name": "InitClientCertificates", - "params": [], - "returnDescription": "A flag indicating whether the object sent to to the Roku client certificate was successfully initialized.", - "returnType": "Boolean" + "returnDescription": "An roByteArray containing the decrypted data.", + "returnType": "roByteArray" }, { - "description": "Sets the maximum depth of the certificate chain that will be accepted.", - "name": "SetCertificatesDepth", + "description": "Encrypts data on a device that is unique per device, channel, or model.", + "name": "Encrypt", "params": [ { "default": null, - "description": "The maximum depth to be used.", + "description": "The data to be encrypted.", "isRequired": true, - "name": "depth", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "name": "SetCertificatesFile", - "params": [ + "name": "input", + "type": "roByteArray" + }, { "default": null, - "description": "The directory path of the .pem file to be used.", + "description": "The encryption key type, which is a string that may be set to \"channel\", \"device\", or \"model\": \n| encType | Description |\n| ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| device | Encrypt data with a device unique key. This can be used to implement a secure storage-like algorithm. |\n| channel | Encrypt data with a channel unique key This enables you to provision credentials, API tokens, or other data from the cloud to devices securely. Channels signed with same signing key will share the encryption key. |\n| model | Encrypt channel with a model unique key This is similar to the \"channel\" encryption type, but with the scope limited to a specific model. |\n", "isRequired": true, - "name": "path", + "name": "encType", "type": "String" } ], - "returnDescription": "A flag indicating whether the certificate was successfully set.", - "returnType": "Boolean" - }, - { - "description": "Sets the HTTP headers to be sent in the HTTP request.", - "name": "SetHeaders", - "params": [ - { - "default": null, - "description": "An associative array containing the HTTP headers and values to be included in the HTTP request. If \"x-roku-reserved-dev-id\" is passed as a key, the value parameter is ignored and in its place, the devid of the currently running channel is used as the value. This allows the developer's server to know which client app is talking to it. Any other headers with names beginning with \"x-roku-reserved-\" are reserved and may not be set.", - "isRequired": true, - "name": "nameValueMap", - "type": "Object" - } - ], - "returnDescription": "A flag indicating whether the HTTP header was successfully set.", - "returnType": "Boolean" + "returnDescription": "An roByteArray containing the encrypted data.", + "returnType": "roByteArray" } ], - "name": "ifHttpAgent", + "name": "ifDeviceCrypto", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifhttpagent.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifdevicecrypto.md" }, - "ifimagecanvas": { - "deprecatedDescription": "This interface is deprecated.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This interface is deprecated.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", + "ifdeviceinfo": { "implementers": [ { - "description": "The roImageCanvas component provides an interface to render graphic elements at specific spots on the screen", - "name": "roImageCanvas", - "url": "https://developer.roku.com/docs/references/brightscript/components/roimagecanvas.md" + "description": "The roDeviceInfo component provides an interface to obtain attributes about the device", + "name": "roDeviceInfo", + "url": "https://developer.roku.com/docs/references/brightscript/components/rodeviceinfo.md" } ], - "isDeprecated": true, "methods": [ { - "description": "Adds a button to the specified screen.", - "name": "AddButton", + "description": "Checks if the device can decode and play the specified audio format.", + "name": "CanDecodeAudio", "params": [ { "default": null, - "description": "The ID of the button to be added to the screen.", + "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”, \"ac4\" | 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": "id", - "type": "Integer" - }, + "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.", + "returnType": "Object" + }, + { + "description": "Checks whether the device can decode and play the specified video format.", + "name": "CanDecodeVideo", + "params": [ { "default": null, - "description": "The title of the button to be added to the screen.", + "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": "title", - "type": "String" + "name": "video_format", + "type": "Object" } ], - "returnDescription": "A flag indicating whether the button was successfully added.", - "returnType": "Boolean" + "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": "Turns updates on or off. Surrounding changes to several layers with AllowUpdates(false) and AllowUpdates(true) calls makes complex display modification atomic. This gives the application protection against the image canvas trying to render a partial update", - "name": "AllowUpdates", + "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.", + "name": "EnableAppFocusEvent", "params": [ { "default": null, - "description": "Set this flag to true in order to enable updates.", + "description": "A flag specifying whether to enable/disable system overlay event notifications.", "isRequired": true, - "name": "updatesEnabled", + "name": "enable", "type": "Boolean" } ], - "returnType": "Void" - }, - { - "name": "Clear", - "params": [], - "returnType": "Void" - }, - { - "description": "Clears all of the buttons from the screen and resets the array of buttons back to default with no buttons set.", - "name": "ClearButtons", - "params": [], - "returnType": "Void" + "returnDescription": "A flag indicating whether the system overlay event notifications are enabled (true) or disabled (false).", + "returnType": "Dynamic" }, { - "description": "Clears all content from a layer (see [SetLayer](#setlayerzorder-as-integer-contentmetadata-as-object-as-void) for the layer definition).", - "name": "ClearLayer", + "description": "Notifies the channel when the screen reader changes. This function enables the sending of an [roDeviceInfoEvent](https://developer.roku.com/docs/references/brightscript/events/rodeviceinfoevent.md when the screen reader changes. To receive events, you 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", + "name": "EnableAudioGuideChangedEvent", "params": [ { "default": null, - "description": "The layer to be cleared.", + "description": "A flag indicating whether to enable/disable screen reader change event notifications.", "isRequired": true, - "name": "zOrder", - "type": "Integer" + "name": "enable", + "type": "Boolean" } ], - "returnType": "Void" - }, - { - "description": "Closes the screen and deletes the associated object. This method is useful for avoiding screen flicker when the display order of your screens does not resemble a stack", - "name": "Close", - "params": [], - "returnType": "Void" - }, - { - "description": "Returns the width and height of the image canvas.", - "name": "GetCanvasRect", - "params": [], - "returnDescription": "An roAssociativeArray with names w for width and h for height.", - "returnType": "Object" - }, - { - "description": "Purges the internal cache of all images related to URLs in the current content list. If the content list is empty, then calling this method has no affect.", - "name": "PurgeCachedImages", - "params": [], - "returnType": "Void" + "returnDescription": "A flag indicating whether screen reader change event notifications are enabled (true) or disabled (false).", + "returnType": "Dynamic" }, { - "description": "Redraws the screen. Each call to this method replaces the previous content metadata that previously existed at that z-order layer.", - "name": "SetLayer", + "description": "Notifies the channel when the audio or video codec changes. This function enables the sending of an [roDeviceInfoEvent](https://developer.roku.com/docs/references/brightscript/events/rodeviceinfoevent.md when the codec changes. To receive events, you 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", + "name": "EnableCodecCapChangedEvent", "params": [ { "default": null, - "description": "A z-order specifier with higher z-orders closer to the viewer. Negative z-orders are \"behind the display\" and are thus invisible.", - "isRequired": true, - "name": "zOrder", - "type": "Integer" - }, - { - "default": null, - "description": "An [roAssociativeArray](https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md\"roAssociativeArray\") ([Content Meta-Data](/docs/developer-program/getting-started/architecture/content-metadata.md \" Content Meta-Data\") objects) representing the information for each image to be displayed on the [roImageCanvas](https://developer.roku.com/docs/references/brightscript/components/roimagecanvas.md\"roImageCanvas\")", + "description": "A flag indicating whether to enable/disable codec change event notifications.", "isRequired": true, - "name": "contentMetaData", - "type": "Object" + "name": "enable", + "type": "Boolean" } ], + "returnDescription": "A flag indicating whether codec change event notifications are enabled (true) or disabled (false).", "returnType": "Void" }, { - "description": "This method is similar to the [SetLayer()](#setlayerzorder-as-integer-contentlist-as-object-as-void) method, except it takes an [roArray](https://developer.roku.com/docs/references/brightscript/components/roarray.md\"roArray\") of [roAssociativeArrays](https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md\"roAssociativeArrays\") instead of just a single [roAssociativeArray](https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md\"roAssociativeArray\") of [Content Meta-Data](/docs/developer-program/getting-started/architecture/content-metadata.md \" Content Meta-Data\").", - "name": "SetLayer", + "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.", + "name": "EnableInternetStatusEvent", "params": [ { "default": null, - "description": "A z-order specifier with higher z-orders closer to the viewer. Negative z-orders are \"behind the display\" and are thus invisible.", - "isRequired": true, - "name": "zOrder", - "type": "Integer" - }, - { - "default": null, - "description": "An [roArray](https://developer.roku.com/docs/references/brightscript/components/roarray.md\"roArray\") of [roAssociativeArrays](https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md\"roAssociativeArrays\") representing the information for each image to be displayed on the [roImageCanvas](https://developer.roku.com/docs/references/brightscript/components/roimagecanvas.md\"roImageCanvas\").", + "description": "A flag specifying whether to enable/disable network connection status event notifications.", "isRequired": true, - "name": "contentList", - "type": "Object" + "name": "enable", + "type": "Boolean" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether network connection status event notifications are enabled (true) or disabled (false).", + "returnType": "Boolean" }, { - "description": "Waits to draw the screen until all images in the content-meta-data array are downloaded, decoded, and loaded into memory. There is a large performance penalty for setting this to true", - "name": "SetRequireAllImagesToDraw", + "description": "Notifies the channel when a network 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. To receive events, you 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", + "name": "EnableLinkStatusEvent", "params": [ { "default": null, - "description": "A flag enabling the **requireAllImages** feature. It is recommended that this flag be disabled (false) for better performance.", + "description": "A flag specifying whether to enable/disable network connection status event notifications.", "isRequired": true, - "name": "requireAllImages", + "name": "enable", "type": "Boolean" } ], - "returnType": "Void" - }, - { - "description": "Displays or refreshes the screen after initial creation or state changes.", - "name": "Show", - "params": [], - "returnDescription": "A flag indicating whether the screen is displayed.", + "returnDescription": "A flag indicating whether network connection status event notifications are enabled (true) or disabled (false).", "returnType": "Boolean" }, { - "description": "Swaps the content metadata stored in one zOrder with another. This enables changing the layer that is displayed \"On Top\". This method can be used to swap empty (unspecified) layers", - "name": "SwapLayers", + "description": "Notifies the channel when a lowGeneralMemoryLevel event occurs. This function enables the sending of an [roDeviceInfoEvent](https://developer.roku.com/docs/references/brightscript/events/rodeviceinfoevent.md when a low general memory event occurs.", + "name": "EnableLowGeneralMemoryEvent", "params": [ { "default": null, - "description": "The current zOrder that is displayed on top.", "isRequired": true, - "name": "zOrderA", - "type": "Integer" - }, + "name": "enabled", + "type": "Boolean" + } + ], + "returnDescription": "A flag indicating whether lowGeneralMemoryLevel event notifications are enabled (true) or disabled (false).", + "returnType": "Dynamic" + }, + { + "description": "Notifies the channel when a screensaver exit event occurs. This function enables the sending of an [roDeviceInfoEvent](https://developer.roku.com/docs/references/brightscript/events/rodeviceinfoevent.md when a user has exited the screensaver.", + "name": "EnableScreensaverExitedEvent", + "params": [ { "default": null, - "description": "The new zOrder to be displayed on top.", + "description": "A flag specifying whether to enable/disable screensaver exit event notifications.", "isRequired": true, - "name": "zOrderB", - "type": "Integer" + "name": "enable", + "type": "Boolean" } ], - "returnType": "Void" - } - ], - "name": "ifImageCanvas", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifimagecanvas.md" - }, - "ifimagemetadata": { - "implementers": [ + "returnDescription": "A flag indicating whether screensaver exit event notifications are enabled (true) or disabled (false).", + "returnType": "Dynamic" + }, { - "description": "The roImageMetadata component provides developers access to image file metadata included in many .jpg EXIF headers", - "name": "roImageMetadata", - "url": "https://developer.roku.com/docs/references/brightscript/components/roimagemetadata.md" - } - ], - "methods": [ + "description": "Forces a new internet connection check. A new check will only be initiated if the cached internet status is older than 10 seconds.", + "name": "ForceInternetStatusCheck", + "params": [], + "returnDescription": "True indicates only that a new internet check has been initiated; otherwise, false. To get the actual internet connection status, use the [**GetInternetStatus()**](getinternetstatus-as-boolean) method.", + "returnType": "Boolean" + }, { - "description": "Returns a set of simple and common image metadata", - "name": "GetMetadata", + "deprecatedDescription": "**This method is deprecated**.\n\nDevelopers must update their channels to use the [GetRIDA()](/docs/references/brightscript/interfaces/ifdeviceinfo.md#getrida-as-string) method to get the unique identifier.\n", + "description": "Returns a unique identifier for the device. This identifier is persistent but can be reset by the user from the device's Settings menu or by performing a factory reset on the device.", + "isDeprecated": true, + "name": "GetAdvertisingId", "params": [], - "returnDescription": "An associative array containing the following key-value pairs with image metadata:", - "returnType": "Object" + "returnDescription": "A Universally Unique Identifier (UUID) as specified in IETF-RFC 4122 with 36 characters (32 alphanumeric characters and four hyphens). The characters are grouped in the form 8-4-4-4-12, for example \"123e4567-e89b-12d3-a456-426655440000\"", + "returnType": "String" }, { - "description": "Returns all of the raw EXIF metadata.", - "name": "GetRawExif", + "deprecatedDescription": "**This method is deprecated**.\n\nChannel developers should use the [CanDecodeAudio()](#candecodeaudioaudio_format-as-object-as-object) function instead.\n", + "description": "Lists each audio decoder supported by the device, with up to four numbers describing the decoder from the EDID SAD (Short Audio Descriptor). Each value is of the form \"::::\"", + "isDeprecated": true, + "name": "GetAudioDecodeInfo", "params": [], - "returnDescription": "An associative array with all of the raw EXIF metadata. See the [EXIF section](/docs/references/brightscript/components/roimagemetadata.md#exif-background) for details about EXIF metadata.", + "returnDescription": "An associative array with EDID (EIA.2FCEA-861) audio decoder information for the device connected to the HDMI port (or the device itself for a Roku TV).", "returnType": "Object" }, { - "description": "Returns the raw data for an Exif tag. The method provides direct access to a specific raw EXIF tag", - "name": "GetRawExifTag", - "params": [ - { - "default": null, - "description": "The ifd of the Exif tag.", - "isRequired": true, - "name": "ifd", - "type": "Integer" - }, - { - "default": null, - "description": "The tag number of the Exif tag.", - "isRequired": true, - "name": "tagnum", - "type": "Integer" - } - ], - "returnDescription": "The raw data of an Exif tag. It the Exif tag doesn't exist it returns invalid.", - "returnType": "Dynamic" + "description": "Checks for the type of audio output.", + "name": "GetAudioOutputChannel", + "params": [], + "returnDescription": "The selected audio output, which may be one of the following values:", + "returnType": "String" }, { - "description": "Returns a thumbnail image if one is embedded in the image metadata and the corresponding associative array with image data. This only generates a thumbnail if one exists.", - "name": "GetThumbnail", + "description": "Determines whether global captions are turned on or off, or are in instant replay mode.", + "name": "GetCaptionsMode", "params": [], - "returnDescription": "An associative array that with **bytes** and **type** keys with the image data:", - "returnType": "Object" + "returnDescription": "The current global setting for the Mode property, which may be one of the following values:", + "returnType": "String" }, { - "description": "Sets the URL to the image. Only file URLs are supported", - "name": "SetUrl", + "description": "Checks the current value of the specified global setting property.", + "name": "GetCaptionsOption", "params": [ { "default": null, - "description": "The URL of the image.", + "description": "The global setting property to be checked, which may be one of the following values: * Mode * Text/Font * Text/Effect * Text/Size * Text/Color * Text/Opacity * Background/Color * Background/Opacity * Window/Color * Window/Opacity * Track * Track\\_Composite * Track\\_Analog * Muted", "isRequired": true, - "name": "url", + "name": "option", "type": "String" } ], - "returnType": "Void" - } - ], - "name": "ifImageMetaData", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifimagemetadata.md" - }, - "ifinput": { - "implementers": [ + "returnDescription": "The value of the specified global setting property, which may be as follows:", + "returnType": "String" + }, { - "description": "An roInput object can be used to receive events sent from a network client using the External Control Protocol (ECP), as described in External Control API", - "name": "roInput", - "url": "https://developer.roku.com/docs/references/brightscript/components/roinput.md" - } - ], - "methods": [ + "description": "Returns a unique identifier for the device. The ID is persistent and cannot be reset. This value can be used to manage or identify devices linked to the channel’s content services.", + "name": "GetChannelClientId", + "params": [], + "returnDescription": "A unique device identifier. This identifier is different across channels so each channel will get a different identifier when calling this function", + "returnType": "String" + }, { - "description": "Registers a channel to receive `roInput transport` events, which are voice commands sent via the Roku remote control, Roku mobile app, or a virtual assistant such as Amazon Alexa or Google Assistant.", - "name": "EnableTransportEvents", + "deprecatedDescription": "**This method is deprecated**.\n\nDevelopers must update their channels to use the [GetChannelClientId](/docs/references/brightscript/interfaces/ifdeviceinfo.md#getchannelclientid-as-string) method to get the unique identifier.\n", + "description": "Returns a unique identifier for the device.", + "isDeprecated": true, + "name": "GetClientTrackingId", "params": [], - "returnDescription": "A flag indicating whether transport event notifications were successfully registered.", - "returnType": "Boolean" + "returnDescription": "A unique device identifier. This identifier is different across channels so each channel will get a different identifier when calling this function", + "returnType": "String" }, { - "description": "Marks a transport command as handled, unhandled, or handled with an error.", - "name": "EventResponse", - "params": [ - { - "default": null, - "isRequired": true, - "name": "aa", - "type": "roAssociativeArray" - } - ], - "returnDescription": "A flag indicating whether the event response operation was successful.", - "returnType": "Void" + "description": "Checks whether the system settings for Time (**Setting > System > Time**) is set to a 12 or 24-hour format.", + "name": "GetClockFormat", + "params": [], + "returnDescription": "The time format:", + "returnType": "String" }, { - "description": "Returns the message port (if any) currently associated with the object.", - "name": "GetMessagePort", + "description": "Checks for the information associated with the hardware's connection", + "name": "GetConnectionInfo", "params": [], - "returnDescription": "The message port value.", + "returnDescription": "An associative array with the following key-value pairs:", "returnType": "Object" }, { - "description": "Sets the roMessagePort to be used to receive events.", - "name": "SetMessagePort", - "params": [ - { - "default": null, - "description": "The port to be used to receive events.", - "isRequired": true, - "name": "port", - "type": "Object" - } - ], - "returnType": "Void" - } - ], - "name": "ifInput", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifinput.md" - }, - "ifint": { - "description": "> Interface equivalent for intrinsic type 'Integer'", - "implementers": [ - { - "description": "Object equivalent for intrinsic type Integer", - "name": "roInt", - "url": "https://developer.roku.com/docs/references/brightscript/components/roint.md" - } - ], - "methods": [ - { - "description": "Gets the integer value stored in the calling Integer object.", - "name": "GetInt", + "description": "Checks whether the device has a WiFi or wired connection, or if it is not connected through any type of network.", + "name": "GetConnectionType", "params": [], - "returnDescription": "The integer value stored in the calling Integer object.", - "returnType": "Integer" + "returnDescription": "The type of internet connection the device is using. This may be one of the following values:", + "returnType": "String" }, { - "description": "Sets the calling Integer object to the specified integer value.", - "name": "SetInt", - "params": [ - { - "default": null, - "description": "The integer value to be set on the calling Integer object.", - "isRequired": true, - "name": "value", - "type": "Integer" - } - ], - "returnType": "Void" - } - ], - "name": "ifInt", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifint.md" - }, - "ifintops": { - "implementers": [ + "description": "Checks for the country code of the channel.", + "name": "GetCountryCode", + "params": [], + "returnDescription": "A value that indicates the Roku Channel Store associated with a user’s Roku account. Typically, the value returned will be an ISO 3166-1 (2-letter) country code representing the country. Alternatively, if the channel owner entered into an additional agreement to have the channel published to a curated [Roku Powered Channel Store](https://www.roku.com/roku-powered) instead of the user country, then a Roku Powered Channel Store Identifier will instead be returned. This may be one of the following values:", + "returnType": "String" + }, { - "description": "Object equivalent for intrinsic type Integer", - "name": "roInt", - "url": "https://developer.roku.com/docs/references/brightscript/components/roint.md" - } - ], - "methods": [ + "description": "Gets the current locale value based on the user's language setting.", + "name": "GetCurrentLocale", + "params": [], + "returnDescription": "A string representing the current locale based on the user's language setting. The string is an ISO 639-1 (2-letter) language code followed by an underscore and a ISO 3166-1 (2-letter) country code. This may be one of the following values:", + "returnType": "String" + }, { - "description": "Returns the integer value formatted as a decimal string. No leading space is appended for non-negative numbers.", - "name": "ToStr", + "deprecatedDescription": "**This method is deprecated**.\n\nDevelopers must update their channels to use the 32-character alphanumeric unique identifier returned by [GetChannelClientId()](/docs/references/brightscript/interfaces/ifdeviceinfo.md#getchannelclientid-as-string).\n", + "description": "Returns a string of 12 zeroes (it no longer returns the unique identifier for the channel on a device).", + "isDeprecated": true, + "name": "GetDeviceUniqueId", "params": [], - "returnDescription": "A decimal string.", + "returnDescription": "A string of 12 zeros (\"000000000000\")", "returnType": "String" - } - ], - "name": "ifIntOps", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifintops.md" - }, - "ifkeyboardscreen": { - "description": "> This component is no longer updated and will be deprecated on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", - "implementers": [ + }, { - "description": "The Keyboard Screen is designed to allow the user to enter an alpha-numeric string for searching, username/password registration or other purposes", - "name": "roKeyboardScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rokeyboardscreen.md" - } - ], - "methods": [ + "description": "Checks the aspect ratio for the display screen.", + "name": "GetDisplayAspectRatio", + "params": [], + "returnDescription": "The aspect ratio, which may be one of the following values:", + "returnType": "String" + }, { - "description": "Adds a button to the screen identified by the title and ID provided. The buttons are displayed at the bottom of the screen and appear in the order added. When the button is pressed, the script will receive an event from the application indicating the ID of the button pressed.", - "name": "AddButton", - "params": [ - { - "default": null, - "description": "The ID of the button to be added to the keyboard screen.", - "isRequired": true, - "name": "id", - "type": "Integer" - }, - { - "default": null, - "description": "The title of the button to be added to the keyboard screen.", - "isRequired": true, - "name": "title", - "type": "String" - } - ], - "returnType": "Void" + "description": "Checks the UI resolution of the device.", + "name": "GetDisplayMode", + "params": [], + "returnDescription": "The configured graphics layer resolution, which may be one of the following values:", + "returnType": "String" }, { - "description": "Removes all buttons from the keyboard screen.", - "name": "ClearButtons", + "description": "Checks for the display properties of the screen.", + "name": "GetDisplayProperties", "params": [], - "returnType": "Void" + "returnDescription": "An associative array with the following key/value pairs for the display properties of the screen:", + "returnType": "Object" }, { - "name": "Close", + "description": "Checks the display size of a screen.", + "name": "GetDisplaySize", "params": [], - "returnType": "Void" + "returnDescription": "An associative array with the screen width and height. Specifically, the keys \"w\" and \"h\" contain the values for the screen width and height respectively, either 720 and 480, or 1280 and 720", + "returnType": "Object" }, { - "description": "Returns the current value in the keyboard text entry field.", - "name": "GetText", + "description": "Gets the text corresponding to the button selection in the Player Info Settings/Display Type page.", + "name": "GetDisplayType", "params": [], - "returnDescription": "Current value string.", + "returnDescription": "The display type, which may be one of the following values:", "returnType": "String" }, { - "description": "Sets the descriptive text displayed to the user for prompting regarding the required entry.", - "name": "SetDisplayText", - "params": [ - { - "default": null, - "description": "The descriptive text to be displayed on the keyboard screen.", - "isRequired": true, - "name": "displayText", - "type": "String" - } - ], - "returnType": "Void" + "deprecatedDescription": "**This method is deprecated**.\n\nDevelopers must update their channels to use the replacement API [GetDrmInfoEx()](/docs/references/brightscript/interfaces/ifdeviceinfo.md#getdrminfoex-as-object) to return the supported DRM system and features.\n", + "description": "Checks for the supported DRM system and its features.", + "isDeprecated": true, + "name": "GetDrmInfo", + "params": [], + "returnDescription": "An associative array with the supported DRM system and features. For example, a device that supports PlayReady inside a trusted environment with secure stop returns:", + "returnType": "Object" }, { - "description": "Sets the maximum length for text entry. The default is 20 characters.", - "name": "SetMaxLength", - "params": [ - { - "default": null, - "description": "The maximum number of characters for text entered into the keyboard screen.", - "isRequired": true, - "name": "maxLen", - "type": "Integer" - } - ], - "returnType": "Void" + "name": "GetDrmInfoEx", + "params": [], + "returnType": "Object" }, { - "description": "Displays user-entered text with bullet characters.", - "name": "SetSecureText", - "params": [ - { - "default": null, - "description": "A flag indicating whether to obfuscate the text entered into the keyboard screen. If **isSecure** is set to true, the user-entered text is obscured with bullet characters. If false, it is treated as plain text. The default value is false.", - "isRequired": true, - "name": "isSecure", - "type": "Boolean" - } - ], - "returnType": "Void" + "description": "Checks the IP address assigned to the device by your internet service provider (ISP). This IP address is visible to the internet and all other computers outside your local network.", + "name": "GetExternalIp", + "params": [], + "returnDescription": "The external IP address assigned to the device.", + "returnType": "String" }, { - "name": "SetText", - "params": [ - { - "default": null, - "description": "The default text to be displayed in the keyboard entry field.", - "isRequired": true, - "name": "title", - "type": "String" - } - ], - "returnDescription": "The default text that was set for the keyboard entry field.", + "description": "Returns a string describing the device that may be used for network device selection. The string is subject to change and should not be used as a persistent key or ID", + "name": "GetFriendlyName", + "params": [], + "returnDescription": "A user-assigned device name or a description of the device such as model name and/or serial number.", "returnType": "String" }, { - "description": "Sets the title for the screen to the specified string.", - "name": "SetTitle", - "params": [ - { - "default": null, - "description": "The title to be displayed on the keyboard screen.", - "isRequired": true, - "name": "title", - "type": "String" - } - ], - "returnType": "Void" + "description": "Checks the general memory levels of the channel.", + "name": "GetGeneralMemoryLevel", + "params": [], + "returnDescription": "Returns the general memory levels of the channel, which may be one of the following values:", + "returnType": "String" }, { - "description": "Displays or refreshes the screen after creation or state changes.", - "name": "Show", + "description": "Checks the graphics platform of the device.", + "name": "GetGraphicsPlatform", + "params": [], + "returnDescription": "The device's graphics platform, which may be one of the following values:", + "returnType": "String" + }, + { + "description": "Checks the internet connection status of the device.", + "name": "GetInternetStatus", "params": [], - "returnDescription": "A flag indicating whether the screen was displayed.", + "returnDescription": "True if the cached internet status shows a connection; false, otherwise.", "returnType": "Boolean" - } - ], - "name": "ifKeyboardScreen", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifkeyboardscreen.md" - }, - "iflist": { - "implementers": [ + }, { - "description": "The list object implements the interfaces: ifList, ifArray, ifEnum and therefore can behave like an array that can dynamically add members", - "name": "roList", - "url": "https://developer.roku.com/docs/references/brightscript/components/rolist.md" + "description": "Checks the local IP address of the device.", + "name": "GetIPAddrs", + "params": [], + "returnDescription": "An associative array, where each key is the name of a network interface and the value is the IP-address of the interface. Typically, the associative array only contains a single interface.", + "returnType": "Object" }, { - "description": "Contains a list of roXML objects", - "name": "roXMLList", - "url": "https://developer.roku.com/docs/references/brightscript/components/roxmllist.md" - } - ], - "methods": [ + "description": "Checks if the device has an active connection.", + "name": "GetLinkStatus", + "params": [], + "returnDescription": "A flag indicating whether the device has an active connection.", + "returnType": "Boolean" + }, { - "description": "Adds an element to the head of the list.", - "name": "AddHead", - "params": [ - { - "default": null, - "isRequired": true, - "name": "tval", - "type": "Dynamic" - } - ], - "returnType": "Void" + "description": "Returns the model name of the Roku device. See the [Hardware Specification](/docs/specs/hardware.md) for the list of the current, updatable, and legacy Roku models.", + "name": "GetModel", + "params": [], + "returnDescription": "A five-character alphanumeric string (for example, \"3050X\") .", + "returnType": "String" }, { - "description": "Adds an element to the tail of the list.", - "name": "AddTail", - "params": [ - { - "default": null, - "isRequired": true, - "name": "tval", - "type": "Dynamic" - } - ], - "returnType": "Void" + "description": "Returns detailed information about the device model.", + "name": "GetModelDetails", + "params": [], + "returnDescription": "An associative array containing the following information about the device model:", + "returnType": "Object" }, { - "name": "Clear", + "description": "Returns the model display name of the Roku device.", + "name": "GetModelDisplayName", "params": [], - "returnType": "Void" + "returnDescription": "The model display name (for example, \"Roku 2 XD\")", + "returnType": "String" }, { - "description": "Returns the number of elements in the list.", - "name": "Count", + "description": "Returns a string describing the type of device. For future compatibility, the caller should by default assume \"STB\" when anything other than described value is returned", + "name": "GetModelType", "params": [], - "returnDescription": "The number of elements in the list.", - "returnType": "Integer" + "returnDescription": "The device type, which may be one of the following values:", + "returnType": "String" }, { - "description": "Retrieves the entry at the head of the list.", - "name": "GetHead", + "description": "Returns an roAssociativeArray containing the **major**, **minor**, **revision**, and **build** numbers of the Roku OS running on the device.", + "name": "GetOSVersion", "params": [], - "returnDescription": "The entry retrieved from the head of the list.", - "returnType": "Dynamic" + "returnDescription": "An roAssociativeArray containing the following fields:", + "returnType": "Object" }, { - "description": "Gets the entry at current index or position from the list and increments the index or position in the list.", - "name": "GetIndex", + "description": "Checks the three-letter ISO 639-2 language terminology code of the preferred caption language set on the Roku device.", + "name": "GetPreferredCaptionLanguage", "params": [], - "returnDescription": "The entry retrieved from the list. This method returns invalid if the end of the list is reached.", - "returnType": "Dynamic" + "returnDescription": "The three-letter ISO 639-2 language terminology code, which may be one of the following values:", + "returnType": "String" }, { - "description": "Retrieves the entry at the tail of the list.", - "name": "GetTail", + "description": "Returns a randomly generated unique identifier. Each time this function is called, a different identifier is returned", + "name": "GetRandomUUID", "params": [], - "returnDescription": "The entry retrieved from the tail of the list.", - "returnType": "Dynamic" + "returnDescription": "A Universally Unique Identifier (UUID) version 4 as specified in IETF-RFC 4122 with 36 characters (32 alphanumeric characters and four hyphens). The characters are grouped in the form 8-4-4-4-12, for example \"123e4567-e89b-12d3-a456-426655440000\"", + "returnType": "String" }, { - "description": "Removes the entry at the head of the list.", - "name": "RemoveHead", + "description": "Returns a unique identifier for the device.", + "name": "GetRIDA", "params": [], - "returnDescription": "The entry removed from the head of the list.", - "returnType": "Dynamic" + "returnDescription": "A Universally Unique Identifier (UUID). This identifier is persistent, but it can be reset by the user from the device's **Settings** menu or by performing a factory reset on the device", + "returnType": "String" + }, + { + "description": "Checks for the user interface sound effects volume level.", + "name": "GetSoundEffectsVolume", + "params": [], + "returnDescription": "The UI sounds effects volume as a percentage. A return value of 0 indicates that UI sound effects are muted, and a value of 100 indicates that they are set to the maximum volume level", + "returnType": "Integer" }, { - "description": "Removes the entry at the current index or position from the list and increments the index or position in the list.", - "name": "RemoveIndex", + "description": "Checks the supported graphics resolutions.", + "name": "GetSupportedGraphicsResolutions", "params": [], - "returnDescription": "The entry removed from the list. This method returns invalid if the end of the list is reached.", - "returnType": "Dynamic" + "returnDescription": "A list of associative arrays. Each associative array contains the following key/value pairs for the graphics resolutions:", + "returnType": "Object" }, { - "description": "Removes the entry at the tail of the list.", - "name": "RemoveTail", + "description": "Checks for the user's current system time zone setting.", + "name": "GetTimeZone", "params": [], - "returnDescription": "The entry removed from the tail of the list.", - "returnType": "Dynamic" + "returnDescription": "A string representing the user's current system time zone setting. For example, this method may return values such as:", + "returnType": "String" }, { - "description": "Resets the current index or position in list to the head element.", - "name": "ResetIndex", + "description": "Checks for the UI resolution of the screen.", + "name": "GetUIResolution", "params": [], - "returnDescription": "A flag indicating whether the index has been reset.", - "returnType": "Boolean" - } - ], - "name": "ifList", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iflist.md" - }, - "iflistscreen": { - "deprecatedDescription": "This interface is deprecated.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This interface is deprecated.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", - "implementers": [ - { - "description": "The List Screen provides a graphical display of content in a vertical list within a single screen", - "name": "roListScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rolistscreen.md" - } - ], - "isDeprecated": true, - "methods": [ + "returnDescription": "An associative array with the following key-value pairs describing the current UI resolution:", + "returnType": "Object" + }, { - "description": "Adds an item to the end of the list to be displayed on screen.", - "name": "AddContent", - "params": [ - { - "default": null, - "isRequired": true, - "name": "item", - "type": "Object" - } - ], - "returnType": "Void" + "description": "Returns the ISO 3166-1 (2-letter) country code associated with the user's Roku account.", + "name": "GetUserCountryCode", + "params": [], + "returnDescription": "An ISO 3166-1 (2-letter) country code.", + "returnType": "String" }, { - "description": "Clears all the content in the list and displays an empty screen.", - "name": "ClearContent", + "deprecatedDescription": "**This method is deprecated**.\n\nDevelopers must update their channels to use [GetOSVersion()](/docs/references/brightscript/interfaces/ifdeviceinfo.md#getosversion-as-object) method to get the current Roku OS version running on a device.\n", + "description": "Returns the version number of the device.", + "isDeprecated": true, + "name": "GetVersion", "params": [], - "returnType": "Void" + "returnDescription": "A 13-character string (for example \"034.08E01185A\"). The third through sixth characters are the major/minor version number (\"4.08\") and the ninth through twelfth are the build number (\"1185\")", + "returnType": "String" }, { - "description": "Closes the screen and deletes the associated object. This is useful for avoiding screen flicker when the display order of your screens does not resemble a stack.", - "name": "Close", + "deprecatedDescription": "**This method is deprecated**.\n\nChannel developers should use the [CanDecodeVideo()](#candecodevideovideo_format-as-object-as-object) function instead.\n", + "description": "See [http://en.wikipedia.org/wiki/Extended\\_display\\_identification\\_data#EIA.2FCEA-861\\_extension\\_block](http://en.wikipedia.org/wiki/Extended_display_identification_data#EIA.2FCEA-861_extension_block) for an explanation of the information returned.", + "isDeprecated": true, + "name": "GetVideoDecodeInfo", "params": [], - "returnType": "Void" + "returnDescription": "An associative array with the EDID (EIA.2FCEA-861) information describing the video display", + "returnType": "Object" }, { - "description": "Removes an item from the list. The screen refreshes immediately if the item is visible", - "name": "RemoveContent", - "params": [ - { - "default": null, - "description": "The index of the item to be removed from the list. If the index is not within the range of 0 – list size, this function has no effect.", - "isRequired": true, - "name": "index", - "type": "Integer" - } - ], - "returnType": "Void" + "description": "Checks the video playback resolution.", + "name": "GetVideoMode", + "params": [], + "returnDescription": "The video playback resolution, which maybe one of the following values:", + "returnType": "String" }, { - "name": "SetBreadcrumbText", + "description": "Checks if the current device/firmware supports the passed in feature string.", + "name": "HasFeature", "params": [ { "default": null, + "description": "The feature to be checked, which may be one of the following values: * \"5.1\\_surround\\_sound\" * \"can\\_output\\_5.1\\_surround\\_sound\" * \"sd\\_only\\_hardware\" * \"usb\\_hardware\" * \"sdcard\\_hardware\" * \"ethernet\\_hardware\" * \"gaming\\_hardware\" * \"energy\\_star\\_compliant\" * \"soundbar\\_hardware\" (_Available since Roku OS 9.2_). Check whether the device has soundbar hardware (for example, speakers). * \"voice\\_remote\" (_Available since Roku OS 10.5_). Checks whether a Roku device is paired with a Roku voice remote. This enables developers to tailor the in-channel user experience for viewers with Roku voice remote controls. * \"handsfree\\_voice\" (_Available since Roku OS 10.5_). Checks whether a Roku device is paired with a hands-free Roku remote control such as the Roku Voice Remote Pro. This enables developers to tailor the in-channel user experience for viewers with hands-free Roku remote controls (for example, displaying voice tips and tricks in the UI).", "isRequired": true, - "name": "breadcrumb1", - "type": "String" - }, - { - "default": null, - "isRequired": true, - "name": "breadcrumb2", + "name": "feature", "type": "String" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the current device/firmware supports the passed in feature string.", + "returnType": "Boolean" }, { - "description": "Sets the list of content to be displayed on the screen. See “Content Meta-Data” for details on the attributes for each element. The screen is responsible for fetching the poster art from the URL’s specified.", - "name": "SetContent", - "params": [ - { - "default": null, - "description": "An roArray of roAssociativeArrays (Content Meta-Data objects) representing the information for each item to be displayed on screen.", - "isRequired": true, - "name": "contentList", - "type": "Object" - } - ], - "returnType": "Void" + "deprecatedDescription": "**This method is deprecated**.\n\nDevelopers must update their channels to use [IsRIDADisabled()](/docs/references/brightscript/interfaces/ifdeviceinfo.md#isridadisabled-as-boolean) to get the Ad Id tracking status.\n", + "description": "If Ad Id tracking is disabled, the identifier returned by GetAdvertisingId() should not be used for Ad targeting", + "isDeprecated": true, + "name": "IsAdIdTrackingDisabled", + "params": [], + "returnDescription": "Returns true if the user has disabled Ad Id tracking by selecting \"Limit ad tracking\" from the Roku Settings menu, false otherwise.", + "returnType": "Boolean" }, { - "description": "Sets the focused list item to the given index. If the item is not visible, focus jumps to the item and item becomes visible.", - "name": "SetFocusedListItem", - "params": [ - { - "default": null, - "description": "The item in the list to be given focus. If the index is not within the range of 0 – list size, this function has no effect.", - "isRequired": true, - "name": "index", - "type": "Integer" - } - ], - "returnType": "Void" + "description": "Checks if the screen reader is enabled.", + "name": "IsAudioGuideEnabled", + "params": [], + "returnDescription": "A flag indicating whether the screen reader is enabled.", + "returnType": "Dynamic" }, { - "description": "Sets the header text of the screen. This can be used as an information text for the screen.", - "name": "SetHeader", - "params": [ - { - "default": null, - "description": "A one-line text (string) displayed on top of the screen below the overhang.", - "isRequired": true, - "name": "header", - "type": "String" - } - ], - "returnType": "Void" + "deprecatedDescription": "**This method is deprecated**.\n\nChannel developers must use the [ifHdmiStatus](/docs/references/brightscript/interfaces/ifhdmistatus.md) interface functions instead.\n", + "description": "Checks for an HDMI connection.", + "isDeprecated": true, + "name": "IsHDMIConnected", + "params": [], + "returnDescription": "A flag indicating whether an HDMI connection to a TV has been detected.", + "returnType": "Boolean" }, { - "description": "Updates the content of an item in the list.", - "name": "SetItem", - "params": [ - { - "default": null, - "description": "An roAssociativeArray (Content Meta-Data object) representing the information of the item to be updated.", - "isRequired": true, - "name": "item", - "type": "Object" - }, - { - "default": null, - "description": "The index of the item to be updated. If the index is not within the range of 0 – list size, this function has no effect.", - "isRequired": true, - "name": "index", - "type": "Integer" - } - ], - "returnType": "Void" + "description": "Indicates whether tracking via Roku's ID for Advertisers (RIDA) is disabled on the device.", + "name": "IsRIDADisabled", + "params": [], + "returnDescription": "A flag indicating whether RIDA tracking is disabled on the device (RIDA tracking can be disabled by selecting \"Limit ad tracking\" from the **Settings>Privacy>Advertising** menu). If RIDA tracking is disabled, this returns true; false otherwise.", + "returnType": "Boolean" }, { - "description": "Sets the title of the screen. The title is displayed on the top right corner of the screen on the overhang.", - "name": "SetTitle", - "params": [ - { - "default": null, - "description": "The title to be displayed on the screen.", - "isRequired": true, - "name": "title", - "type": "String" - } - ], - "returnType": "Void" + "description": "Checks whether the device is in demo mode.", + "name": "IsStoreDemoMode", + "params": [], + "returnDescription": "A flag indicating whether the device is in demo mode.", + "returnType": "Boolean" }, { - "description": "Controls how the remote \"up\" key behaves when it is pressed with the top row selected.", - "name": "SetupBehaviorAtTopRow", + "description": "Sets the current global setting for the Mode property.", + "name": "SetCaptionsMode", "params": [ { "default": null, - "description": "Specifies the behavior of the \"up\" key. This may be one of the following values: * \"stop\": stop scrolling up, and stay on the list screen (default behavior) * \"exit\": exit the list screen", + "description": "The current global setting for the Mode property, which may be one of the following values: * On * Off * Instant replay * When mute (Roku TVs only)", "isRequired": true, - "name": "behavior", + "name": "mode", "type": "String" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the Mode property was successfully set.", + "returnType": "Boolean" }, { - "description": "Displays or refreshes the screen after initial creation or state changes.", - "name": "Show", + "description": "Checks for the number of seconds passed since the last remote keypress.", + "name": "TimeSinceLastKeypress", "params": [], - "returnDescription": "A flag indicating whether the screen was displayed.", - "returnType": "Boolean" + "returnDescription": "The number of seconds since the last remote keypress was received.", + "returnType": "Integer" } ], - "name": "ifListScreen", + "name": "ifDeviceInfo", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iflistscreen.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifdeviceinfo.md" }, - "iflisttoarray": { + "ifdouble": { + "description": "> Interface equivalent for intrinsic type Double", "implementers": [ { - "description": "The list object implements the interfaces: ifList, ifArray, ifEnum and therefore can behave like an array that can dynamically add members", - "name": "roList", - "url": "https://developer.roku.com/docs/references/brightscript/components/rolist.md" - }, - { - "description": "Contains a list of roXML objects", - "name": "roXMLList", - "url": "https://developer.roku.com/docs/references/brightscript/components/roxmllist.md" + "description": "roDouble is a legacy object name, corresponding to the intrinsic Double object", + "name": "roDouble", + "url": "https://developer.roku.com/docs/references/brightscript/components/rodouble.md" } ], "methods": [ { - "description": "Returns an roArray containing the same elements as the list.", - "name": "ToArray", + "description": "Gets the double value stored in the calling Double object.", + "name": "GetDouble", "params": [], - "returnDescription": "An element list as an array.", - "returnType": "Object" + "returnDescription": "The double value stored in the calling Double object.", + "returnType": "Double" + }, + { + "description": "Sets the calling Double object to the specified double value.", + "name": "SetDouble", + "params": [ + { + "default": null, + "description": "The double value to be set on the calling Double object.", + "isRequired": true, + "name": "value", + "type": "Double" + } + ], + "returnType": "Void" } ], - "name": "ifListToArray", + "name": "ifDouble", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iflisttoarray.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifdouble.md" }, - "iflocalization": { + "ifdraw2d": { + "description": "Coordinates (x,y) for this interface are based on an origin (0,0) at the top, left. (This is common for 2D drawing APIs, but is different than OpenGL's default coordinate system).\n\nBitmap pixel values and color values are always represented as 32-bit integer RGBA color values. That is, red is in the most significant byte and alpha is in the least significant byte.", "implementers": [ { - "description": "The roLocalization object provides functions to assist in localization", - "name": "roLocalization", - "url": "https://developer.roku.com/docs/references/brightscript/components/rolocalization.md" - } - ], - "methods": [ + "description": "The roBitmap component contains image data and provides an interface (ifDraw2D) for drawing", + "name": "roBitmap", + "url": "https://developer.roku.com/docs/references/brightscript/components/robitmap.md" + }, { - "name": "GetLocalizedAsset", - "params": [ - { - "default": null, - "description": "The name of a subdirectory in the directory pkg:/locale/XX\\_YY/ where XX\\_YY is the current language setting.", - "isRequired": true, - "name": "dirName", - "type": "String" - }, + "description": "The roRegion component is used to represent a subsection of a bitmap", + "name": "roRegion", + "url": "https://developer.roku.com/docs/references/brightscript/components/roregion.md" + }, + { + "description": "The roScreen component provides a full screen drawing surface that can be stacked and that you can receive input events from", + "name": "roScreen", + "url": "https://developer.roku.com/docs/references/brightscript/components/roscreen.md" + } + ], + "methods": [ + { + "description": "Clears the bitmap, and fills it with the specified RGBA color.", + "name": "Clear", + "params": [ { "default": null, - "description": "The name of the file.", + "description": "The RGBA color to be used to fill the bitmap.", "isRequired": true, - "name": "fileName", - "type": "String" + "name": "rgba", + "type": "Integer" } ], - "returnDescription": "An asset path.", - "returnType": "String" + "returnType": "Void" }, { - "description": "Replaces \"^n\" in pluralString with count and returns the result.", - "name": "GetPluralString", + "description": "Draws a line from (xStart, yStart) to (xEnd, yEnd) with RGBA color.", + "name": "DrawLine", "params": [ { "default": null, + "description": "The x-coordinate of the line's start point.", "isRequired": true, - "name": "count", + "name": "xStart", "type": "Integer" }, { "default": null, + "description": "The y-coordinate of the line's start point.", "isRequired": true, - "name": "zeroString", - "type": "String" + "name": "yStart", + "type": "Integer" }, { "default": null, + "description": "The x-coordinate of the line's end point.", "isRequired": true, - "name": "oneString", - "type": "String" + "name": "xEnd", + "type": "Integer" }, { "default": null, + "description": "The y-coordinate of the line's end point.", "isRequired": true, - "name": "pluralString", - "type": "String" - } - ], - "returnDescription": "The result of the operation. If count is 0, this returns zeroString. If count is 1, it returns oneString.", - "returnType": "String" - } - ], - "name": "ifLocalization", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iflocalization.md" - }, - "iflongint": { - "implementers": [ - { - "description": "Object equivalent for intrinsic type LongInteger", - "name": "roLongInteger", - "url": "https://developer.roku.com/docs/references/brightscript/components/rolonginteger.md" - } - ], - "methods": [ - { - "description": "Gets the longinteger value stored in the calling Longinteger object.", - "name": "GetLongInt", - "params": [], - "returnDescription": "The longinteger value stored in the calling Loninteger object.", - "returnType": "LongInteger" - }, - { - "description": "Sets the calling Longinteger object to the specified longinteger value.", - "name": "SetLongInt", - "params": [ + "name": "yEnd", + "type": "Integer" + }, { "default": null, - "description": "The longinteger value to be set on the calling Longinteger object.", + "description": "The RGBA color of the line.", "isRequired": true, - "name": "value", - "type": "LongInteger" + "name": "rgba", + "type": "Integer" } ], "returnType": "Void" - } - ], - "name": "ifLongInt", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iflongint.md" - }, - "ifmessagedialog": { - "description": "> This component is no longer updated and will be deprecated on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", - "implementers": [ - { - "description": "The Message Dialog component is used to display a formatted, multi-line text message to the user", - "name": "roMessageDialog", - "url": "https://developer.roku.com/docs/references/brightscript/components/romessagedialog.md" - } - ], - "methods": [ + }, { - "description": "Adds a button to the right-justified side of the dialog box. The buttons are at the bottom of the dialog and appear in the order added. When the button is pressed, the script will receive an event from the application indicating the ID of the button pressed.", - "name": "AddButton", + "description": "Draws the source object, where src is an [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object, at position x,y.", + "name": "DrawObject", "params": [ { "default": null, - "description": "The ID of the button to be added to the screen.", + "description": "The x-coordinate of the source object.", "isRequired": true, - "name": "id", + "name": "x", "type": "Integer" }, { "default": null, - "description": "The title of the button to be added to the screen.", + "description": "The y-coordinate of the source object.", "isRequired": true, - "name": "title", - "type": "String" + "name": "y", + "type": "Integer" + }, + { + "default": null, + "description": "The [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object to be drawn.", + "isRequired": true, + "name": "src", + "type": "Object" } ], - "returnDescription": "A flag indicating whether the button was successfully added to the screen.", - "returnType": "Boolean" - }, - { - "description": "Adds horizontal line separating buttons into sections on the dialog.", - "name": "AddButtonSeparator", - "params": [], - "returnDescription": "A flag indicating whether the horizontal line was successfully added.", + "returnDescription": "A flag indicating whether the object was successfully drawn.", "returnType": "Boolean" }, { - "description": "Adds a button to the left-justified side of the dialog box. The buttons are at the bottom of the dialog and appear in the order added. When the button is pressed, the script will receive an event from the application indicating the ID of the button pressed.", - "name": "AddLeftButton", + "description": "Draws a point at (x,y) with the given size and RGBA color.", + "name": "DrawPoint", "params": [ { "default": null, - "description": "The ID of the button to be added to the screen.", + "description": "The x-coordinate of the point.", "isRequired": true, - "name": "id", + "name": "x", "type": "Integer" }, { "default": null, - "description": "The title of the button to be added to the screen.", + "description": "The y-coordinate of the point.", "isRequired": true, - "name": "title", - "type": "String" + "name": "y", + "type": "Integer" + }, + { + "default": null, + "description": "The size of the point.", + "isRequired": true, + "name": "size", + "type": "Float" + }, + { + "default": null, + "description": "The RGBA color of the point.", + "isRequired": true, + "name": "rgba", + "type": "Integer" } ], - "returnDescription": "A flag indicating whether the button was successfully added to the screen.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Adds a star rating button to the left-justified side of the dialog. The rating is specified as an integer 1-100 which indicates the number of stars (1 to 5) to be displayed, or 0 if unrated. Think of this as a percentage value (for example, <20% = 1 star).", - "name": "AddLeftRatingButton", + "description": "Fills the specified rectangle from left (x), top (y) to right (x + width), bottom (y + height) with the RGBA color.", + "name": "DrawRect", "params": [ { "default": null, - "description": "The ID of the rating button to be added to the dialog.", + "description": "The x-coordinate of the rectangle.", "isRequired": true, - "name": "id", + "name": "x", "type": "Integer" }, { "default": null, - "description": "The value the user rated the title, while the aggregate Rating represents the total for all users. The userRating takes precedence and determines the color of the buttons if set.", + "description": "The y-coordinate of the rectangle.", "isRequired": true, - "name": "userRating", + "name": "y", "type": "Integer" }, { "default": null, - "description": "The overall rating of the title. The aggregateRating may display half-stars", + "description": "The width of the rectangle.", "isRequired": true, - "name": "aggregateRating", + "name": "width", "type": "Integer" }, { "default": null, - "description": "The tip associated with the rating button.", + "description": "The height of the rectangle.", "isRequired": true, - "name": "tip", - "type": "String" + "name": "height", + "type": "Integer" + }, + { + "default": null, + "description": "The RGBA color to be used to fill the rectangle.", + "isRequired": true, + "name": "rgba", + "type": "Integer" } ], - "returnDescription": "A flag indicating whether the star rating button was successfully added.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Adds a star rating button to the right-justified side of the dialog. The rating is specified as an integer 1-100 which indicates the number of stars (1 to 5) to be displayed, or 0 if unrated. Think of this as a percentage value (for example, <20% = 1 star).", - "name": "AddRatingButton", + "description": "Draws the source object, where src is an [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object, at position x,y rotated by angle theta degrees.", + "name": "DrawRotatedObject", "params": [ { "default": null, + "description": "The x-coordinate of the source object.", "isRequired": true, - "name": "id", + "name": "x", "type": "Integer" }, { "default": null, + "description": "The y-coordinate of the source object.", "isRequired": true, - "name": "userRating", + "name": "y", "type": "Integer" }, { "default": null, + "description": "The position which to rotate the source object. This may be 0, 90, 180, and 270 degrees.", "isRequired": true, - "name": "aggregateRating", - "type": "Integer" + "name": "theta", + "type": "Float" }, { "default": null, + "description": "The [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object to be drawn.", "isRequired": true, - "name": "tip", - "type": "String" + "name": "src", + "type": "Object" } ], - "returnDescription": "A flag indicating whether the star rating button was successfully added.", + "returnDescription": "A flag indicating whether the object was successfully drawn.", "returnType": "Boolean" }, { - "description": "Appends a static paragraph with the specified text. This static text does not get changed by subsequent calls to the [SetText()](#settexttext-as-string-as-void) or [UpdateText()](#updatetexttext-as-string-as-void) methods.", - "name": "AddStaticText", + "description": "Draws the source object, where src is an [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object, at position x,y, scaled in the x direction by scaleX and in the y direction by scaleY. scaleX and scaleY should each be greater than zero and less than one to reduce the object size, or greater than one to increase the object size", + "name": "DrawScaledObject", "params": [ { "default": null, - "description": "The text to be included in the static paragraph.", + "description": "The x-coordinate of the source object.", "isRequired": true, - "name": "text", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Closes the screen and deletes the associated object. This method is useful for avoiding screen flicker when the display order of your screens does not resemble a stack", - "name": "Close", - "params": [], - "returnType": "Void" - }, - { - "description": "Sends an [isScreenClosed()](https://developer.roku.com/docs/references/brightscript/events/romessagedialogevent.mdisscreenclosed-as-boolean) event when the remote control's back button is pressed.", - "name": "EnableBackButton", - "params": [ + "name": "x", + "type": "Integer" + }, { "default": null, + "description": "The y-coordinate of the source object.", "isRequired": true, - "name": "enableBackButton", - "type": "Boolean" - } - ], - "returnType": "Void" - }, - { - "description": "With overlay enabled, the background screen is no longer dimmed.", - "name": "EnableOverlay", - "params": [ + "name": "y", + "type": "Integer" + }, { "default": null, - "description": "A flag specifying whether to enable overlays.", + "description": "The x direction in which the source object is to be scaled.", "isRequired": true, - "name": "enable", - "type": "Boolean" + "name": "scaleX", + "type": "Float" + }, + { + "default": null, + "description": "The y direction in which the source object is to be scaled.", + "isRequired": true, + "name": "scaleY", + "type": "Float" + }, + { + "default": null, + "description": "The [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object to be drawn.", + "isRequired": true, + "name": "src", + "type": "Object" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the object was successfully drawn.", + "returnType": "Boolean" }, { - "description": "Sets the button to be highlighted. The default is the first button from the top.", - "name": "SetFocusedMenuItem", + "description": "Draws the source object, where src is an [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object, at position x,y, scaled in the x direction by scaleX and in the y direction by scaleY. scaleX and scaleY should each be greater than zero and less than one to reduce the object size, or greater than one to increase the object size.", + "name": "DrawScaledObject", "params": [ { "default": null, - "description": "The ID of the button to gain focus.", + "description": "The x-coordinate of the source object.", + "isRequired": true, + "name": "x", + "type": "Integer" + }, + { + "default": null, + "description": "The y-coordinate of the source object.", + "isRequired": true, + "name": "y", + "type": "Integer" + }, + { + "default": null, + "description": "The x direction in which the source object is to be scaled.", + "isRequired": true, + "name": "scaleX", + "type": "Float" + }, + { + "default": null, + "description": "The y direction in which the source object is to be scaled.", + "isRequired": true, + "name": "scaleY", + "type": "Float" + }, + { + "default": null, + "description": "The [roBitmap](https://developer.roku.com/docs/references/brightscript/components/robitmap.md\"roBitmap\") or an [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object to be drawn.", + "isRequired": true, + "name": "src", + "type": "Object" + }, + { + "default": null, + "description": "The RGBA color of the source object.", "isRequired": true, - "name": "item", + "name": "rgba", "type": "Integer" } ], + "returnDescription": "A flag indicating whether the object was successfully drawn.", "returnType": "Boolean" }, { - "description": "Sets the format of the buttons to top-left justified. Otherwise the format defaults to bottom-right justified.", - "name": "SetMenuTopLeft", + "description": "Draws the text at position (x,y) using the specified RGBA color and [roFont](https://developer.roku.com/docs/references/brightscript/components/rofont.md\"roFont\") font object. Text is drawn anti-aliased. The background image/color behind the text will show through the spaces and holes in the text. To have the text erase the background, make a call to [DrawRect()](#drawrectx-as-integer-y-as-integer-width-as-integer-height-as-integer-rgba-as-integer-as-void) before calling DrawText(). The size, bold, and italic attributes are specified when creating the [roFont](https://developer.roku.com/docs/references/brightscript/components/rofont.md\"roFont\").", + "name": "DrawText", "params": [ { "default": null, - "description": "A flag specifying the format of the buttons. * true: Makes the buttons top-left justified. * false: Makes the buttons bottom-right justified.", + "description": "The text to be drawn.", "isRequired": true, - "name": "topLeft", - "type": "Boolean" - } - ], - "returnType": "Void" - }, - { - "description": "Appends a paragraph with the specified text. The dialog will automatically resize to accommodate the text, up to the limit of available display space.", - "name": "SetText", - "params": [ + "name": "text", + "type": "String" + }, { "default": null, - "description": "The text to be displayed in the message dialog.", + "description": "The x-coordinate of the source object.", "isRequired": true, - "name": "text", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the title for the dialog to the specified string.", - "name": "SetTitle", - "params": [ + "name": "x", + "type": "Integer" + }, { "default": null, - "description": "The title to be displayed in the message dialog.", + "description": "The y-coordinate of the source object.", "isRequired": true, - "name": "title", - "type": "String" + "name": "y", + "type": "Integer" + }, + { + "default": null, + "description": "The color of the text.", + "isRequired": true, + "name": "rgba", + "type": "Integer" + }, + { + "default": null, + "description": "The [roFont](https://developer.roku.com/docs/references/brightscript/components/rofont.md\"roFont\") object to be used for the text.", + "isRequired": true, + "name": "font", + "type": "Object" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the object was successfully drawn.", + "returnType": "Boolean" }, { - "description": "Displays or refreshes the screen after creation or state changes.", - "name": "Show", + "description": "Realizes the bitmap by finishing all queued draw calls. Until Finish() is called, prior graphics operations may not be user visible. For example, they may be in the graphics display pipeline, or in a server queue.", + "name": "Finish", "params": [], - "returnDescription": "A flag indicating whether the screen was displayed.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Displays a spinning busy animation to indicate work in progress. This animation continues until the screen is closed.", - "name": "ShowBusyAnimation", + "description": "Checks if the alpha blending is enabled.", + "name": "GetAlphaEnable", "params": [], - "returnType": "Void" + "returnDescription": "A flag indicating whether alpha blending is enabled.", + "returnType": "Boolean" }, { - "description": "Updates the title of the specified button.", - "name": "UpdateButton", + "description": "Gets the RGBA pixel values for the specified rectangle.", + "name": "GetByteArray", "params": [ { "default": null, - "description": "The ID of the button to be updated.", + "description": "The x-coordinate of the rectangle.", "isRequired": true, - "name": "id", + "name": "x", "type": "Integer" }, { "default": null, - "description": "The title of the button to be updated.", + "description": "The y-coordinate of the rectangle.", "isRequired": true, - "name": "title", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the button was successfully updated.", - "returnType": "Boolean" - }, - { - "description": "Replaces the last paragraph with the specified text, or appends a paragraph if there is not a prior paragraph. If the last paragraph added was a static paragraph, this function appends a new paragraph.", - "name": "UpdateText", - "params": [ + "name": "y", + "type": "Integer" + }, + { + "default": null, + "description": "The width of the rectangle.", + "isRequired": true, + "name": "width", + "type": "Integer" + }, { "default": null, - "description": "The text to replace the last paragraph in the message dialog.", + "description": "The height of the rectangle.", "isRequired": true, - "name": "text", - "type": "String" + "name": "height", + "type": "Integer" } ], - "returnType": "Void" - } - ], - "name": "ifMessageDialog", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifmessagedialog.md" - }, - "ifmessageport": { - "implementers": [ - { - "description": "A Message Port is the place messages (events) are sent", - "name": "roMessagePort", - "url": "https://developer.roku.com/docs/references/brightscript/components/romessageport.md" - } - ], - "methods": [ - { - "description": "If an event object is available, it is returned. Otherwise invalid is returned. The method returns immediately in either case and does not wait.", - "name": "GetMessage", - "params": [], - "returnDescription": "An event object.", - "returnType": "Dynamic" + "returnDescription": "An roByteArray representing the RGBA pixel values for the specified rectangle.", + "returnType": "Object" }, { - "description": "This method is similar to the [GetMessage()](#getmessage-as-dynamic) method, but the returned object (if not invalid) remains in the message queue. A later call to [WaitMessage()](#waitmessagetimeout-as-integer-as-dynamic), [GetMessage()](#getmessage-as-dynamic) or PeekMessage() will return the same message.", - "name": "PeekMessage", + "description": "Gets the height of the bitmap in pixels.", + "name": "GetHeight", "params": [], - "returnDescription": "An event object.", - "returnType": "Dynamic" + "returnDescription": "The height of the bitmap in pixels.", + "returnType": "Integer" }, { - "description": "Waits until an event object is available or timeout milliseconds have passed.", - "name": "WaitMessage", + "description": "Gets PNG image data for the specified area of the bitmap. The PNG is in 32-bit RGBA format.", + "name": "GetPng", "params": [ { "default": null, - "description": "The number of milliseconds to wait for a message. If this parameter is set to 0, this method waits indefinitely for a message, with no timeout. The native [wait()](https://developer.roku.com/docs/references/brightscript/language/global-utility-functions.mdwaittimeout-as-integer-port-as-object-as-object) function can also be used to get the event object which WaitMessage() would return. This means that the following two statements have the same effect: ``` msg = port.WaitMessage(timeout) msg = wait(timeout, port) ```", + "description": "The x-coordinate of the rectangle.", "isRequired": true, - "name": "timeout", + "name": "x", "type": "Integer" - } - ], - "returnDescription": "If an event is available, it is returned. If the timeout expires, invalid is returned.", - "returnType": "Dynamic" - } - ], - "name": "ifMessagePort", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifmessageport.md" - }, - "ifmicrophone": { - "implementers": [ - { - "description": "The roMicrophone API allows channel applications to receive audio data from the user’s microphone-supported remote control device or mobile phone", - "name": "roMicrophone", - "url": "https://developer.roku.com/docs/references/brightscript/components/romicrophone.md" - } - ], - "methods": [ - { - "description": "Indicates whether the platform and paired remote control can be requested to open the microphone.", - "name": "CanRecord", - "params": [], - "returnDescription": "A flag indicating whether the microphone can be opened.", - "returnType": "Boolean" - }, - { - "description": "Opens the microphone and records to create a WAV file at the specified output file path. Only tmp:/ paths are supported.", - "name": "RecordToFile", - "params": [ + }, { "default": null, - "description": "The file path where the WAV file is to be stored.", + "description": "The y-coordinate of the rectangle.", "isRequired": true, - "name": "wavFilePath", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the recording was performed and saved successfully.", - "returnType": "Boolean" - }, - { - "description": "Sets the text to be displayed in the system microphone UI.", - "name": "SetPrompt", - "params": [ + "name": "y", + "type": "Integer" + }, { "default": null, - "description": "The text to be displayed in the system microphone UI.", + "description": "The width of the rectangle.", "isRequired": true, - "name": "prompt", - "type": "String" + "name": "width", + "type": "Integer" + }, + { + "default": null, + "description": "The height of the rectangle.", + "isRequired": true, + "name": "height", + "type": "Integer" } ], - "returnType": "Void" - }, - { - "description": "Opens the microphone and begins streaming microphone events to the channel. The channel must have called the [SetMessagePort()](https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.mdsetmessageportport-as-object--as-void) method previously.", - "name": "StartRecording", - "params": [], - "returnDescription": "A flag indicating whether the microphone was opened successfully.", - "returnType": "Boolean" + "returnDescription": "An roByteArray object containing PNG image data for the specified area of the bitmap. If the coordinates are out of bounds, or the PNG conversion fails for any reason, then invalid is returned", + "returnType": "Object" }, { - "description": "Stops recording and closes the microphone. This method is useful if the microphone was previously opened via the [StartRecording()](#startrecording-as-boolean) method and the channel needs to cancel the current recording prematurely, (for example, the duration limit was reached or an application error).", - "name": "StopRecording", - "params": [], - "returnDescription": "A flag indicating whether the microphone was opened and closed successfully.", - "returnType": "Boolean" - } - ], - "name": "ifMicrophone", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifmicrophone.md" - }, - "ifonelinedialog": { - "description": "> This component is no longer updated and will be deprecated on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", - "implementers": [ - { - "description": "The One Line Dialog is a special type of dialog optimized for single line text", - "name": "roOneLineDialog", - "url": "https://developer.roku.com/docs/references/brightscript/components/roonelinedialog.md" - } - ], - "methods": [ - { - "description": "Closes the screen and deletes the associated object. Useful for avoiding screen flicker when the display order of your screens does not resemble a stack.", - "name": "Close", + "description": "Gets the width of the bitmap.", + "name": "GetWidth", "params": [], - "returnType": "Void" + "returnDescription": "The width of the bitmap in pixels.", + "returnType": "Integer" }, { - "description": "Sets the title to be displayed in the upper right-hand corner of the screen in the overhang area.", - "name": "SetTitle", + "description": "Enables alpha blending when the source bitmap is the destination. The setting of the source bitmap's alpha enable is ignored.", + "name": "SetAlphaEnable", "params": [ { "default": null, - "description": "The text to be displayed on the screen.", + "description": "A flag specifying whether alpha blending is enabled.", "isRequired": true, - "name": "title", - "type": "String" + "name": "enable", + "type": "Boolean" } ], "returnType": "Void" - }, - { - "description": "Displays or refreshes the screen after creation or state changes.", - "name": "Show", - "params": [], - "returnDescription": "A flag indicating whether the screen was successfully displayed.", - "returnType": "Boolean" - }, - { - "description": "Displays a spinning busy animation to indicate work in progress is displayed. The animation will continue until the screen is closed.", - "name": "ShowBusyAnimation", - "params": [], - "returnType": "Void" } ], - "name": "ifOneLineDialog", + "name": "ifDraw2D", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifonelinedialog.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifdraw2d.md" }, - "ifparagraphscreen": { - "description": "> This component is no longer updated and will be deprecated on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", + "ifdsa": { + "availableSince": "10.5", + "description": "_Available since Roku OS 10.5_", "implementers": [ { - "description": "The Paragraph Screen provides a way to display text and selection choices to the user", - "name": "roParagraphScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/roparagraphscreen.md" + "description": "The **roDSA** component provides support for the ECDSA and EdDSA (with Ed25519 form) digital signature algorithms. It is used to provide cryptographically signed evidence that an ad request originated from an actual Roku device.", + "name": "roDsa", + "url": "https://developer.roku.com/docs/references/brightscript/components/rodsa.md" } ], "methods": [ { - "description": "Adds a button to the screen. The buttons are displayed in a standard location on the screen and appear in the order added. When the button is pressed, the script will receive an event from the application containing the ID of the button pressed and allowing the script to perform the desired action for that case", - "name": "AddButton", - "params": [ - { - "default": null, - "description": "The ID used to uniquely identify the button instance.", - "isRequired": true, - "name": "id", - "type": "Integer" - }, - { - "default": null, - "description": "The title of the button.", - "isRequired": true, - "name": "title", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the button was successfully added.", - "returnType": "Boolean" - }, - { - "description": "Adds a graphic image to the screen at the current cursor position and centers it. The current cursor position moves as headers, paragraphs, graphics and buttons are added to the screen. The graphic image is displayed unscaled.", - "name": "AddGraphic", + "description": "Specifies the digest algorithm to be used for signing and verification.", + "name": "SetDigestAlgorithm", "params": [ { "default": null, "isRequired": true, - "name": "url", - "type": "String" - }, - { - "default": null, - "isRequired": true, - "name": "displayMode", + "name": "algorithm", "type": "String" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the operation was successful:", + "returnType": "Boolean" }, { - "description": "Adds a string of bold, high visibility text to the screen as a header to introduce the subsequent paragraph(s).", - "name": "AddHeaderText", + "description": "Specifies the private key to be used for signing.", + "name": "SetPrivateKey", "params": [ { "default": null, - "description": "The text to be added to the header.", + "description": "Specifies the ECDSA or Ed25519 private key to be used for signing. Provide the key as a path, either in the package or a temporary path.", "isRequired": true, - "name": "text", + "name": "keyFileName", "type": "String" } ], - "returnType": "Void" + "returnDescription": "An integer indicating whether the operation was successful:", + "returnType": "Integer" }, { - "description": "Adds a paragraph of text to the screen. Paragraphs are specified as a single string and they are ordered on the screen in the same order as they are added. Making multiple calls to AddParagraph() will continue to add additional paragraphs of text in order until the screen has been filled. The [roParagraphScreen](https://developer.roku.com/docs/references/brightscript/components/roparagraphscreen.md\"roParagraphScreen\") component handles all text formatting and justification. Spacing is automatically inserted between paragraphs for readability.", - "name": "AddParagraph", + "description": "Specifies the private key to be used for signing.", + "name": "SetPrivateKeyFromByteArray", "params": [ { "default": null, - "description": "The paragraph to be added to the screen.", + "description": "Specifies the ECDSA or Ed25519 private key to be used for signing.", "isRequired": true, - "name": "text", - "type": "String" + "name": "key", + "type": "roByteArray" } ], - "returnType": "Void" + "returnDescription": "An integer indicating whether the operation was successful:", + "returnType": "Integer" }, { - "name": "AddParagraphAligned", + "description": "Specifies the public key to be used for verification.", + "name": "SetPublicKey", "params": [ { "default": null, + "description": "Specifies the ECDSA or Ed25519 public key to be used for signing. Provide the key as a path, either in the package or a temporary path.", "isRequired": true, - "name": "text", - "type": "String" - }, - { - "default": null, - "isRequired": true, - "name": "alignment", + "name": "keyFileName", "type": "String" } ], - "returnType": "Void" - }, - { - "name": "Close", - "params": [], - "returnType": "Void" + "returnDescription": "An integer indicating whether the operation was successful:", + "returnType": "Integer" }, { - "description": "Specifies the text to be displayed for the title in breadcrumb format.", - "name": "SetBreadcrumbText", + "name": "SetSignAlgorithm", "params": [ { "default": null, - "description": "The text to be used for the first location.", - "isRequired": true, - "name": "location1", - "type": "String" - }, - { - "default": null, - "description": "The text to be used for the second location.", + "description": "An OpenSSL string with the algorithm to be used:\"ECDSA\" (default).\"Ed25519\".", "isRequired": true, - "name": "location2", + "name": "algorithm", "type": "String" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the operation was successful:", + "returnType": "Boolean" }, { - "description": "Sets the button to be highlighted when the screen is initially displayed.", - "name": "SetDefaultMenuItem", + "description": "Generates a signature based on the specified message.", + "name": "Sign", "params": [ { "default": null, - "description": "The index of the button to be highlighted by default. This is the zero-based position of the button in the list of buttons on the screen (not the button id passed to the [AddButton()](#addbuttonid-as-integer-title-as-string--as-boolean) method). The default is the first button (index 0).", + "description": "The roByteArray to be signed.", "isRequired": true, - "name": "index", - "type": "Integer" + "name": "message", + "type": "roByteArray" } ], - "returnDescription": "A flag indicating whether the default menu item was successfully set.", - "returnType": "Boolean" + "returnDescription": "An roByteArray containing the signature. If an error occurs, \"invalid\" is returned.", + "returnType": "Object" }, { - "description": "Sets the title for the screen.", - "name": "SetTitle", + "description": "Verifies the given message and signature. The message and the signature should both be roByteArrays.", + "name": "Verify", "params": [ { "default": null, - "description": "The title for the screen.", + "description": "The message to be verified.", "isRequired": true, - "name": "title", - "type": "String" + "name": "message", + "type": "roByteArray" + }, + { + "default": null, + "description": "The signature to be verified.", + "isRequired": true, + "name": "signature", + "type": "roByteArray" } ], - "returnType": "Void" - }, - { - "description": "Displays or refreshes the screen after creation or state changes.", - "name": "Show", - "params": [], - "returnDescription": "A boolean indicating whether the screen was successfully displayed.", - "returnType": "Boolean" + "returnDescription": "Indicates the result of the validation. This may be one of the following values:", + "returnType": "Integer" } ], - "name": "ifParagraphScreen", + "name": "ifDsa", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifparagraphscreen.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifdsa.md" }, - "ifpath": { - "description": "| Name | Description |\n| --- | --- |\n| [roPath](https://developer.roku.com/docs/references/brightscript/components/ropath.md\"roPath\") | The roPath component provides developers an easy way to create valid file system paths |", + "ifenum": { "implementers": [ { - "description": "The roPath component provides developers an easy way to create valid file system paths", - "name": "roPath", - "url": "https://developer.roku.com/docs/references/brightscript/components/ropath.md" + "description": "An array stores an indexed collection of BrightScript objects", + "name": "roArray", + "url": "https://developer.roku.com/docs/references/brightscript/components/roarray.md" + }, + { + "description": "An associative array (also known as a map, dictionary or hash table) allows objects to be associated with string keys", + "name": "roAssociativeArray", + "url": "https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md" + }, + { + "description": "The byte array component is used to contain and manipulate an arbitrary array of bytes", + "name": "roByteArray", + "url": "https://developer.roku.com/docs/references/brightscript/components/robytearray.md" + }, + { + "description": "The list object implements the interfaces: ifList, ifArray, ifEnum and therefore can behave like an array that can dynamically add members", + "name": "roList", + "url": "https://developer.roku.com/docs/references/brightscript/components/rolist.md" + }, + { + "description": "A Message Port is the place messages (events) are sent", + "name": "roMessagePort", + "url": "https://developer.roku.com/docs/references/brightscript/components/romessageport.md" + }, + { + "description": "Contains a list of roXML objects", + "name": "roXMLList", + "url": "https://developer.roku.com/docs/references/brightscript/components/roxmllist.md" } ], "methods": [ { - "description": "Modifies or changes the current path via the specified relative or absolute path.", - "name": "Change", - "params": [ - { - "default": null, - "description": "The new relative or absolute file system path to be used.", - "isRequired": true, - "name": "path", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the path was successfully changed.", + "description": "Checks whether the enumeration contains no elements.", + "name": "IsEmpty", + "params": [], + "returnDescription": "A flag indicating whether the enumeration contains no elements (true), or contains elements (false).", "returnType": "Boolean" }, { - "description": "Checks whether the current path is valid (the path is correctly formed). This does not check whether the file actually exists.", - "name": "IsValid", + "description": "Checks whether the current position is not past the end of the enumeration.", + "name": "IsNext", "params": [], - "returnDescription": "A flag indicating whether the current path is valid.", + "returnDescription": "A flag indicating whether the current position is not past the end (true), or is past the end (false).", "returnType": "Boolean" }, { - "description": "Return Value", - "name": "Split", + "description": "Increments the position of an enumeration. If the last element of the enumeration is returned, this method sets the current position to indicate that it is now past the end.", + "name": "Next", "params": [], - "returnDescription": "An [roAssociativeArray](/docs/references/brightscript/components/roassociativearray.md \"roAssociativeArray\") that contains the following keys:", - "returnType": "Object" + "returnDescription": "The value at the current position of the enumeration. If the current position is already past the end (that is, the last element has already been returned by a previous call to this method), \"invalid\" is returned.", + "returnType": "Dynamic" + }, + { + "description": "Resets the current position to the first element of the enumeration.", + "name": "Reset", + "params": [], + "returnType": "Void" } ], - "name": "ifPath", + "name": "ifEnum", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifpath.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifenum.md" }, - "ifpinentrydialog": { - "description": "> This component is no longer updated and will be deprecated on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", + "ifevpcipher": { "implementers": [ { - "description": "The Pin Entry Dialog is designed to allow the user to enter a numeric PIN for purchasing content", - "name": "roPinEntryDialog", - "url": "https://developer.roku.com/docs/references/brightscript/components/ropinentrydialog.md" + "description": "The EVP Cipher component provides an interface to the OpenSSL EVP library of symmetric cipher commands", + "name": "roEVPCipher", + "url": "https://developer.roku.com/docs/references/brightscript/components/roevpcipher.md" } ], "methods": [ { - "description": "Adds a button to the pin entry dialog, with the specified title displayed on the button. The buttons are aligned at the bottom of the screen and appear in the order added. When a button is pressed, the script will receive an [roPinEntryDialogEvent](https://developer.roku.com/docs/references/brightscript/events/ropinentrydialogevent.md\"roPinEntryDialogEvent\") from the application indicating the ID of the button pressed.", - "name": "AddButton", + "description": "Signals that all data has been submitted by previous calls to Update().", + "name": "Final", + "params": [], + "returnDescription": "The last remaining encrypted or decrypted bytes.", + "returnType": "Object" + }, + { + "description": "Processes the included [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md containing encrypted/decrypted data.", + "name": "Process", "params": [ { "default": null, - "description": "The ID of the button to be added to the pin entry dialog.", - "isRequired": true, - "name": "id", - "type": "Integer" - }, - { - "default": null, - "description": "The text to be displayed on the button.", + "description": "An [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md containing data that is encrypted or decrypted.", "isRequired": true, - "name": "title", - "type": "String" + "name": "bytes", + "type": "Object" } ], - "returnType": "Void" + "returnDescription": "An [roByteArray](/docs/references/brightscript/components/robytearray.md \"roByteArray\") containing the result.", + "returnType": "Object" }, { - "name": "Close", + "description": "Reinitializes an existing cipher context. This can be called to reuse an existing [roEVPCipher](https://developer.roku.com/docs/references/brightscript/components/roevpdigest.md\"roEVPCipher\") object to encrypt new data", + "name": "Reinit", "params": [], - "returnType": "Void" + "returnDescription": "Returns 0 on success or non-zero on failure.", + "returnType": "Integer" }, { - "description": "Enables the channel to receive an [isScreenClosed()](https://developer.roku.com/docs/references/brightscript/events/ropinentrydialogevent.mdisscreenclosed-as-boolean) event when the back button is entered. By default the [PinEntryDialog](https://developer.roku.com/docs/references/brightscript/components/ropinentrydialog.md component will not send an [isScreenClosed()](https://developer.roku.com/docs/references/brightscript/events/ropinentrydialogevent.mdisscreenclosed-as-boolean) event so that scripts that did not expect this event will not break", - "name": "EnableBackButton", + "description": "Configures and initializes a new cipher context.", + "name": "Setup", "params": [ { "default": null, - "description": "Enables [isScreenClosed()](https://developer.roku.com/docs/references/brightscript/events/ropinentrydialogevent.mdisscreenclosed-as-boolean) events to be sent when the back button is entered.", + "description": "True for encryption; false for decryption", "isRequired": true, - "name": "enableBackButton", + "name": "encrypt", "type": "Boolean" - } - ], - "returnType": "Void" - }, - { - "description": "Gets the user-entered PIN.", - "name": "Pin", - "params": [], - "returnDescription": "A string containing the PIN entered by the user.", - "returnType": "String" - }, - { - "description": "Sets the maximum number of digits to be entered and displayed for the PIN.", - "name": "SetNumPinEntryFields", - "params": [ + }, + { + "default": null, + "description": "Cipher format string, from openssl, listed at roEVPCipher", + "isRequired": true, + "name": "format", + "type": "String" + }, + { + "default": null, + "description": "A hex-encoded key", + "isRequired": true, + "name": "key", + "type": "String" + }, + { + "default": null, + "description": "A hex-encoded initialization vector, which can be an empty string", + "isRequired": true, + "name": "iv", + "type": "String" + }, { "default": null, - "description": "The maximum number of digits for the PIN.", + "description": "1 to use standard padding; 0 for no padding)", "isRequired": true, - "name": "numFields", + "name": "padding", "type": "Integer" } ], - "returnType": "Void" + "returnDescription": "Returns 0 on success or non-zero on failure.", + "returnType": "Integer" }, { - "description": "Sets the title for the pin entry dialog to the specified string.", - "name": "SetTitle", + "description": "Updates the included [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md containing encrypted/decrypted data.", + "name": "Update", "params": [ { "default": null, - "description": "The text to be displayed on the pin entry dialog.", + "description": "An [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md containing data that is encrypted or decrypted.", "isRequired": true, - "name": "title", - "type": "String" + "name": "bytes", + "type": "Object" } ], - "returnType": "Void" - }, - { - "description": "Displays or refreshes the screen after creation or state changes.", - "name": "Show", - "params": [], - "returnType": "Void" + "returnDescription": "An [roByteArray](/docs/references/brightscript/components/robytearray.md \"roByteArray\") containing a subset of the result. Some or all of the result may not be returned until the next call to Update().", + "returnType": "Object" } ], - "name": "ifPinEntryDialog", + "name": "ifEVPCipher", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifpinentrydialog.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifevpcipher.md" }, - "ifposterscreen": { - "description": "> This component is no longer updated and will be deprecated on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\n| Name | Description |\n| --- | --- |\n| [roPosterScreen](https://developer.roku.com/docs/references/brightscript/components/roposterscreen.md\"roPosterScreen\") | The Poster Screen provides a graphical display of poster art for content selection or can be used as a submenu to provide hierarchical structure to the application |", + "ifevpdigest": { "implementers": [ { - "description": "The Poster Screen provides a graphical display of poster art for content selection or can be used as a submenu to provide hierarchical structure to the application", - "name": "roPosterScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/roposterscreen.md" + "description": "The EVP Digest component provides an interface to the OpenSSL EVP library of message digest algorithms", + "name": "roEVPDigest", + "url": "https://developer.roku.com/docs/references/brightscript/components/roevpdigest.md" } ], "methods": [ { - "description": "Clears the message from the previous [ShowMessage()](https://developer.roku.com/docs/references/brightscript/interfaces/ifposterscreen.mdshowmessagemessage-as-string-as-void) method call.", - "name": "ClearMessage", + "description": "Returns the digest of data passed in by previous calls to [Update()](#updatebytes-as-object-as-void) as a hex string.", + "name": "Final", "params": [], - "returnType": "Void" + "returnDescription": "Hex string (digest of data)", + "returnType": "String" }, { - "name": "Close", - "params": [], - "returnType": "Void" + "description": "Digests the provided data.", + "name": "Process", + "params": [ + { + "default": null, + "description": "An [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md containing digested data", + "isRequired": true, + "name": "bytes", + "type": "Object" + } + ], + "returnDescription": "A Hex string (Digested array data).", + "returnType": "String" }, { - "description": "Gets the content metadata of each title displayed on the screen. This is the content metadata passed via the [SetContentList()](#setcontentlistcontentlist-as-object-as-void) method.", - "name": "GetContentList", + "description": "Re-initializes an existing message digest context. This can be called to reuse an existing [roEVPDigest](https://developer.roku.com/docs/references/brightscript/components/roevpdigest.md\"roEVPDigest\") object to digest new data.", + "name": "Reinit", "params": [], - "returnDescription": "An [roArray](/docs/references/brightscript/components/roarray.md \"roArray\") containing content metadata.", - "returnType": "Object" + "returnDescription": "Returns 0 on success or non-zero on failure.", + "returnType": "Integer" }, { - "description": "Sets the scale mode for displaying ad images on the poster screen. The ad display is only available on \"arced-landscape\" and \"flat-category\" list styles.", - "name": "SetAdDisplayMode", + "description": "Initializes a new message digest context.", + "name": "Setup", "params": [ { "default": null, + "description": "The supported digest algorithm from openssl, listed at roEVPDigest.", "isRequired": true, - "name": "displayMode", + "name": "digestType", "type": "String" } ], - "returnType": "Void" + "returnDescription": "Returns 0 on success or non-zero on failure.", + "returnType": "Integer" }, { - "description": "Enables the banner ad to be selectable. When selected, the screen will receive an [roPosterScreenEvent](https://developer.roku.com/docs/references/brightscript/events/roposterscreenevent.md and the msg will return true for [isAdSelected()](https://developer.roku.com/docs/references/brightscript/events/roposterscreenevent.mdisadselected-as-boolean).", - "name": "SetAdSelectable", + "description": "Adds more data to be digested.", + "name": "Update", "params": [ { "default": null, - "description": "A flag specifying if the user can navigate and move focus to the banner image (true) or if the banner ad is not selectable (false).", + "description": "An [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md containing data to be added to the current digest", "isRequired": true, - "name": "isSelectable", - "type": "Boolean" + "name": "bytes", + "type": "Object" } ], "returnType": "Void" - }, + } + ], + "name": "ifEVPDigest", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifevpdigest.md" + }, + "iffilesystem": { + "implementers": [ + { + "description": "The roFilesystem component implements common filesystem inspection and modification routines", + "name": "roFileSystem", + "url": "https://developer.roku.com/docs/references/brightscript/components/rofilesystem.md" + } + ], + "methods": [ { - "description": "Sets the URL of the banner ad image to be displayed on the poster screen. This is currently only valid for the \"arced-landscape\" and \"flat-category\" style of poster screens.", - "name": "SetAdURL", + "description": "Copies the files from one directory to another.", + "name": "CopyFile", "params": [ { "default": null, - "description": "The URL of the standard definition banner ad image (540x60) to be displayed.", + "description": "The source path containing the files to be copied.", "isRequired": true, - "name": "sdAdURL", + "name": "fromPath", "type": "String" }, { "default": null, - "description": "The URL of the high definition banner ad image (728x90) to be displayed.", + "description": "The target path to which files are to be copied.", "isRequired": true, - "name": "hdAdURL", + "name": "toPath", "type": "String" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the files were successfully copied.", + "returnType": "Boolean" }, { - "description": "Shows or hides the breadcrumb text in the title area.", - "name": "SetBreadcrumbEnabled", + "description": "Creates the directory specified by the path parameter. All directories in path except the last one must already exist; that is, only one directory can be created.", + "name": "CreateDirectory", "params": [ { "default": null, - "description": "A flag specifying whether the breadcrumb text is to be displayed on the poster screen.", + "description": "The path of the directory to be created.", "isRequired": true, - "name": "enable", - "type": "Boolean" + "name": "path", + "type": "String" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the path was successfully created.", + "returnType": "Boolean" }, { - "description": "Specifies the text to be displayed for the title in breadcrumb format.", - "name": "SetBreadcrumbText", + "description": "Permanently removes the file or directory specified by the path parameter. If path is a directory, its contents are recursively removed.", + "name": "Delete", "params": [ { "default": null, - "description": "The text to be used for the first location.", - "isRequired": true, - "name": "location1", - "type": "String" - }, - { - "default": null, - "description": "The text to be used for the second location.", + "description": "The path of the directory to be deleted.", "isRequired": true, - "name": "location2", + "name": "path", "type": "String" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the path was successfully deleted.", + "returnType": "Boolean" }, { - "description": "Sets the list of content to be displayed by the screen. The screen is responsible for fetching the poster art from the URLs specified and all user navigation within the list.", - "name": "SetContentList", + "description": "Checks if the specified directory path exists on the device.", + "name": "Exists", "params": [ { "default": null, - "description": "An [roArray](https://developer.roku.com/docs/references/brightscript/components/roarray.md\"roArray\") of [roAssociativeArrays](https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md\"roAssociativeArrays\") ([Content Meta-Data](/docs/developer-program/getting-started/architecture/content-metadata.md \" Content Meta-Data\") objects) representing the information for each title to be displayed on screen.", + "description": "The directory path to be checked.", "isRequired": true, - "name": "contentList", - "type": "Object" + "name": "path", + "type": "String" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the specified path directory exists on the device.", + "returnType": "Boolean" }, { - "description": "The item the in filter banner to be given focus. The selected item is displayed in the center of the filter banner, and it is highlighted to denote that it has focus.", - "name": "SetFocusedList", + "description": "Returns the file names in the specified directory path matching the provided regex.", + "name": "Find", "params": [ { "default": null, - "description": "The zero-based index of the item to obtain focus.", + "description": "The directory path from which to get a list of file names.", "isRequired": true, - "name": "itemIndex", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "name": "SetFocusedListItem", - "params": [ + "name": "dirPath", + "type": "String" + }, { "default": null, - "description": "The zero-based index of the item to obtain focus.", + "description": "The regex to be used to search for files.", "isRequired": true, - "name": "itemIndex", - "type": "Integer" + "name": "regEx", + "type": "String" } ], - "returnType": "Void" + "returnDescription": "An [roList](/docs/references/brightscript/components/rolist.md \"roList\") of Strings representing the directory listing of names in dirPath that match the regex.", + "returnType": "Object" }, { - "description": "Sets the focus to the filter banner.", - "name": "SetFocusToFilterBanner", + "description": "Returns the file names in the specified directory path and any sudirectories matching the provided regex.", + "name": "FindRecurse", "params": [ { "default": null, - "description": "A flag specifying whether the filter banner is to obtain focus.", + "description": "The directory path from which to get a list of file names.", "isRequired": true, - "name": "enable", - "type": "Boolean" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the mode for displaying images in the poster screen. This allows images to be either scaled to completely fill the poster frame (scale-to-fill) or scaled to fit inside the poster frame (scale-to-fit) while maintaining aspect ratio", - "name": "SetListDisplayMode", - "params": [ + "name": "dirPath", + "type": "String" + }, { "default": null, - "description": "Specifies the mode used to display images on the poster screen, which may be one of the following values: * scale-to-fill – scale image to completely fill the rectangle of the bounding frame (Default) * scale-to-fit – scale image to fit horizontally or vertically as appropriate while still maintaining aspect ratio. Note that scale-to-fit may result in pillar-box or letter-box display of images. * zoom-to-fill – scales and crops image to maintain aspect ratio and completely fill the rectangle of the bounding frame. * photo-fit – Uses several methods to fit the image with a different aspect ratio to the screen. First, it will asymmetrically scale up to a maximum of 5%. Second, for landscape images, if vertical cropping is necessary, it will remove two lines off the bottom for every one line off the top up to a maximum of 30% of the image. For all images, if horizontal cropping is necessary it will crop an equal amount from both sides.", + "description": "The regex to be used to search for files.", "isRequired": true, - "name": "displayMode", + "name": "regEx", "type": "String" } ], - "returnType": "Void" + "returnDescription": "An [roList](/docs/references/brightscript/components/rolist.md \"roList\") of Strings representing the directory listing of names in dirPath that match the regex. Each item in the list is the name of the file relative to dirPath.", + "returnType": "Object" }, { - "description": "Sets the list of categories to be displayed in the filter banner at the top of the poster screen.", - "name": "SetListNames", + "description": "Returns the file names in the specified directory path.", + "name": "GetDirectoryListing", "params": [ { "default": null, - "description": "An array of Strings, where each String represents a new category to be displayed at the top. The display order is the same as the order of the categories in the array passed by the caller", + "description": "The directory path from which to get a list of file names.", "isRequired": true, - "name": "names", - "type": "Object" + "name": "dirPath", + "type": "String" } ], - "returnType": "Void" + "returnDescription": "An [roList](/docs/references/brightscript/components/rolist.md \"roList\") of strings representing the directory listing of names in dirPath.", + "returnType": "Object" }, { - "description": "Sets the display style for the poster screen. Styles allow the poster screen to look differently for different types of content or different usage.", - "name": "SetListStyle", + "description": "Returns information about the specified volume. The function can only be called on external volumes; internal volumes do not return meaningful information.", + "name": "GetVolumeInfo", "params": [ { "default": null, + "description": "The external volume for which to get information. This should be specified as the volume name plus a directory separator (for example, \"ext1:/\").", "isRequired": true, - "name": "style", + "name": "path", "type": "String" } ], - "returnType": "Void" + "returnDescription": "An roAssociativeArray containing the following key-value pairs about the specified external volume:", + "returnType": "Object" + }, + { + "description": "Returns the available volumes on the device.", + "name": "GetVolumeList", + "params": [], + "returnDescription": "An [roList](/docs/references/brightscript/components/rolist.md \"roList\") containing strings representing the available volumes.", + "returnType": "Object" }, { - "description": "Specifies the default images to be shown in the poster screen while the poster screen content is loading", - "name": "SetLoadingPoster", + "description": "Returns the file names in the specified directory path matching the provided shell-like pattern. This method is similar to the [Find()](#finddirpath-as-string-regex-as-string-as-object) method except that it uses shell-like pattern matching rather than regular expression matching.", + "name": "Match", "params": [ { "default": null, + "description": "The directory path from which to get a list of file names.", "isRequired": true, - "name": "sdPosterUrl", + "name": "path", "type": "String" }, { "default": null, + "description": "The shell-like pattern to be used to search for files. The pattern may contain wildcards such as `*`and `?`.", "isRequired": true, - "name": "hdPosterUrl", + "name": "pattern", "type": "String" } ], - "returnType": "Void" + "returnDescription": "An [roList](/docs/references/brightscript/components/rolist.md \"roList\") of Strings representing the directory listing of names in dirPath that match the shell-like pattern.", + "returnType": "Object" }, { - "description": "Sets the title for the poster screen.", - "name": "SetTitle", + "description": "Renames the directory.", + "name": "Rename", "params": [ { "default": null, - "description": "The text to be used as the title for the poster screen.", + "description": "The current name of the path to be renamed.", + "isRequired": true, + "name": "fromPath", + "type": "String" + }, + { + "default": null, + "description": "The new name of the path.", "isRequired": true, - "name": "title", + "name": "toPath", "type": "String" } ], - "returnType": "Void" - }, - { - "description": "Displays or refreshes the screen after initial creation or state changes.", - "name": "Show", - "params": [], - "returnDescription": "A boolean indicating whether the screen was successfully displayed.", + "returnDescription": "A flag indicating whether the directory was successfully renamed. If the provided target directory (**toPath**) exists, it is not overwritten; instead the operation fails and this method returns false", "returnType": "Boolean" }, { - "description": "Displays a semi-transparent popup message box to the user in the center of the screen over the poster screen. Generally, this is used for error messages.", - "name": "ShowMessage", + "description": "Returns the keys in the specified directory path.", + "name": "Stat", "params": [ { "default": null, - "description": "The text to be displayed in the popup message box.", + "description": "The directory path to be checked.", "isRequired": true, - "name": "message", + "name": "path", "type": "String" } ], - "returnType": "Void" + "returnDescription": "An [roAssociativeArray](/docs/references/brightscript/components/roassociativearray.md \"roAssociativeArray\") containing the following key-value pairs for the specified path:", + "returnType": "Object" } ], - "name": "ifPosterScreen", + "name": "ifFileSystem", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifposterscreen.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iffilesystem.md" }, - "ifprogramguide": { + "iffloat": { + "description": "Interface equivalent for intrinsic type Float", "implementers": [ { - "description": "Represents Electronic Program Guide (EPG) information from the tuner.", - "name": "roProgramGuide", - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/roprogramguide.md" + "description": "Object equivalent for intrinsic type 'Float'", + "name": "roFloat", + "url": "https://developer.roku.com/docs/references/brightscript/components/rofloat.md" } ], "methods": [ { - "description": "Returns the list of logical channel numbers on which the given program ID can be found.", - "name": "GetChannels", + "description": "Gets the float value stored in the calling Float object.", + "name": "GetFloat", + "params": [], + "returnDescription": "The float value stored in the calling Float object.", + "returnType": "Float" + }, + { + "description": "Sets the calling Float object to the specified float value.", + "name": "SetFloat", "params": [ { "default": null, - "description": "The program ID containing the channels to be returned.", + "description": "The float value to be set on the calling Float object.", "isRequired": true, - "name": "id", - "type": "Integer" + "name": "value", + "type": "Float" } ], - "returnType": "Object" + "returnType": "Void" + } + ], + "name": "ifFloat", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iffloat.md" + }, + "iffont": { + "implementers": [ + { + "description": "roFont represents a particular font, from a font-family (eg. Arial), with a particular pixel size (e.g 20), and a particular boldness or italicness", + "name": "roFont", + "url": "https://developer.roku.com/docs/references/brightscript/components/rofont.md" + } + ], + "methods": [ + { + "description": "Returns the number of pixels of the font ascent.", + "name": "GetAscent", + "params": [], + "returnDescription": "The number of pixels.", + "returnType": "Integer" }, { - "description": "Returns details about the current and next program on a channel.", - "name": "GetNowNextPrograms", + "description": "Returns the number of pixels of the font descent.", + "name": "GetDescent", + "params": [], + "returnDescription": "The number of pixels.", + "returnType": "Integer" + }, + { + "description": "Returns the font maximum advance width in pixels.", + "name": "GetMaxAdvance", + "params": [], + "returnDescription": "The number of pixels.", + "returnType": "Integer" + }, + { + "description": "Returns the number of pixels from one line to the next when drawing with this font.", + "name": "GetOneLineHeight", + "params": [], + "returnDescription": "The number of pixels.", + "returnType": "Integer" + }, + { + "description": "Returns the number of pixels from one line to the next when drawing with this font. Each glyph and the needed spacing between glyphs is measured.", + "name": "GetOneLineWidth", "params": [ { "default": null, - "description": "The channel number for which programs are to be retrieved.", + "description": "The subject text.", "isRequired": true, - "name": "channel", + "name": "text", "type": "String" + }, + { + "default": null, + "description": "Generally, the amount of pixels available for rendering on this line.", + "isRequired": true, + "name": "MaxWidth", + "type": "Integer" } ], - "returnDescription": "An roAssociativeArray containing two roArray components: one for the current program and another for the next program on the channel. Each roArray contains the following key/value pairs detailing the program:", - "returnType": "Dynamic" - }, - { - "description": "Returns an integer which is incremented each time the underlying data in the guide changes.", - "name": "GetVersion", - "params": [], - "returnDescription": "The version number of the program guide.", + "returnDescription": "The number of pixels. This will be less than provided MaxWidth.", "returnType": "Integer" } ], - "name": "ifProgramGuide", + "name": "ifFont", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifprogramguide.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iffont.md" }, - "ifregex": { - "description": "> See the PCRE documentation ([http://www.pcre.org/](http://www.pcre.org/)) for documentation on the PCRE library used for regular expression matching. See the [Perlre main page](http://perldoc.perl.org/perlre.html \"Perlre main page\") for complete documentation of the possible regular expressions this library can parse and match. In general, most Perl compatible regular expressions are supported.", + "iffontregistry": { "implementers": [ { - "description": "The roRegex component provides the powerful regular expression processing of the PCRE library to Brightscript strings", - "name": "roRegex", - "url": "https://developer.roku.com/docs/references/brightscript/components/roregex.md" + "description": "The roFontRegistry object allows you to create roFont objects, either using the default font or using fonts in TrueType or OpenType files packaged with your application", + "name": "roFontRegistry", + "url": "https://developer.roku.com/docs/references/brightscript/components/rofontregistry.md" } ], "methods": [ { - "description": "Checks if a string matches the matching pattern.", - "name": "IsMatch", + "description": "Returns a valid font string.", + "name": "Get", "params": [ { "default": null, - "description": "The string to be checked.", + "description": "The font family name.", "isRequired": true, - "name": "str", + "name": "family", "type": "String" - } - ], - "returnDescription": "A flag indicating whether the string matches the matching pattern.", - "returnType": "Boolean" - }, - { - "description": "If the matching pattern contains N parenthetical substrings, the relevant substrings are returned as an array of length N+1, where array\\[0\\] is again the entire match and each additional entry in the array is the match for the corresponding parenthetical expression.", - "name": "Match", - "params": [ + }, { "default": null, - "description": "The string to be searched for matching substrings.", + "description": "The requested font size, in pixels, not points.", "isRequired": true, - "name": "str", - "type": "String" + "name": "size", + "type": "Integer" + }, + { + "default": null, + "description": "\"bold\" specifies a font variant that may be (but is not always) supported by the font file.", + "isRequired": true, + "name": "bold", + "type": "Boolean" + }, + { + "default": null, + "description": "\"italic\" specifies a font variant that may be (but is not always) supported by the font file.", + "isRequired": true, + "name": "italic", + "type": "Boolean" } ], - "returnDescription": "An roArray of matched substrings from str. If no match was made, an empty array is returned. If a match was made, the entire match is returned in array\\[0\\]. If there are no parenthetical substrings this is the only entry in the array", + "returnDescription": "A valid font string.", + "returnType": "String" + }, + { + "description": "Returns the system font at its default size. Calling this method is the same as calling the [GetDefaultFont()](#getdefaultfontsize-as-integer-bold-as-boolean-italic-as-boolean-as-object) method with the following syntax: `reg.GetDefaultFont(reg.GetDefaultFontSize(), false, false)`.", + "name": "GetDefaultFont", + "params": [], + "returnDescription": "The system font as its default size.", "returnType": "Object" }, { - "description": "Returns all matches of the specific regular expression pattern in the target string.", - "name": "MatchAll", + "description": "Returns the system font. The system font is always available, even if the [Register()](#registerpath-as-string-as-boolean) method has not been called", + "name": "GetDefaultFont", "params": [ { "default": null, - "description": "The string to be searched for matching substrings.", + "description": "The requested font size, in pixels, not points.", "isRequired": true, - "name": "str", - "type": "String" + "name": "size", + "type": "Integer" + }, + { + "default": null, + "description": "\"bold\" specifies a font variant that may be (but is not always) supported by the font file.", + "isRequired": true, + "name": "bold", + "type": "Boolean" + }, + { + "default": null, + "description": "\"italic\" specifies a font variant that may be (but is not always) supported by the font file.", + "isRequired": true, + "name": "italic", + "type": "Boolean" } ], - "returnDescription": "An roArray where the first element is the full matched string and if there are any capture groups those are returned in subsequent array elements", + "returnDescription": "An roFont object representing the system font.", "returnType": "Object" }, { - "description": "Replaces the first occurrence of a matching pattern in str with replacement and returns the result. The replacement may contain numbered back-references to parenthetical substrings.", - "name": "Replace", + "description": "Returns the default font size.", + "name": "GetDefaultFontSize", + "params": [], + "returnDescription": "The default font size.", + "returnType": "Integer" + }, + { + "description": "Returns the names of the font families that have been registered via the [Register()](#registerpath-as-string-as-boolean) method. Each name can be passed as the first parameter to the [GetFont()](#getfontfamily-as-string-size-as-integer-bold-as-boolean-italic-as-boolean-as-object) method.", + "name": "GetFamilies", + "params": [], + "returnDescription": "An [roArray](/docs/references/brightscript/components/roarray.md \"roArray\") of strings that represent the names of the font families that have been registered.", + "returnType": "Object" + }, + { + "description": "Returns a font from the specified family, selected from the fonts previously registered via the [Register()](#registerpath-as-string-as-boolean) method.", + "name": "GetFont", "params": [ { "default": null, - "description": "The string to be searched.", + "description": "The font family name.", "isRequired": true, - "name": "str", + "name": "family", "type": "String" }, { "default": null, - "description": "The string to be used to replace matches in source string.", + "description": "The requested font size, in pixels, not points.", "isRequired": true, - "name": "replacement", - "type": "String" - } - ], - "returnDescription": "A string with the result of the replace operation.", - "returnType": "String" - }, - { - "description": "Replaces all occurrences of a matching pattern in str with replacement and returns the result. The replacement may contain numbered back-references to parenthetical substrings.", - "name": "ReplaceAll", - "params": [ + "name": "size", + "type": "Integer" + }, { "default": null, - "description": "The string to be searched.", + "description": "\"bold\" specifies a font variant that may be (but is not always) supported by the font file.", "isRequired": true, - "name": "str", - "type": "String" + "name": "bold", + "type": "Boolean" }, { "default": null, - "description": "The string to be used to replace matches in source string.", + "description": "\"italic\" specifies a font variant that may be (but is not always) supported by the font file.", "isRequired": true, - "name": "replacement", - "type": "String" + "name": "italic", + "type": "Boolean" } ], - "returnDescription": "A string with the result of the replace all operation.", - "returnType": "String" + "returnDescription": "An [roFont](/docs/references/brightscript/components/rofont.md \"roFont\") object representing a font from the specified family.", + "returnType": "Object" }, { - "description": "Uses the matching pattern as a separator and splits the string on the separator boundaries.", - "name": "Split", + "description": "Registers a font file (.ttf or .otf format). Each font file defines one or more font families (usually one).", + "name": "Register", "params": [ { "default": null, - "description": "The string to be split.", "isRequired": true, - "name": "str", + "name": "path", "type": "String" } ], - "returnDescription": "An roList of substrings of str that were separated by strings which match the pattern in the CreateObject call. The separator strings are not returned. If no matches were found, the returned list contains a single item with the string unchanged.", - "returnType": "Object" + "returnDescription": "A flag indicating whether the fonts in the specified file were successfully installed.", + "returnType": "Boolean" } ], - "name": "ifRegex", + "name": "ifFontRegistry", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifregex.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iffontregistry.md" }, - "ifregion": { + "iffunction": { + "description": "Interface equivalent for intrinsic type Function.", "implementers": [ { - "description": "The roRegion component is used to represent a subsection of a bitmap", - "name": "roRegion", - "url": "https://developer.roku.com/docs/references/brightscript/components/roregion.md" + "description": "Object equivalent for intrinsic type Function", + "name": "roFunction", + "url": "https://developer.roku.com/docs/references/brightscript/components/rofunction.md" } ], "methods": [ { - "description": "Returns a newly created copy of the region as a new [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object.", - "name": "Copy", + "name": "GetSub", "params": [], - "returnDescription": "An roRegion Object.", - "returnType": "Object" + "returnType": "Function" }, { - "description": "Returns the roBitmap object of the bitmap to which this region refers. A region is always a section of a bitmap.", - "name": "GetBitmap", - "params": [], - "returnDescription": "An roBitmap object of the bitmap.", - "returnType": "Object" - }, + "name": "SetSub", + "params": [ + { + "default": null, + "isRequired": true, + "name": "value", + "type": "Function" + } + ], + "returnType": "Void" + } + ], + "name": "ifFunction", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iffunction.md" + }, + "ifgetmessageport": { + "implementers": [ { - "description": "Returns the collision type.", - "name": "GetCollisionType", - "params": [], - "returnDescription": "The collision type, which may be one of the following values:", - "returnType": "Integer" + "description": "The HDMI status component provides an interface to the current HDMI operational status", + "name": "roHdmiStatus", + "url": "https://developer.roku.com/docs/references/brightscript/components/rohdmistatus.md" }, { - "description": "Returns the height of the region.", - "name": "GetHeight", - "params": [], - "returnDescription": "The height of the region.", - "returnType": "Integer" + "description": "The roScreen component provides a full screen drawing surface that can be stacked and that you can receive input events from", + "name": "roScreen", + "url": "https://developer.roku.com/docs/references/brightscript/components/roscreen.md" }, { - "description": "Returns the pre-translation x value.", - "name": "GetPretranslationX", - "params": [], - "returnDescription": "The pre-translation x value.", - "returnType": "Integer" + "description": "The roTextToSpeech component provides text to speech capabilities to applications", + "name": "roTextToSpeech", + "url": "https://developer.roku.com/docs/references/brightscript/components/rotexttospeech.md" }, { - "description": "Returns the pre-translation y value.", - "name": "GetPretranslationY", + "description": "A roUrlTransfer object transfers data to or from remote servers specified by URLs", + "name": "roUrlTransfer", + "url": "https://developer.roku.com/docs/references/brightscript/components/rourltransfer.md" + } + ], + "methods": [ + { + "description": "Returns the message port (if any) currently associated with the object", + "name": "GetMessagePort", "params": [], - "returnDescription": "The pre-translation y value.", - "returnType": "Integer" - }, + "returnDescription": "The message port.", + "returnType": "Object" + } + ], + "name": "ifGetMessagePort", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifgetmessageport.md" + }, + "ifhdmistatus": { + "implementers": [ + { + "description": "The HDMI status component provides an interface to the current HDMI operational status", + "name": "roHdmiStatus", + "url": "https://developer.roku.com/docs/references/brightscript/components/rohdmistatus.md" + } + ], + "methods": [ { - "description": "Returns the scaling mode.", - "name": "GetScaleMode", + "description": "Returns the version number of the currently established HDCP link.", + "name": "GetHdcpVersion", "params": [], - "returnDescription": "The scaling mode, which may be one of the following values:", - "returnType": "Integer" + "returnDescription": "The version number of the HDCP link: 1.4 or 2.2.", + "returnType": "String" }, { - "name": "GetTime", + "description": "Checks whether the HDMI or MHL output is connected to an HDMI device.", + "name": "IsConnected", "params": [], - "returnType": "Integer" + "returnDescription": "A flag indicating whether the HDMI or MHL output is connected to an HDMI device.", + "returnType": "Boolean" }, { - "description": "Returns the width of the region.", - "name": "GetWidth", - "params": [], - "returnDescription": "The width of the region.", - "returnType": "Integer" - }, + "description": "Checks if the current established HDCP link is the specified version or higher", + "name": "IsHdcpActive", + "params": [ + { + "default": null, + "description": "The HDCP link version to be checked (for example, \"1.4\" or \"2.2\").", + "isRequired": true, + "name": "version", + "type": "String" + } + ], + "returnDescription": "A flag indicating whether the current established HDCP link is the specified `version`.", + "returnType": "Boolean" + } + ], + "name": "ifHdmiStatus", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifhdmistatus.md" + }, + "ifhmac": { + "implementers": [ { - "description": "Returns if the region can be wrapped.", - "name": "GetWrap", + "description": "The HMAC component provides an interface to the OpenSSL HMAC functions", + "name": "roHMAC", + "url": "https://developer.roku.com/docs/references/brightscript/components/rohmac.md" + } + ], + "methods": [ + { + "description": "Returns an [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md\"roByteArray\") containing the final MAC.", + "name": "Final", "params": [], - "returnType": "Boolean" + "returnDescription": "The final MAC.", + "returnType": "Object" }, { - "description": "Returns the x coordinate of the region in its bitmap.", - "name": "GetX", - "params": [], - "returnDescription": "The x coordinate value", - "returnType": "Integer" + "description": "Digests the data in an array generates a MAC. Calling this method is the same as making the following calls:", + "name": "Process", + "params": [ + { + "default": null, + "description": "An [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md\"roByteArray\") with the data to be digested.", + "isRequired": true, + "name": "message", + "type": "Object" + } + ], + "returnDescription": "An [roByteArray](/docs/references/brightscript/components/robytearray.md \"roByteArray\") containing the generated MAC.", + "returnType": "Object" }, { - "description": "Returns the y coordinate of the region in its bitmap.", - "name": "GetY", + "description": "Re-initializes an existing HMAC context. This can be called to reuse an existing roHMAC object to authenticate new data.", + "name": "Reinit", "params": [], - "returnDescription": "The y coordinate value", + "returnDescription": "An integer indicating whether the function succeeded (0) or failed (1).", "returnType": "Integer" }, { - "description": "Adds the passed parameters x,y, w, and h to the values of those roRegion fields. Respects the wrap setting when adjusting the fields by the offsets.", - "name": "Offset", + "description": "Initializes new HMAC context.", + "name": "Setup", "params": [ { "default": null, - "description": "The x-coordinate of the region.", - "isRequired": true, - "name": "x", - "type": "Dynamic" - }, - { - "default": null, - "description": "The y-coordinate of the region.", - "isRequired": true, - "name": "y", - "type": "Dynamic" - }, - { - "default": null, - "description": "The width of the region.", + "description": "Selects one of the supported digest algorithms, as documented in [roEVPDigest](https://developer.roku.com/docs/references/brightscript/components/roevpdigest.md\"roEVPDigest\").", "isRequired": true, - "name": "w", - "type": "Dynamic" + "name": "digestType", + "type": "String" }, { "default": null, - "description": "The height of the region.", + "description": "An roByteArray containing the key for the MAC.", "isRequired": true, - "name": "h", - "type": "Dynamic" + "name": "key", + "type": "Object" } ], - "returnType": "Void" + "returnDescription": "An integer indicating whether the function succeeded (0) or failed (1).", + "returnType": "Integer" }, { - "description": "Initializes the fields of this region to be the same as the values of the fields in the srcRegion.", - "name": "Set", + "description": "Adds more data to be digested. The data in the array is added to the current digest.", + "name": "Update", "params": [ { "default": null, - "description": "An roRegion object.", + "description": "An [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md\"roByteArray\") with the additional data to be digested.", "isRequired": true, - "name": "srcRegion", + "name": "partialMesssage", "type": "Object" } ], "returnType": "Void" + } + ], + "name": "ifHMAC", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifhmac.md" + }, + "ifhttpagent": { + "description": "The ifHttpAgent methods modify the way that URLs are accessed", + "implementers": [ + { + "description": "The Application Manager APIs set application level attributes, which mostly affect the look-and-feel of the application", + "name": "roAppManager", + "url": "https://developer.roku.com/docs/references/brightscript/components/roappmanager.md" }, { - "description": "Sets the collision circle used for type-2 collision tests. The center of the circle is the (x,y) position of the sprite plus the specified offsets. The radius specifies the size of the circle.", - "name": "SetCollisionCircle", + "description": "The Audio Player object provides the ability to setup the playing of a series of audio streams", + "name": "roAudioPlayer", + "url": "https://developer.roku.com/docs/references/brightscript/components/roaudioplayer.md" + }, + { + "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", + "name": "roSGNode", + "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" + }, + { + "description": "The Texture Manager provides a set of API's for managing an roBitmap cache.", + "name": "roTextureManager", + "url": "https://developer.roku.com/docs/references/brightscript/components/rotexturemanager.md" + }, + { + "description": "An roTextureRequest is used to make requests to the roTextureManager", + "name": "roTextureRequest", + "url": "https://developer.roku.com/docs/references/brightscript/components/rotexturerequest.md" + }, + { + "description": "A roUrlTransfer object transfers data to or from remote servers specified by URLs", + "name": "roUrlTransfer", + "url": "https://developer.roku.com/docs/references/brightscript/components/rourltransfer.md" + }, + { + "description": "The roVideoPlayer component implements a video player with more programmatic control, but less user control than the roVideoScreen component", + "name": "roVideoPlayer", + "url": "https://developer.roku.com/docs/references/brightscript/components/rovideoplayer.md" + } + ], + "methods": [ + { + "description": "Adds the specified cookies to the cookie cache.", + "name": "AddCookies", "params": [ { "default": null, - "description": "The offset for the x position of the sprite.", - "isRequired": true, - "name": "xOffset", - "type": "Integer" - }, - { - "default": null, - "description": "The offset for the y position of the sprite.", - "isRequired": true, - "name": "yOffset", - "type": "Integer" - }, - { - "default": null, - "description": "The size of the circle.", + "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": "Radius", - "type": "Integer" + "name": "cookies", + "type": "Object" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the cookies were successfully added to the cache.", + "returnType": "Boolean" }, { - "description": "Sets the collision rectangle used for type-1 collision tests. The upper left corner of the rectangle is the (x,y) position of the sprite plus the specified offsets. The width and height specify the size of the rectangle.", - "name": "SetCollisionRectangle", + "name": "AddHeader", "params": [ { "default": null, - "description": "The offset for the x position of the sprite.", - "isRequired": true, - "name": "xOffset", - "type": "Integer" - }, - { - "default": null, - "description": "The offset for the y position of the sprite.", - "isRequired": true, - "name": "yOffset", - "type": "Integer" - }, - { - "default": null, - "description": "The width of the rectangle.", + "description": "The name of the HTTP header to be added to the list of headers. If \"x-roku-reserved-dev-id\" is passed as the name, the value parameter is ignored and in its place, the devid of the currently running channel is used as the value. This allows the developer's server to know which client app is talking to it. Any other headers with names beginning with \"x-roku-reserved-\" are reserved and may not be set.", "isRequired": true, - "name": "width", - "type": "Integer" + "name": "name", + "type": "String" }, { "default": null, - "description": "The height of the rectangle.", + "description": "The value of the HTTP header being added.", "isRequired": true, - "name": "height", - "type": "Integer" + "name": "value", + "type": "String" } ], + "returnDescription": "A flag indicating whether the HTTP header was successfully added.", + "returnType": "Boolean" + }, + { + "description": "Removes all cookies from the cookie cache.", + "name": "ClearCookies", + "params": [], "returnType": "Void" }, { - "description": "Sets the type of region to be used for collision tests with this sprite.", - "name": "SetCollisionType", - "params": [ - { - "default": null, - "description": "The collision type, which may be one of the following values: * Type 0– Use the entire defined region of the sprite. Type 0 is the default * Type 1 – Use the defined rectangular region specified by the SetCollisionRectangle() method * Type 2 – Use a circular region specified by the SetCollisionCircle() method", - "isRequired": true, - "name": "collisiontype", - "type": "Integer" - } - ], + "description": "Enables any Set-Cookie headers returned from the request to be interpreted and the resulting cookies to be added to the cookie cache.", + "name": "EnableCookies", + "params": [], "returnType": "Void" }, { - "description": "Sets the pre-translation for DrawObject, DrawRotatedObject, and DrawScaledObject.", - "name": "SetPretranslation", + "name": "GetCookies", "params": [ { "default": null, - "description": "The pre-translation x-value.", + "description": "The domain of the cookies to be retrieved. To match all domains, provide an empty string.", "isRequired": true, - "name": "x", - "type": "Integer" + "name": "domain", + "type": "String" }, { "default": null, - "description": "The pre-translation y-value.", + "description": "The path of the cookies to be retrieved.", "isRequired": true, - "name": "y", - "type": "Integer" + "name": "path", + "type": "String" } ], - "returnType": "Void" + "returnDescription": "An roArray of roAssociativeArrays, where each associative array represents a cookie. The roAssociativeArrays contain the following key-value pairs:", + "returnType": "Object" }, { - "description": "Sets the scaling mode used for DrawScaledObject.", - "name": "SetScaleMode", + "description": "Initializes the object to be sent to the Roku client certificate.", + "name": "InitClientCertificates", + "params": [], + "returnDescription": "A flag indicating whether the object sent to to the Roku client certificate was successfully initialized.", + "returnType": "Boolean" + }, + { + "description": "Sets the maximum depth of the certificate chain that will be accepted.", + "name": "SetCertificatesDepth", "params": [ { "default": null, - "description": "The scaling mode, which may be one of the following values: * 0 = fast scaling operation (may have jaggies) * 1 = smooth scaling operation (may be slow)", + "description": "The maximum depth to be used.", "isRequired": true, - "name": "mode", + "name": "depth", "type": "Integer" } ], "returnType": "Void" }, { - "description": "Sets the duration of each frame of any animated sprite that uses this region.", - "name": "SetTime", + "name": "SetCertificatesFile", "params": [ { "default": null, - "description": "The \"frame hold time\" in milliseconds.", + "description": "The directory path of the .pem file to be used.", "isRequired": true, - "name": "time", - "type": "Integer" + "name": "path", + "type": "String" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the certificate was successfully set.", + "returnType": "Boolean" }, { - "description": "Wraps any part of a region that extends beyond the bounds of its bitmap to the other side of the bitmap and renders it there.", - "name": "SetWrap", + "description": "Sets the HTTP headers to be sent in the HTTP request.", + "name": "SetHeaders", "params": [ { "default": null, - "description": "A flag specifying whether wrapping of the region is enabled. If this flag is set to false, the part of the region beyond the bounds of its bitmap is not rendered.", + "description": "An associative array containing the HTTP headers and values to be included in the HTTP request. If \"x-roku-reserved-dev-id\" is passed as a key, the value parameter is ignored and in its place, the devid of the currently running channel is used as the value. This allows the developer's server to know which client app is talking to it. Any other headers with names beginning with \"x-roku-reserved-\" are reserved and may not be set.", "isRequired": true, - "name": "wrap", - "type": "Boolean" + "name": "nameValueMap", + "type": "Object" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the HTTP header was successfully set.", + "returnType": "Boolean" } ], - "name": "ifRegion", + "name": "ifHttpAgent", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifregion.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifhttpagent.md" }, - "ifregistry": { + "ifimagemetadata": { "implementers": [ { - "description": "The Registry is an area of non-volatile storage where a small number of persistent settings can be stored", - "name": "roRegistry", - "url": "https://developer.roku.com/docs/references/brightscript/components/roregistry.md" + "description": "The roImageMetadata component provides developers access to image file metadata included in many .jpg EXIF headers", + "name": "roImageMetadata", + "url": "https://developer.roku.com/docs/references/brightscript/components/roimagemetadata.md" } ], "methods": [ { - "description": "Deletes the specified registry section.", - "name": "Delete", + "description": "Returns a set of simple and common image metadata", + "name": "GetMetadata", + "params": [], + "returnDescription": "An associative array containing the following key-value pairs with image metadata:", + "returnType": "Object" + }, + { + "description": "Returns all of the raw EXIF metadata.", + "name": "GetRawExif", + "params": [], + "returnDescription": "An associative array with all of the raw EXIF metadata. See the [EXIF section](/docs/references/brightscript/components/roimagemetadata.md#exif-background) for details about EXIF metadata.", + "returnType": "Object" + }, + { + "description": "Returns the raw data for an Exif tag. The method provides direct access to a specific raw EXIF tag", + "name": "GetRawExifTag", "params": [ { "default": null, - "description": "The registry section to be deleted.", + "description": "The ifd of the Exif tag.", "isRequired": true, - "name": "section", - "type": "String" + "name": "ifd", + "type": "Integer" + }, + { + "default": null, + "description": "The tag number of the Exif tag.", + "isRequired": true, + "name": "tagnum", + "type": "Integer" } ], - "returnDescription": "A flag indicating whether the registry section was successfully deleted.", - "returnType": "Boolean" - }, - { - "description": "Flushes the contents of the registry out to persistent storage in order to permanently store a token or other setting on the device.", - "name": "Flush", - "params": [], - "returnDescription": "A flag indicating whether the registry was successfully flushed.", - "returnType": "Boolean" + "returnDescription": "The raw data of an Exif tag. It the Exif tag doesn't exist it returns invalid.", + "returnType": "Dynamic" }, { - "description": "Returns the registry sections on the device.", - "name": "GetSectionList", + "description": "Returns a thumbnail image if one is embedded in the image metadata and the corresponding associative array with image data. This only generates a thumbnail if one exists.", + "name": "GetThumbnail", "params": [], - "returnDescription": "An roList with one entry for each registry section. Each registry section is an roString containing the name of the section. The section itself can be accessed by creating an [roRegistrySection](/docs/references/brightscript/components/roregistrysection.md \"roRegistrySection\") object using that name.", + "returnDescription": "An associative array that with **bytes** and **type** keys with the image data:", "returnType": "Object" }, { - "description": "Returns the number of bytes available in the channel application's device registry (16K minus current file size). This function can be used, for example, to check the remaining space and remove older entries before writing newer ones. The following code demonstrates how to do this:", - "name": "GetSpaceAvailable", - "params": [], - "returnDescription": "An integer representing the the number of bytes available in the device registry.", - "returnType": "Integer" + "description": "Sets the URL to the image. Only file URLs are supported", + "name": "SetUrl", + "params": [ + { + "default": null, + "description": "The URL of the image.", + "isRequired": true, + "name": "url", + "type": "String" + } + ], + "returnType": "Void" } ], - "name": "ifRegistry", + "name": "ifImageMetaData", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifregistry.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifimagemetadata.md" }, - "ifregistrysection": { + "ifinput": { "implementers": [ { - "description": "A Registry Section enables the organization of settings within the registry", - "name": "roRegistrySection", - "url": "https://developer.roku.com/docs/references/brightscript/components/roregistrysection.md" + "description": "An roInput object can be used to receive events sent from a network client using the External Control Protocol (ECP), as described in External Control API", + "name": "roInput", + "url": "https://developer.roku.com/docs/references/brightscript/components/roinput.md" } ], "methods": [ { - "name": "Delete", - "params": [ - { - "default": null, - "description": "The key to be deleted.", - "isRequired": true, - "name": "key", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the key was successfully deleted.", + "description": "Registers a channel to receive `roInput transport` events, which are voice commands sent via the Roku remote control, Roku mobile app, or a virtual assistant such as Amazon Alexa or Google Assistant.", + "name": "EnableTransportEvents", + "params": [], + "returnDescription": "A flag indicating whether transport event notifications were successfully registered.", "returnType": "Boolean" }, { - "description": "Checks if the specified key resides in the registry.", - "name": "Exists", + "description": "Marks a transport command as handled, unhandled, or handled with an error.", + "name": "EventResponse", "params": [ { "default": null, - "description": "The key to be checked.", "isRequired": true, - "name": "key", - "type": "String" + "name": "aa", + "type": "roAssociativeArray" } ], - "returnDescription": "A flag indicating whether the key is in the registry.", - "returnType": "Boolean" - }, - { - "description": "Flushes the contents of the registry out to persistent storage in order to permanently store a token or other setting on the device. Developers should explicitly this method after performing a write or series of writes. This method is transactional and all writes between calls to it are atomic.", - "name": "Flush", - "params": [], - "returnDescription": "A flag indicating whether the registry was successfully flushed.", - "returnType": "Boolean" + "returnDescription": "A flag indicating whether the event response operation was successful.", + "returnType": "Void" }, { - "description": "Gets a list of the keys in the registry.", - "name": "GetKeyList", + "description": "Returns the message port (if any) currently associated with the object.", + "name": "GetMessagePort", "params": [], - "returnDescription": "An roList containing one entry per registry key in this section.", + "returnDescription": "The message port value.", "returnType": "Object" }, { - "description": "Reads and returns the value of the specified key.", - "name": "Read", + "description": "Sets the roMessagePort to be used to receive events.", + "name": "SetMessagePort", "params": [ { "default": null, - "description": "The key name to be read.", + "description": "The port to be used to receive events.", "isRequired": true, - "name": "key", - "type": "String" + "name": "port", + "type": "Object" } ], - "returnDescription": "The value of the key.", - "returnType": "String" + "returnType": "Void" + } + ], + "name": "ifInput", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifinput.md" + }, + "ifint": { + "description": "> Interface equivalent for intrinsic type 'Integer'", + "implementers": [ + { + "description": "Object equivalent for intrinsic type Integer", + "name": "roInt", + "url": "https://developer.roku.com/docs/references/brightscript/components/roint.md" + } + ], + "methods": [ + { + "description": "Gets the integer value stored in the calling Integer object.", + "name": "GetInt", + "params": [], + "returnDescription": "The integer value stored in the calling Integer object.", + "returnType": "Integer" }, { - "description": "Reads multiple values from the registry.", - "name": "ReadMulti", + "description": "Sets the calling Integer object to the specified integer value.", + "name": "SetInt", "params": [ { "default": null, - "description": "An array of strings containing the key names to be read.", + "description": "The integer value to be set on the calling Integer object.", "isRequired": true, - "name": "keysArray", - "type": "Object" + "name": "value", + "type": "Integer" } ], - "returnDescription": "An associative array containing the keys and corresponding values read from the registry.", - "returnType": "Object" + "returnType": "Void" + } + ], + "name": "ifInt", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifint.md" + }, + "ifintops": { + "implementers": [ + { + "description": "Object equivalent for intrinsic type Integer", + "name": "roInt", + "url": "https://developer.roku.com/docs/references/brightscript/components/roint.md" + } + ], + "methods": [ + { + "description": "Returns the integer value formatted as a decimal string. No leading space is appended for non-negative numbers.", + "name": "ToStr", + "params": [], + "returnDescription": "A decimal string.", + "returnType": "String" + } + ], + "name": "ifIntOps", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifintops.md" + }, + "iflist": { + "implementers": [ + { + "description": "The list object implements the interfaces: ifList, ifArray, ifEnum and therefore can behave like an array that can dynamically add members", + "name": "roList", + "url": "https://developer.roku.com/docs/references/brightscript/components/rolist.md" }, { - "description": "Replaces the value of the specified key. Does not guarantee a commit to non-volatile storage until an explicit [Flush()](#flush-as-boolean) is done.", - "name": "Write", + "description": "Contains a list of roXML objects", + "name": "roXMLList", + "url": "https://developer.roku.com/docs/references/brightscript/components/roxmllist.md" + } + ], + "methods": [ + { + "description": "Adds an element to the head of the list.", + "name": "AddHead", "params": [ { "default": null, - "description": "The name of the key to be updated.", - "isRequired": true, - "name": "key", - "type": "String" - }, - { - "default": null, - "description": "The updated value to be written to the specified key.", "isRequired": true, - "name": "value", - "type": "String" + "name": "tval", + "type": "Dynamic" } ], - "returnDescription": "A flag indicating whether the value of the key was successfully updated.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Writes multiple values to the registry.", - "name": "WriteMulti", + "description": "Adds an element to the tail of the list.", + "name": "AddTail", "params": [ { "default": null, "isRequired": true, - "name": "Object", - "type": "roAssociativeArray" + "name": "tval", + "type": "Dynamic" } ], - "returnDescription": "A flag indicating whether the values were successfully updated.", + "returnType": "Void" + }, + { + "name": "Clear", + "params": [], + "returnType": "Void" + }, + { + "description": "Returns the number of elements in the list.", + "name": "Count", + "params": [], + "returnDescription": "The number of elements in the list.", + "returnType": "Integer" + }, + { + "description": "Retrieves the entry at the head of the list.", + "name": "GetHead", + "params": [], + "returnDescription": "The entry retrieved from the head of the list.", + "returnType": "Dynamic" + }, + { + "description": "Gets the entry at current index or position from the list and increments the index or position in the list.", + "name": "GetIndex", + "params": [], + "returnDescription": "The entry retrieved from the list. This method returns invalid if the end of the list is reached.", + "returnType": "Dynamic" + }, + { + "description": "Retrieves the entry at the tail of the list.", + "name": "GetTail", + "params": [], + "returnDescription": "The entry retrieved from the tail of the list.", + "returnType": "Dynamic" + }, + { + "description": "Removes the entry at the head of the list.", + "name": "RemoveHead", + "params": [], + "returnDescription": "The entry removed from the head of the list.", + "returnType": "Dynamic" + }, + { + "description": "Removes the entry at the current index or position from the list and increments the index or position in the list.", + "name": "RemoveIndex", + "params": [], + "returnDescription": "The entry removed from the list. This method returns invalid if the end of the list is reached.", + "returnType": "Dynamic" + }, + { + "description": "Removes the entry at the tail of the list.", + "name": "RemoveTail", + "params": [], + "returnDescription": "The entry removed from the tail of the list.", + "returnType": "Dynamic" + }, + { + "description": "Resets the current index or position in list to the head element.", + "name": "ResetIndex", + "params": [], + "returnDescription": "A flag indicating whether the index has been reset.", "returnType": "Boolean" } ], - "name": "ifRegistrySection", + "name": "ifList", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifregistrysection.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iflist.md" }, - "ifrsa": { + "iflisttoarray": { "implementers": [ { - "description": "The RSA component provides an interface to the OpenSSL RSA library of signing algorithms", - "name": "roRSA", - "url": "https://developer.roku.com/docs/references/brightscript/components/rorsa.md" + "description": "The list object implements the interfaces: ifList, ifArray, ifEnum and therefore can behave like an array that can dynamically add members", + "name": "roList", + "url": "https://developer.roku.com/docs/references/brightscript/components/rolist.md" + }, + { + "description": "Contains a list of roXML objects", + "name": "roXMLList", + "url": "https://developer.roku.com/docs/references/brightscript/components/roxmllist.md" } ], "methods": [ { - "name": "SetDigestAlgorithm", + "description": "Returns an roArray containing the same elements as the list.", + "name": "ToArray", + "params": [], + "returnDescription": "An element list as an array.", + "returnType": "Object" + } + ], + "name": "ifListToArray", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iflisttoarray.md" + }, + "iflocalization": { + "implementers": [ + { + "description": "The roLocalization object provides functions to assist in localization", + "name": "roLocalization", + "url": "https://developer.roku.com/docs/references/brightscript/components/rolocalization.md" + } + ], + "methods": [ + { + "name": "GetLocalizedAsset", "params": [ { "default": null, - "description": "An openssl string with the digest to be used. Common digest algorithms are \"sha1\", \"ripemd160\", and \"md5\".", + "description": "The name of a subdirectory in the directory pkg:/locale/XX\\_YY/ where XX\\_YY is the current language setting.", "isRequired": true, - "name": "digestAlgorithm", + "name": "dirName", "type": "String" - } - ], - "returnDescription": "A flag indicating whether the algorithm was successfully set (true) or the string was not recognized (false).", - "returnType": "Boolean" - }, - { - "description": "Specifies the private key to use for signing.", - "name": "SetPrivateKey", - "params": [ + }, { "default": null, - "description": "Specifies the private key to be used for signing. The file name should specify a path, either in the package or a temp path.", + "description": "The name of the file.", "isRequired": true, - "name": "keyFileName", + "name": "fileName", "type": "String" } ], - "returnType": "Integer" + "returnDescription": "An asset path.", + "returnType": "String" }, { - "name": "SetPublicKey", + "description": "Replaces \"^n\" in pluralString with count and returns the result.", + "name": "GetPluralString", "params": [ { "default": null, - "description": "Specifies the public key to be used for signing. The file name should specify a path, either in the package or a temp path.", "isRequired": true, - "name": "keyFileName", - "type": "String" - } - ], - "returnType": "Integer" - }, - { - "description": "Generates a signature based on the specified digest.", - "name": "Sign", - "params": [ + "name": "count", + "type": "Integer" + }, { "default": null, - "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" - } - ], - "returnDescription": "An roByteArray containing the signature, or invalid if an error occurred. Typical values include the following:", - "returnType": "Object" - }, - { - "description": "Verifies the given digest and signature. Both digest and signature should be roByteArrays. If the digest algorithm is not set (using the [SetDigestAlgorithm](#setdigestalgorithmdigestalgorithm-as-string-as-boolean) method) before calling Verify(), the digest associated with the signature is not expected to be encapsulated. This would be equivalent to simply calling the openssl function RSA\\_public\\_decrypt(signature) and then comparing the result with the digest", - "name": "Verify", - "params": [ + "name": "zeroString", + "type": "String" + }, { "default": null, - "description": "The digest to be verified.", "isRequired": true, - "name": "digest", - "type": "roByteArray" + "name": "oneString", + "type": "String" }, { "default": null, - "description": "The signature to be verified.", "isRequired": true, - "name": "signature", - "type": "roByteArray" + "name": "pluralString", + "type": "String" } ], - "returnDescription": "Indicates the result of the validation. This may be one of the following values:", - "returnType": "Integer" + "returnDescription": "The result of the operation. If count is 0, this returns zeroString. If count is 1, it returns oneString.", + "returnType": "String" } ], - "name": "ifRSA", + "name": "ifLocalization", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifrsa.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iflocalization.md" }, - "ifscreen": { - "description": "| Name | Description |\n| --- | --- |\n| [roScreen](https://developer.roku.com/docs/references/brightscript/components/roscreen.md\"roScreen\") | The roScreen component provides a full screen drawing surface that can be stacked and that you can receive input events from |", + "iflongint": { "implementers": [ { - "description": "The roScreen component provides a full screen drawing surface that can be stacked and that you can receive input events from", - "name": "roScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/roscreen.md" + "description": "Object equivalent for intrinsic type LongInteger", + "name": "roLongInteger", + "url": "https://developer.roku.com/docs/references/brightscript/components/rolonginteger.md" } ], "methods": [ { - "description": "This function first operates the same as a call to [ifDraw2D](https://developer.roku.com/docs/references/brightscript/interfaces/ifdraw2d.md\"ifDraw2D\"), completing all queued drawing operations on the back buffer (draw surface).", - "name": "SwapBuffers", + "description": "Gets the longinteger value stored in the calling Longinteger object.", + "name": "GetLongInt", "params": [], + "returnDescription": "The longinteger value stored in the calling Loninteger object.", + "returnType": "LongInteger" + }, + { + "description": "Sets the calling Longinteger object to the specified longinteger value.", + "name": "SetLongInt", + "params": [ + { + "default": null, + "description": "The longinteger value to be set on the calling Longinteger object.", + "isRequired": true, + "name": "value", + "type": "LongInteger" + } + ], "returnType": "Void" } ], - "name": "ifScreen", + "name": "ifLongInt", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifscreen.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iflongint.md" }, - "ifsearchhistory": { - "description": "> _This interface is known as ifRoSearchHistory in some Roku OS versions._", + "ifmessageport": { "implementers": [ { - "description": "The Search History object implements the system-wide storage of search terms for use in implementing the roSearchScreen", - "name": "roSearchHistory", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosearchhistory.md" + "description": "A Message Port is the place messages (events) are sent", + "name": "roMessagePort", + "url": "https://developer.roku.com/docs/references/brightscript/components/romessageport.md" } ], "methods": [ { - "description": "Clears all elements from the search history.", - "name": "Clear", + "description": "If an event object is available, it is returned. Otherwise invalid is returned. The method returns immediately in either case and does not wait.", + "name": "GetMessage", "params": [], - "returnType": "Void" + "returnDescription": "An event object.", + "returnType": "Dynamic" }, { - "description": "Returns the current search history stack.", - "name": "GetAsArray", + "description": "This method is similar to the [GetMessage()](#getmessage-as-dynamic) method, but the returned object (if not invalid) remains in the message queue. A later call to [WaitMessage()](#waitmessagetimeout-as-integer-as-dynamic), [GetMessage()](#getmessage-as-dynamic) or PeekMessage() will return the same message.", + "name": "PeekMessage", "params": [], - "returnDescription": "An [roArray](/docs/references/brightscript/components/roarray.md \"roArray\") of Strings with all available search history elements.", - "returnType": "Object" + "returnDescription": "An event object.", + "returnType": "Dynamic" }, { - "description": "Pushes a new search term onto the search history stack.", - "name": "Push", + "description": "Waits until an event object is available or timeout milliseconds have passed.", + "name": "WaitMessage", "params": [ { "default": null, - "description": "The search term to be pushed onto the search history stack.", + "description": "The number of milliseconds to wait for a message. If this parameter is set to 0, this method waits indefinitely for a message, with no timeout. The native [wait()](https://developer.roku.com/docs/references/brightscript/language/global-utility-functions.mdwaittimeout-as-integer-port-as-object-as-object) function can also be used to get the event object which WaitMessage() would return. This means that the following two statements have the same effect: ``` msg = port.WaitMessage(timeout) msg = wait(timeout, port) ```", "isRequired": true, - "name": "searchTerm", - "type": "String" + "name": "timeout", + "type": "Integer" } ], - "returnType": "Void" + "returnDescription": "If an event is available, it is returned. If the timeout expires, invalid is returned.", + "returnType": "Dynamic" } ], - "name": "ifSearchhistory", + "name": "ifMessagePort", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsearchhistory.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifmessageport.md" }, - "ifsearchscreen": { + "ifmicrophone": { "implementers": [ { - "description": "The Search Screen provides a standard way to allow users to enter text for searching", - "name": "roSearchScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosearchscreen.md" + "description": "The roMicrophone API allows channel applications to receive audio data from the user’s microphone-supported remote control device or mobile phone", + "name": "roMicrophone", + "url": "https://developer.roku.com/docs/references/brightscript/components/romicrophone.md" } ], "methods": [ { - "description": "Adds an individual value to the search term list.", - "name": "AddSearchTerm", - "params": [ - { - "default": null, - "description": "The search term to be added.", - "isRequired": true, - "name": "searchTerm", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Clears all values from the search terms list.", - "name": "ClearSearchTerms", - "params": [], - "returnType": "Void" - }, - { - "description": "Closes the screen and deletes the associated object. This is useful for avoiding screen flicker when the display order of your screens does not resemble a stack", - "name": "Close", + "description": "Indicates whether the platform and paired remote control can be requested to open the microphone.", + "name": "CanRecord", "params": [], - "returnType": "Void" + "returnDescription": "A flag indicating whether the microphone can be opened.", + "returnType": "Boolean" }, { - "description": "Shows or hides the breadcrumb text in the title area", - "name": "SetBreadcrumbEnabled", + "description": "Opens the microphone and records to create a WAV file at the specified output file path. Only tmp:/ paths are supported.", + "name": "RecordToFile", "params": [ { "default": null, - "description": "A flag specifying whether to show (true) or hide (false) the breadcrumb text.", + "description": "The file path where the WAV file is to be stored.", "isRequired": true, - "name": "enable", - "type": "Boolean" + "name": "wavFilePath", + "type": "String" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the recording was performed and saved successfully.", + "returnType": "Boolean" }, { - "description": "Sets a two-part navigational title that shows the current and the previous locations in the application hierarchy (for example, TV – Friends).", - "name": "SetBreadcrumbText", + "description": "Sets the text to be displayed in the system microphone UI.", + "name": "SetPrompt", "params": [ { "default": null, - "description": "The location 1 name.", - "isRequired": true, - "name": "location1", - "type": "String" - }, - { - "default": null, - "description": "The location 2 name.", + "description": "The text to be displayed in the system microphone UI.", "isRequired": true, - "name": "location2", + "name": "prompt", "type": "String" } ], "returnType": "Void" }, { - "description": "Shows or hides the clear button on the keypad.", - "name": "SetClearButtonEnabled", - "params": [ - { - "default": null, - "description": "A flag specifying whether to show (true) or hide (false) the clear button.", - "isRequired": true, - "name": "enable", - "type": "Boolean" - } - ], - "returnType": "Void" + "description": "Opens the microphone and begins streaming microphone events to the channel. The channel must have called the [SetMessagePort()](https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.mdsetmessageportport-as-object--as-void) method previously.", + "name": "StartRecording", + "params": [], + "returnDescription": "A flag indicating whether the microphone was opened successfully.", + "returnType": "Boolean" }, { - "description": "Set the text label for the button at the bottom of the list area. Example text might be \"clear history\", \"clear results\" or similar", - "name": "SetClearButtonText", + "description": "Stops recording and closes the microphone. This method is useful if the microphone was previously opened via the [StartRecording()](#startrecording-as-boolean) method and the channel needs to cancel the current recording prematurely, (for example, the duration limit was reached or an application error).", + "name": "StopRecording", + "params": [], + "returnDescription": "A flag indicating whether the microphone was opened and closed successfully.", + "returnType": "Boolean" + } + ], + "name": "ifMicrophone", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifmicrophone.md" + }, + "ifpath": { + "description": "| Name | Description |\n| --- | --- |\n| [roPath](https://developer.roku.com/docs/references/brightscript/components/ropath.md\"roPath\") | The roPath component provides developers an easy way to create valid file system paths |", + "implementers": [ + { + "description": "The roPath component provides developers an easy way to create valid file system paths", + "name": "roPath", + "url": "https://developer.roku.com/docs/references/brightscript/components/ropath.md" + } + ], + "methods": [ + { + "description": "Modifies or changes the current path via the specified relative or absolute path.", + "name": "Change", "params": [ { "default": null, - "description": "The text label to be displayed on the button at the bottom of the list area", + "description": "The new relative or absolute file system path to be used.", "isRequired": true, - "name": "text", + "name": "path", "type": "String" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the path was successfully changed.", + "returnType": "Boolean" }, { - "description": "Displays the default text in the search terms box when no search terms have been entered.", - "name": "SetEmptySearchTermsText", - "params": [ - { - "default": null, - "description": "The text to be displayed in the search terms box by default.", - "isRequired": true, - "name": "text", - "type": "String" - } - ], - "returnType": "Void" + "description": "Checks whether the current path is valid (the path is correctly formed). This does not check whether the file actually exists.", + "name": "IsValid", + "params": [], + "returnDescription": "A flag indicating whether the current path is valid.", + "returnType": "Boolean" }, { - "description": "Sets the text label to be displayed on the search button. For example \"search\", \"find\", etc.", - "name": "SetSearchButtonText", + "description": "Return Value", + "name": "Split", + "params": [], + "returnDescription": "An [roAssociativeArray](/docs/references/brightscript/components/roassociativearray.md \"roAssociativeArray\") that contains the following keys:", + "returnType": "Object" + } + ], + "name": "ifPath", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifpath.md" + }, + "ifprogramguide": { + "implementers": [ + { + "description": "Represents Electronic Program Guide (EPG) information from the tuner.", + "name": "roProgramGuide", + "url": "https://developer.roku.com/docs/references/brightscript/components/roprogramguide.md" + } + ], + "methods": [ + { + "description": "Returns the list of logical channel numbers on which the given program ID can be found.", + "name": "GetChannels", "params": [ { "default": null, - "description": "The text label to be displayed on the search button.", + "description": "The program ID containing the channels to be returned.", "isRequired": true, - "name": "text", - "type": "String" + "name": "id", + "type": "Integer" } ], - "returnType": "Void" + "returnType": "Object" }, { - "description": "Sets the text to be displayed for the header in the list area. This area could contain a list of search terms previously used as a search history or partial results in the case of a progressive disclosure search", - "name": "SetSearchTermHeaderText", + "description": "Returns details about the current and next program on a channel.", + "name": "GetNowNextPrograms", "params": [ { "default": null, - "description": "The text to be displayed for the header in the list are.", + "description": "The channel number for which programs are to be retrieved.", "isRequired": true, - "name": "text", + "name": "channel", "type": "String" } ], - "returnType": "Void" + "returnDescription": "An roAssociativeArray containing two roArray components: one for the current program and another for the next program on the channel. Each roArray contains the following key/value pairs detailing the program:", + "returnType": "Dynamic" }, { - "description": "Sets the search terms list to the values contained in the array provided.", - "name": "SetSearchTerms", + "description": "Returns the programs falling within the given time range.", + "name": "GetPrograms", "params": [ { "default": null, - "description": "An array of string values to be displayed.", + "description": "The start time programs must fall within to be retrieved.", "isRequired": true, - "name": "searchTerms", - "type": "Object" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the keyboard search string box to the specified text.", - "name": "SetSearchText", - "params": [ + "name": "startTime", + "type": "roDateTime" + }, { "default": null, - "description": "The text to be displayed in the keyboard search string box.", + "description": "The channel number for which programs are to be retrieved.", "isRequired": true, - "name": "text", + "name": "channel", "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Displays or refreshes the screen after creation or state changes.", - "name": "Show", - "params": [], - "returnDescription": "A flag indicating whether the search screen successfully was displayed.", - "returnType": "Boolean" - } - ], - "name": "ifSearchScreen", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsearchscreen.md" - }, - "ifsetmessageport": { - "implementers": [ - { - "description": "The HDMI status component provides an interface to the current HDMI operational status", - "name": "roHdmiStatus", - "url": "https://developer.roku.com/docs/references/brightscript/components/rohdmistatus.md" - }, - { - "description": "The roScreen component provides a full screen drawing surface that can be stacked and that you can receive input events from", - "name": "roScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/roscreen.md" - }, - { - "description": "The roTextToSpeech component provides text to speech capabilities to applications", - "name": "roTextToSpeech", - "url": "https://developer.roku.com/docs/references/brightscript/components/rotexttospeech.md" - }, - { - "description": "A roUrlTransfer object transfers data to or from remote servers specified by URLs. It can perform mutual authentication with a web server", - "name": "roUrlTransfer", - "url": "https://developer.roku.com/docs/references/brightscript/components/rourltransfer.md" - } - ], - "methods": [ - { - "description": "Sets the [roMessagePort](https://developer.roku.com/docs/references/brightscript/components/romessageport.md\"roMessagePort\") to be used for all events from the screen.", - "name": "SetMessagePort", - "params": [ + }, { "default": null, - "description": "The roMessagePort to be used for screen events.", + "description": "The end time programs must fall within to be retrieved.", "isRequired": true, - "name": "port", - "type": "Object" + "name": "endTime", + "type": "roDateTime" } ], - "returnType": "Void" + "returnDescription": "An roArray of programs falling within the given time range (returns invalid if the given channel is unknown). Each entry in the array contains an roAssociativeArray containing the following details of a program:", + "returnType": "Object" + }, + { + "description": "Returns an integer which is incremented each time the underlying data in the guide changes.", + "name": "GetVersion", + "params": [], + "returnDescription": "The version number of the program guide.", + "returnType": "Integer" } ], - "name": "ifSetMessagePort", + "name": "ifProgramGuide", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifprogramguide.md" }, - "ifsgnodeboundingrect": { - "description": "The ifSGNodeBoundingRect interface can be used to query the bounding rectangle of subject node. The ifSGNodeBoundingRect interface methods return a node bounding rectangle as an associative array with four elements:\n\n| Name | Value |\n| --- | --- |\n| x | x-coordinate of the origin of the bounding rectangle |\n| y | y-coordinate of the origin of the bounding rectangle |\n| width | width of the bounding rectangle |\n| height | height of the bounding rectangle |\n\n> These methods return the bounding rectangle dimensions and location of component objects at the time they are called. If they are called before an object is fully constructed, such as before all graphical images have been loaded, they will return the dimensions and location at the time of the call, which may not be the correct values for placing the component object properly. To ensure that your screen has the component objects located as you intended, make sure you call these methods after the component object is fully constructed. For example, if the component object relies on loading graphical images to construct its appearance, it is best to use these methods as part of an observer callback function triggered by the image loading field events, such as the loadStatus field of the Poster node.", + "ifregex": { + "description": "> See the PCRE documentation ([http://www.pcre.org/](http://www.pcre.org/)) for documentation on the PCRE library used for regular expression matching. See the [Perlre main page](http://perldoc.perl.org/perlre.html \"Perlre main page\") for complete documentation of the possible regular expressions this library can parse and match. In general, most Perl compatible regular expressions are supported.", "implementers": [ { - "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", - "name": "roSGNode", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" + "description": "The roRegex component provides the powerful regular expression processing of the PCRE library to Brightscript strings", + "name": "roRegex", + "url": "https://developer.roku.com/docs/references/brightscript/components/roregex.md" } ], "methods": [ { - "description": "Returns the node bounding rectangle. The bounding rectangle of a node is the axis-aligned rectangle computed by transforming the local bounding rectangle of the node by the node transformation matrix. The resulting rectangle corresponds to the node local bounding rectangle transformed into its parent node local coordinate system.", - "name": "boundingRect", - "params": [], - "returnDescription": "An associative array with the node bounding rectangle.", - "returnType": "Dynamic" - }, - { - "description": "Returns the node local bounding rectangle. The local bounding rectangle of a node is the axis-aligned rectangle, that includes the union of the bounding rectangle of the geometry of the node, and the bounding rectangles of all of the node children, transformed into the local coordinate system of the node.", - "name": "localBoundingRect", - "params": [], - "returnDescription": "An associative array with the node local bounding rectangle.", - "returnType": "Dynamic" - }, - { - "description": "Returns the local bounding rectangle of this node's identified sub part in the node's local coordinate system. If the subpart does not exist, the node's local bounding rectangle is returned.", - "name": "localSubBoundingRect", + "description": "Checks if a string matches the matching pattern.", + "name": "IsMatch", "params": [ { "default": null, - "description": "The index of the grid item for the local bounding rectangle to be returned in the following format: _rowindex_\\__itemindex_.", + "description": "The string to be checked.", "isRequired": true, - "name": "itemnumber", + "name": "str", "type": "String" } ], - "returnDescription": "An associative array with the local bounding rectangle of the node's identified sub part.", - "returnType": "Dynamic" - }, - { - "description": "Returns the bounding rectangle for scene components (component nodes extended from a [Scene](https://developer.roku.com/docs/references/scenegraph/scene.md\"Scene\") or [OverhangPanelSetScene](https://developer.roku.com/docs/references/scenegraph/sliding-panels-nodes/overhangpanelsetscene.md\"OverhangPanelSetScene\") node class).", - "name": "sceneBoundingRect", - "params": [], - "returnDescription": "An associative array with the bounding rectangle.", - "returnType": "Dynamic" + "returnDescription": "A flag indicating whether the string matches the matching pattern.", + "returnType": "Boolean" }, { - "description": "Returns the bounding rectangle of this node's subpart in its Scene's coordinate system If the subpart does not exist or if the node is not an ancestor of a Scene node, this will return the node's bounding rectangle.", - "name": "sceneSubBoundingRect", + "description": "If the matching pattern contains N parenthetical substrings, the relevant substrings are returned as an array of length N+1, where array\\[0\\] is again the entire match and each additional entry in the array is the match for the corresponding parenthetical expression.", + "name": "Match", "params": [ { "default": null, - "description": "The index of the grid item for the bounding rectangle to be returned in the following format: _rowindex_\\__itemindex_.", + "description": "The string to be searched for matching substrings.", "isRequired": true, - "name": "itemnumber", + "name": "str", "type": "String" } ], - "returnDescription": "An associative array with the bounding rectangle.", - "returnType": "Dynamic" + "returnDescription": "An roArray of matched substrings from str. If no match was made, an empty array is returned. If a match was made, the entire match is returned in array\\[0\\]. If there are no parenthetical substrings this is the only entry in the array", + "returnType": "Object" }, { - "description": "Returns the bounding rectangle of this node's identified sub part, as transformed by this node's transformation matrix, in its parent node's coordinate system. If the subpart does not exist, the node's bounding rectangle is returned.", - "name": "subBoundingRect", + "description": "Returns all matches of the specific regular expression pattern in the target string.", + "name": "MatchAll", "params": [ { "default": null, - "description": "The index of the grid item for the local bounding rectangle to be returned in the following format: _rowindex_\\__itemindex_.", + "description": "The string to be searched for matching substrings.", "isRequired": true, - "name": "itemnumber", + "name": "str", "type": "String" } ], - "returnDescription": "An associative array with the bounding rectangle.", - "returnType": "Dynamic" - } - ], - "name": "ifSGNodeBoundingRect", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodeboundingrect.md" - }, - "ifsgnodechildren": { - "description": "The ifSGNodeChildren interface allows querying and manipulation of nodes in a SceneGraph node tree, such as creating new nodes, placing them at certain positions in the tree, and removing them.", - "implementers": [ - { - "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", - "name": "roSGNode", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" - } - ], - "methods": [ + "returnDescription": "An roArray where the first element is the full matched string and if there are any capture groups those are returned in subsequent array elements", + "returnType": "Object" + }, { - "description": "Appends an array of children nodes to the subject node.", - "name": "appendChildren", + "description": "Replaces the first occurrence of a matching pattern in str with replacement and returns the result. The replacement may contain numbered back-references to parenthetical substrings.", + "name": "Replace", "params": [ { "default": null, - "description": "An roArray of child nodes to be appended to the subject node.", + "description": "The string to be searched.", "isRequired": true, - "name": "child_nodes", - "type": "Object" + "name": "str", + "type": "String" + }, + { + "default": null, + "description": "The string to be used to replace matches in source string.", + "isRequired": true, + "name": "replacement", + "type": "String" } ], - "returnDescription": "A flag indicating whether the children nodes were successfully appended.", - "returnType": "Boolean" + "returnDescription": "A string with the result of the replace operation.", + "returnType": "String" }, { - "description": "Creates a child node of type nodeType, and adds the new node to the end of the subject node list of children.", - "name": "createChild", + "description": "Replaces all occurrences of a matching pattern in str with replacement and returns the result. The replacement may contain numbered back-references to parenthetical substrings.", + "name": "ReplaceAll", "params": [ { "default": null, - "description": "The node class to be created.", + "description": "The string to be searched.", "isRequired": true, - "name": "nodeType", + "name": "str", + "type": "String" + }, + { + "default": null, + "description": "The string to be used to replace matches in source string.", + "isRequired": true, + "name": "replacement", "type": "String" } ], - "returnDescription": "The child node that was created.", - "returnType": "Object" + "returnDescription": "A string with the result of the replace all operation.", + "returnType": "String" }, { - "description": "Creates a specific number of new child nodes of a specific type or extended type.", - "name": "createChildren", + "description": "Uses the matching pattern as a separator and splits the string on the separator boundaries.", + "name": "Split", "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.", + "description": "The string to be split.", "isRequired": true, - "name": "subtype", + "name": "str", "type": "String" } ], - "returnDescription": "An roArray containing the new child nodes created.", + "returnDescription": "An roList of substrings of str that were separated by strings which match the pattern in the CreateObject call. The separator strings are not returned. If no matches were found, the returned list contains a single item with the string unchanged.", "returnType": "Object" - }, + } + ], + "name": "ifRegex", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifregex.md" + }, + "ifregion": { + "implementers": [ { - "description": "Returns an array with every existing node created by the currently running channel.", - "name": "getAll", + "description": "The roRegion component is used to represent a subsection of a bitmap", + "name": "roRegion", + "url": "https://developer.roku.com/docs/references/brightscript/components/roregion.md" + } + ], + "methods": [ + { + "description": "Returns a newly created copy of the region as a new [roRegion](https://developer.roku.com/docs/references/brightscript/components/roregion.md\"roRegion\") object.", + "name": "Copy", "params": [], - "returnDescription": "An roArray with the all the existing nodes created by the channel.", + "returnDescription": "An roRegion Object.", "returnType": "Object" }, { - "description": "Returns an array with every existing node created by the currently running channel (similar to the [getAll()](#getall-as-object) method) organized as an XML forest of trees according to the usual parent-child node relationship. Cycles are handled with a reference entry in the tree rather than indefinite recursion.", - "name": "getAllMeta", + "description": "Returns the roBitmap object of the bitmap to which this region refers. A region is always a section of a bitmap.", + "name": "GetBitmap", "params": [], - "returnDescription": "An roArray of strings with the all the existing nodes created by the channel.", + "returnDescription": "An roBitmap object of the bitmap.", "returnType": "Object" }, { - "description": "Returns the child node specified by the index.", - "name": "getChild", - "params": [ - { - "default": null, - "description": "The index of the child node to be retrieved.", - "isRequired": true, - "name": "index", - "type": "Integer" - } - ], - "returnDescription": "The child node at the index position; otherwise, \"invalid\".", - "returnType": "Dynamic" + "description": "Returns the collision type.", + "name": "GetCollisionType", + "params": [], + "returnDescription": "The collision type, which may be one of the following values:", + "returnType": "Integer" }, { - "description": "Returns the current number of children in the subject node list of children. This is always a non-negative number.", - "name": "getChildCount", + "description": "Returns the height of the region.", + "name": "GetHeight", "params": [], - "returnDescription": "The number of child nodes in the tree.", + "returnDescription": "The height of the region.", "returnType": "Integer" }, { - "description": "Retrieves a specific number of child nodes from the subject node, starting at a specific position.", - "name": "getChildren", - "params": [ - { - "default": null, - "description": "The number of child nodes to be retrieved.", - "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 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.", - "returnType": "Object" + "description": "Returns the pre-translation x value.", + "name": "GetPretranslationX", + "params": [], + "returnDescription": "The pre-translation x value.", + "returnType": "Integer" }, { - "description": "Returns the parent node of a node has been added to a list of children.", - "name": "getParent", + "description": "Returns the pre-translation y value.", + "name": "GetPretranslationY", "params": [], - "returnDescription": "The parent node; otherwise, \"invalid\".", - "returnType": "roSGNode" + "returnDescription": "The pre-translation y value.", + "returnType": "Integer" }, { - "description": "Returns an array with every existing node without a parent created by the currently running channel.", - "name": "getRoots", + "description": "Returns the scaling mode.", + "name": "GetScaleMode", "params": [], - "returnType": "Object" + "returnDescription": "The scaling mode, which may be one of the following values:", + "returnType": "Integer" }, { - "description": "Returns an array with every existing node without a parent created by the currently running channel.", - "name": "getRootsMeta", + "name": "GetTime", "params": [], - "returnDescription": "An roArray with every existing node without a parent created by the currently running channel.", - "returnType": "Object" + "returnType": "Integer" }, { - "description": "Returns the node's root Scene. This returns a valid Scene even if the node is not parented.", - "name": "getScene", + "description": "Returns the width of the region.", + "name": "GetWidth", "params": [], - "returnDescription": "The node's root Scene.", - "returnType": "roSGNode" + "returnDescription": "The width of the region.", + "returnType": "Integer" }, { - "description": "Inserts an array of child nodes to the subject node, starting at a specific position.", - "name": "insertChildren", + "description": "Returns if the region can be wrapped.", + "name": "GetWrap", + "params": [], + "returnType": "Boolean" + }, + { + "description": "Returns the x coordinate of the region in its bitmap.", + "name": "GetX", + "params": [], + "returnDescription": "The x coordinate value", + "returnType": "Integer" + }, + { + "description": "Returns the y coordinate of the region in its bitmap.", + "name": "GetY", + "params": [], + "returnDescription": "The y coordinate value", + "returnType": "Integer" + }, + { + "description": "Adds the passed parameters x,y, w, and h to the values of those roRegion fields. Respects the wrap setting when adjusting the fields by the offsets.", + "name": "Offset", "params": [ { "default": null, - "description": "An roArray of child nodes to be inserted in the tree.", + "description": "The x-coordinate of the region.", "isRequired": true, - "name": "child_nodes", - "type": "Object" + "name": "x", + "type": "Dynamic" }, { "default": null, - "description": "The position in the tree where to insert the child nodes.", + "description": "The y-coordinate of the region.", "isRequired": true, - "name": "index", - "type": "Integer" - } - ], - "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.", - "name": "removeChildIndex", - "params": [ + "name": "y", + "type": "Dynamic" + }, + { + "default": null, + "description": "The width of the region.", + "isRequired": true, + "name": "w", + "type": "Dynamic" + }, { "default": null, - "description": "The position in the tree of the child node to be removed.", + "description": "The height of the region.", "isRequired": true, - "name": "index", - "type": "Integer" + "name": "h", + "type": "Dynamic" } ], - "returnDescription": "A flag indicating whether the child node that was successfully removed.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Removes an array of child nodes from the subject node.", - "name": "removeChildren", + "description": "Initializes the fields of this region to be the same as the values of the fields in the srcRegion.", + "name": "Set", "params": [ { "default": null, - "description": "An roArray of child nodes to removed from the tree", + "description": "An roRegion object.", "isRequired": true, - "name": "child_nodes", + "name": "srcRegion", "type": "Object" } ], - "returnDescription": "A flag indicating whether the children nodes were successfully removed.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Removes a specific number of child nodes from the subject node starting at a specific position.", - "name": "removeChildrenIndex", + "description": "Sets the collision circle used for type-2 collision tests. The center of the circle is the (x,y) position of the sprite plus the specified offsets. The radius specifies the size of the circle.", + "name": "SetCollisionCircle", "params": [ { "default": null, - "description": "The number of child nodes to be removed.", + "description": "The offset for the x position of the sprite.", "isRequired": true, - "name": "num_children", + "name": "xOffset", "type": "Integer" }, { "default": null, - "description": "The starting position in the child node tree where the specified number of nodes are to be removed.", + "description": "The offset for the y position of the sprite.", "isRequired": true, - "name": "index", + "name": "yOffset", + "type": "Integer" + }, + { + "default": null, + "description": "The size of the circle.", + "isRequired": true, + "name": "Radius", "type": "Integer" } ], - "returnDescription": "A flag indicating whether the children nodes were successfully removed.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Replaces the child nodes in the subject node, starting at the position specified by index, with new child nodes specified by child\\_nodes", - "name": "replaceChildren", + "description": "Sets the collision rectangle used for type-1 collision tests. The upper left corner of the rectangle is the (x,y) position of the sprite plus the specified offsets. The width and height specify the size of the rectangle.", + "name": "SetCollisionRectangle", "params": [ { "default": null, - "description": "An roArray of child nodes to replace the nodes in the tree.", + "description": "The offset for the x position of the sprite.", "isRequired": true, - "name": "child_nodes", - "type": "Object" + "name": "xOffset", + "type": "Integer" }, { "default": null, - "description": "The starting position in the tree from where to replace the child nodes.", + "description": "The offset for the y position of the sprite.", "isRequired": true, - "name": "index", + "name": "yOffset", + "type": "Integer" + }, + { + "default": null, + "description": "The width of the rectangle.", + "isRequired": true, + "name": "width", + "type": "Integer" + }, + { + "default": null, + "description": "The height of the rectangle.", + "isRequired": true, + "name": "height", "type": "Integer" } ], - "returnDescription": "A flag indicating whether the children nodes were successfully replaced.", - "returnType": "Boolean" - } - ], - "name": "ifSGNodeChildren", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodechildren.md" - }, - "ifsgnodedict": { - "description": "The ifSGNodeDict interface allows you access information about the nodes in a SceneGraph node tree, and find and return a node with a specific ID.", - "implementers": [ - { - "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", - "name": "roSGNode", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" - } - ], - "methods": [ + "returnType": "Void" + }, { - "name": "clone", + "description": "Sets the type of region to be used for collision tests with this sprite.", + "name": "SetCollisionType", "params": [ { "default": null, + "description": "The collision type, which may be one of the following values: * Type 0– Use the entire defined region of the sprite. Type 0 is the default * Type 1 – Use the defined rectangular region specified by the SetCollisionRectangle() method * Type 2 – Use a circular region specified by the SetCollisionCircle() method", "isRequired": true, - "name": "isDeepCopy", - "type": "Boolean" + "name": "collisiontype", + "type": "Integer" } ], - "returnDescription": "A node tree.", - "returnType": "Object" + "returnType": "Void" }, { - "description": "Returns the node that is a descendant of the nearest component ancestor of the subject node (possibly the subject node itself) and whose id field is set to name. The search for the descendant node is a breadth-first search that includes child nodes in nodes that are declared as custom components defined in other XML component files. These together allow finding siblings and cousins of a node within the context of a component. If a node with the specified name is not found, an invalid object is returned", - "name": "findNode", + "description": "Sets the pre-translation for DrawObject, DrawRotatedObject, and DrawScaledObject.", + "name": "SetPretranslation", "params": [ { "default": null, - "description": "The name of the node to be retrieved.", + "description": "The pre-translation x-value.", "isRequired": true, - "name": "name", - "type": "String" + "name": "x", + "type": "Integer" + }, + { + "default": null, + "description": "The pre-translation y-value.", + "isRequired": true, + "name": "y", + "type": "Integer" } ], - "returnDescription": "The node that is a descendant of the nearest component ancestor of the subject node.", - "returnType": "Object" + "returnType": "Void" }, { - "description": "Checks whether a specific roSGNode refers to the same SceneGraph node object as the subject node.", - "name": "isSameNode", + "description": "Sets the scaling mode used for DrawScaledObject.", + "name": "SetScaleMode", "params": [ { "default": null, + "description": "The scaling mode, which may be one of the following values: * 0 = fast scaling operation (may have jaggies) * 1 = smooth scaling operation (may be slow)", "isRequired": true, - "name": "RoSGNode", - "type": "Object" + "name": "mode", + "type": "Integer" } ], - "returnDescription": "A flag indicating whether the nodes refer to the same SceneGraph node object.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Checks whether the subtype of the subject node is a descendant of the subtype nodeType in the SceneGraph node class hierarchy.", - "name": "isSubtype", + "description": "Sets the duration of each frame of any animated sprite that uses this region.", + "name": "SetTime", "params": [ { "default": null, - "description": "The node type of the subject node.", + "description": "The \"frame hold time\" in milliseconds.", "isRequired": true, - "name": "nodeType", - "type": "String" + "name": "time", + "type": "Integer" } ], - "returnDescription": "A flag indicating whether the subtype of the subject node is a descendant of the subtype nodeType.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Returns the subtype of the parent of the nodeType in the SceneGraph node class hierarchy.", - "name": "parentSubtype", + "description": "Wraps any part of a region that extends beyond the bounds of its bitmap to the other side of the bitmap and renders it there.", + "name": "SetWrap", "params": [ { "default": null, - "description": "The node type of the parent node.", + "description": "A flag specifying whether wrapping of the region is enabled. If this flag is set to false, the part of the region beyond the bounds of its bitmap is not rendered.", "isRequired": true, - "name": "nodeType", - "type": "String" + "name": "wrap", + "type": "Boolean" } ], - "returnDescription": "The subtype of the parent node.", - "returnType": "String" - }, - { - "description": "Returns the subtype of the subject node as specified when it was created.", - "name": "subtype", - "params": [], - "returnDescription": "The subtype of the subject node.", - "returnType": "String" + "returnType": "Void" } ], - "name": "ifSGNodeDict", + "name": "ifRegion", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodedict.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifregion.md" }, - "ifsgnodefield": { - "description": "The ifSGNodeField interface allows querying, getting, setting, and performing other similar manipulation operations on Scene Graph node fields. This interface also allows you to set and unset event observers on a subject node field.", + "ifregistry": { "implementers": [ { - "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", - "name": "roSGNode", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" + "description": "The Registry is an area of non-volatile storage where a small number of persistent settings can be stored", + "name": "roRegistry", + "url": "https://developer.roku.com/docs/references/brightscript/components/roregistry.md" } ], "methods": [ { - "description": "Adds a field with the specified name and type to the subject node. The added field is initialized to the default value for the type.", - "name": "addField", + "description": "Deletes the specified registry section.", + "name": "Delete", "params": [ { "default": null, - "description": "The name of the field to be added.", - "isRequired": true, - "name": "fieldName", - "type": "String" - }, - { - "default": null, - "description": "The type of the field to be added. Type declarations must be lowercase or the field will not be added to the node. For example, declaring \"Boolean\" as the type will prevent the field from being added.", + "description": "The registry section to be deleted.", "isRequired": true, - "name": "type", + "name": "section", "type": "String" - }, - { - "default": null, - "description": "Specifies whether observers of the field are triggered when the field value is updated to the same or new value (true), or only when the field changes to a new value (false).", - "isRequired": true, - "name": "alwayNotify", - "type": "Boolean" } ], - "returnDescription": "A flag indicating whether the field have been successfully added.", + "returnDescription": "A flag indicating whether the registry section was successfully deleted.", "returnType": "Boolean" }, { - "description": "Adds the field(s) and corresponding field value(s) defined as key-value pair(s) in the associative array fields to the subject node. The types of the added fields are determined by the values which correspond to the allowable types for an `` field.", - "name": "addFields", + "description": "Flushes the contents of the registry out to persistent storage in order to permanently store a token or other setting on the device.", + "name": "Flush", + "params": [], + "returnDescription": "A flag indicating whether the registry was successfully flushed.", + "returnType": "Boolean" + }, + { + "description": "Returns the registry sections on the device.", + "name": "GetSectionList", + "params": [], + "returnDescription": "An roList with one entry for each registry section. Each registry section is an roString containing the name of the section. The section itself can be accessed by creating an [roRegistrySection](/docs/references/brightscript/components/roregistrysection.md \"roRegistrySection\") object using that name.", + "returnType": "Object" + }, + { + "description": "Returns the number of bytes available in the channel application's device registry (16K minus current file size). This function can be used, for example, to check the remaining space and remove older entries before writing newer ones. The following code demonstrates how to do this:", + "name": "GetSpaceAvailable", + "params": [], + "returnDescription": "An integer representing the the number of bytes available in the device registry.", + "returnType": "Integer" + } + ], + "name": "ifRegistry", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifregistry.md" + }, + "ifregistrysection": { + "implementers": [ + { + "description": "A Registry Section enables the organization of settings within the registry", + "name": "roRegistrySection", + "url": "https://developer.roku.com/docs/references/brightscript/components/roregistrysection.md" + } + ], + "methods": [ + { + "name": "Delete", "params": [ { "default": null, - "description": "An roAssociativeArray containing key-value pairs for the fields to be added.", + "description": "The key to be deleted.", "isRequired": true, - "name": "fields", - "type": "Object" + "name": "key", + "type": "String" } ], - "returnDescription": "A flag indicating whether the fields have been successfully added.", + "returnDescription": "A flag indicating whether the key was successfully deleted.", "returnType": "Boolean" }, { - "description": "Returns the appropriately-typed value from the specified field of the subject node.", - "name": "getField", + "description": "Checks if the specified key resides in the registry.", + "name": "Exists", "params": [ { "default": null, - "description": "The name of the field to be retrieved.", + "description": "The key to be checked.", "isRequired": true, - "name": "fieldName", + "name": "key", "type": "String" } ], - "returnDescription": "A typed value.", - "returnType": "Object" + "returnDescription": "A flag indicating whether the key is in the registry.", + "returnType": "Boolean" }, { - "description": "Returns the names and values of all the fields in the node.", - "name": "getFields", + "description": "Flushes the contents of the registry out to persistent storage in order to permanently store a token or other setting on the device. Developers should explicitly this method after performing a write or series of writes. This method is transactional and all writes between calls to it are atomic.", + "name": "Flush", "params": [], - "returnDescription": "An roAssociativeArray containing key-value pairs with the element names and values.", + "returnDescription": "A flag indicating whether the registry was successfully flushed.", + "returnType": "Boolean" + }, + { + "description": "Gets a list of the keys in the registry.", + "name": "GetKeyList", + "params": [], + "returnDescription": "An roList containing one entry per registry key in this section.", "returnType": "Object" }, { - "description": "Returns the type of a specific field of the subject node.", - "name": "getFieldType", + "description": "Reads and returns the value of the specified key.", + "name": "Read", "params": [ { "default": null, - "description": "The name of the field to have its type retrieved.", + "description": "The key name to be read.", "isRequired": true, - "name": "fieldName", + "name": "key", "type": "String" } ], - "returnDescription": "The field type.", + "returnDescription": "The value of the key.", "returnType": "String" }, { - "description": "Returns the names and types of all the fields in the node.", - "name": "getFieldTypes", - "params": [], - "returnDescription": "An roAssociativeArray containing key-value pairs with the element names and types.", - "returnType": "Object" - }, - { - "description": "Checks whether a field exists in the node.", - "name": "hasField", + "description": "Reads multiple values from the registry.", + "name": "ReadMulti", "params": [ { "default": null, - "description": "The name of the field to be checked for whether it exists in the node.", + "description": "An array of strings containing the key names to be read.", "isRequired": true, - "name": "fieldName", - "type": "String" + "name": "keysArray", + "type": "Object" } ], - "returnDescription": "A flag indicating whether the subject node has a field whose name exactly matches fieldName, or whose fully lowercase analog is identical to that of fieldName.", - "returnType": "Boolean" + "returnDescription": "An associative array containing the keys and corresponding values read from the registry.", + "returnType": "Object" }, { - "description": "Calls a function when a field of the subject node changes. The function called must be in the scope of the current component.", - "name": "observeField", + "description": "Replaces the value of the specified key. Does not guarantee a commit to non-volatile storage until an explicit [Flush()](#flush-as-boolean) is done.", + "name": "Write", "params": [ { "default": null, - "description": "The name of the field to be monitored.", + "description": "The name of the key to be updated.", "isRequired": true, - "name": "fieldName", + "name": "key", "type": "String" }, { "default": null, - "description": "The name of the method to be executed when the value of the field changes.", + "description": "The updated value to be written to the specified key.", "isRequired": true, - "name": "functionName", + "name": "value", "type": "String" - }, + } + ], + "returnDescription": "A flag indicating whether the value of the key was successfully updated.", + "returnType": "Boolean" + }, + { + "description": "Writes multiple values to the registry.", + "name": "WriteMulti", + "params": [ { "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" + "isRequired": true, + "name": "Object", + "type": "roAssociativeArray" } ], - "returnDescription": "A flag indicating whether the value of the field being monitored changes.", + "returnDescription": "A flag indicating whether the values were successfully updated.", "returnType": "Boolean" - }, + } + ], + "name": "ifRegistrySection", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifregistrysection.md" + }, + "ifremoteinfo": { + "implementers": [ { - "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.", - "name": "observeField", + "description": "The roRemoteInfo component provides an interface to obtain attributes about the Roku remote control that is currently connected to the Roku device. Note that a Roku remote control device that is paired with a device, may not be the one that is currently connected (a single remote is typically connected to a device at a time).", + "name": "roRemoteInfo", + "url": "https://developer.roku.com/docs/references/brightscript/components/roremoteinfo.md" + } + ], + "methods": [ + { + "name": "GetModel", "params": [ { "default": null, - "description": "The name of the field to be monitored.", + "description": "The index for a Roku remote control that is currently connected to the Roku device. In addition to specific remote index, the following values may be specified: * \\-1: The most recently used remote. * 0: The first connected remote (this is typically the only remote that is connected to the device).", "isRequired": true, - "name": "fieldName", - "type": "String" - }, + "name": "remoteIndex", + "type": "Integer" + } + ], + "returnDescription": "The model number of the specified Roku remote control, or 0 if the specified remote does not exist.", + "returnType": "Integer" + }, + { + "description": "Checks if the specified Roku remote control supports the passed in feature string.", + "name": "HasFeature", + "params": [ { "default": null, - "description": "The [roMessagePort](https://developer.roku.com/docs/references/brightscript/components/romessageport.md\"roMessagePort\") to receive a [roSGNodeEvent](https://developer.roku.com/docs/references/brightscript/components/rosgnode.md\"roSGNodeEvent\") message when the value of the field changes.", + "description": "The feature to be checked, which may be one of the following values: * \"bluetooth\" * \"wifi\" * \"motion\" * \"audio\" * \"voicecapture\" * \"findremote\"", "isRequired": true, - "name": "port", - "type": "Object" + "name": "feature", + "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" + "description": "The index for a Roku remote control that is currently connected to the Roku device. In addition to specific remote index, the following values may be specified: * \\-1: The most recently used remote. * 0: The first connected remote (this is typically the only remote that is connected to the device).", + "isRequired": true, + "name": "remoteIndex", + "type": "Integer" } ], - "returnDescription": "A flag indicating whether the value of the field being monitored changes.", + "returnDescription": "A flag indicating whether the Roku remote control supports the passed in feature string.", "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.", - "name": "observeFieldScoped", + "name": "IsAwake", "params": [ { "default": null, - "description": "The name of the field to be monitored.", + "description": "The index for a Roku remote control that is currently connected to the Roku device. In addition to specific remote index, the following values may be specified: * \\-1: The most recently used remote. * 0: The first connected remote (this is typically the only remote that is connected to the device).", "isRequired": true, - "name": "fieldName", - "type": "String" - }, + "name": "remoteIndex", + "type": "Integer" + } + ], + "returnDescription": "A flag indicating whether the specified Roku remote control is awake.", + "returnType": "Boolean" + } + ], + "name": "ifRemoteInfo", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifremoteinfo.md" + }, + "ifrsa": { + "implementers": [ + { + "description": "The RSA component provides an interface to the OpenSSL RSA library of signing algorithms", + "name": "roRSA", + "url": "https://developer.roku.com/docs/references/brightscript/components/rorsa.md" + } + ], + "methods": [ + { + "name": "SetDigestAlgorithm", + "params": [ { "default": null, - "description": "The name of the method to be executed when the value of the field changes.", + "description": "An openssl string with the digest to be used. Common digest algorithms are \"sha1\", \"ripemd160\", and \"md5\".", "isRequired": true, - "name": "functionName", + "name": "digestAlgorithm", "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 algorithm was successfully set (true) or the string was not recognized (false).", "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.", - "name": "observeFieldScoped", + "description": "Specifies the private key to use for signing.", + "name": "SetPrivateKey", "params": [ { "default": null, - "description": "The name of the field to be monitored.", + "description": "Specifies the private key to be used for signing. The file name should specify a path, either in the package or a temp path.", "isRequired": true, - "name": "fieldName", + "name": "keyFileName", "type": "String" - }, + } + ], + "returnType": "Integer" + }, + { + "name": "SetPublicKey", + "params": [ { "default": null, - "description": "The [roMessagePort](https://developer.roku.com/docs/references/brightscript/components/romessageport.md\"roMessagePort\") to receive a [roSGNodeEvent](https://developer.roku.com/docs/references/brightscript/components/rosgnode.md\"roSGNodeEvent\") message when the value of the field changes.", + "description": "Specifies the public key to be used for signing. The file name should specify a path, either in the package or a temp path.", "isRequired": true, - "name": "port", - "type": "Object" - }, + "name": "keyFileName", + "type": "String" + } + ], + "returnType": "Integer" + }, + { + "description": "Generates a signature based on the specified digest.", + "name": "Sign", + "params": [ { "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" + "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" } ], - "returnDescription": "A flag indicating whether the value of the field has changed.", - "returnType": "Boolean" + "returnDescription": "An roByteArray containing the signature, or invalid if an error occurred. Typical values include the following:", + "returnType": "Object" }, { - "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.", - "name": "queueFields", + "description": "Verifies the given digest and signature. Both digest and signature should be roByteArrays. If the digest algorithm is not set (using the [SetDigestAlgorithm](#setdigestalgorithmdigestalgorithm-as-string-as-boolean) method) before calling Verify(), the digest associated with the signature is not expected to be encapsulated. This would be equivalent to simply calling the openssl function RSA\\_public\\_decrypt(signature) and then comparing the result with the digest", + "name": "Verify", "params": [ { "default": null, - "description": "A flag enabling queuing on the node.", + "description": "The digest to be verified.", "isRequired": true, - "name": "queueNode", - "type": "Boolean" + "name": "digest", + "type": "roByteArray" + }, + { + "default": null, + "description": "The signature to be verified.", + "isRequired": true, + "name": "signature", + "type": "roByteArray" } ], - "returnDescription": "A flag indicating the current state of **queueNode**.", - "returnType": "Boolean" + "returnDescription": "Indicates the result of the validation. This may be one of the following values:", + "returnType": "Integer" + } + ], + "name": "ifRSA", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifrsa.md" + }, + "ifscreen": { + "description": "| Name | Description |\n| --- | --- |\n| [roScreen](https://developer.roku.com/docs/references/brightscript/components/roscreen.md\"roScreen\") | The roScreen component provides a full screen drawing surface that can be stacked and that you can receive input events from |", + "implementers": [ + { + "description": "The roScreen component provides a full screen drawing surface that can be stacked and that you can receive input events from", + "name": "roScreen", + "url": "https://developer.roku.com/docs/references/brightscript/components/roscreen.md" + } + ], + "methods": [ + { + "description": "This function first operates the same as a call to [ifDraw2D](https://developer.roku.com/docs/references/brightscript/interfaces/ifdraw2d.md\"ifDraw2D\"), completing all queued drawing operations on the back buffer (draw surface).", + "name": "SwapBuffers", + "params": [], + "returnType": "Void" + } + ], + "name": "ifScreen", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifscreen.md" + }, + "ifsetmessageport": { + "implementers": [ + { + "description": "The HDMI status component provides an interface to the current HDMI operational status", + "name": "roHdmiStatus", + "url": "https://developer.roku.com/docs/references/brightscript/components/rohdmistatus.md" + }, + { + "description": "The roScreen component provides a full screen drawing surface that can be stacked and that you can receive input events from", + "name": "roScreen", + "url": "https://developer.roku.com/docs/references/brightscript/components/roscreen.md" }, { - "description": "Removes a field from the subject node. Fields defined in [content metadata](/docs/developer-program/getting-started/architecture/content-metadata.md \" Content Meta-Data\") and the related SceneGraph node class metadata bindings can be removed, but will be dynamically re-added at any time they are explicitly accessed.", - "name": "removeField", + "description": "The roTextToSpeech component provides text to speech capabilities to applications", + "name": "roTextToSpeech", + "url": "https://developer.roku.com/docs/references/brightscript/components/rotexttospeech.md" + }, + { + "description": "A roUrlTransfer object transfers data to or from remote servers specified by URLs. It can perform mutual authentication with a web server", + "name": "roUrlTransfer", + "url": "https://developer.roku.com/docs/references/brightscript/components/rourltransfer.md" + } + ], + "methods": [ + { + "description": "Sets the [roMessagePort](https://developer.roku.com/docs/references/brightscript/components/romessageport.md\"roMessagePort\") to be used for all events from the screen.", + "name": "SetMessagePort", "params": [ { "default": null, - "description": "The name of the field to be removed.", + "description": "The roMessagePort to be used for screen events.", "isRequired": true, - "name": "fieldName", - "type": "String" + "name": "port", + "type": "Object" } ], - "returnDescription": "A flag indicating whether the field has been successfully removed.", - "returnType": "Boolean" - }, + "returnType": "Void" + } + ], + "name": "ifSetMessagePort", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsetmessageport.md" + }, + "ifsgnodeboundingrect": { + "description": "The ifSGNodeBoundingRect interface can be used to query the bounding rectangle of subject node. The ifSGNodeBoundingRect interface methods return a node bounding rectangle as an associative array with four elements:\n\n| Name | Value |\n| --- | --- |\n| x | x-coordinate of the origin of the bounding rectangle |\n| y | y-coordinate of the origin of the bounding rectangle |\n| width | width of the bounding rectangle |\n| height | height of the bounding rectangle |\n\n> These methods return the bounding rectangle dimensions and location of component objects at the time they are called. If they are called before an object is fully constructed, such as before all graphical images have been loaded, they will return the dimensions and location at the time of the call, which may not be the correct values for placing the component object properly. To ensure that your screen has the component objects located as you intended, make sure you call these methods after the component object is fully constructed. For example, if the component object relies on loading graphical images to construct its appearance, it is best to use these methods as part of an observer callback function triggered by the image loading field events, such as the loadStatus field of the Poster node.", + "implementers": [ { - "description": "Removes one or more fields from the subject node.", - "name": "removeFields", + "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", + "name": "roSGNode", + "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" + } + ], + "methods": [ + { + "description": "Returns the bounding rectangle of this node and all of its children in the Scene's root coordinate system, including any transformation specified in the Scene node.", + "name": "ancestorBoundingRect", "params": [ { "default": null, - "description": "An roArray containing the names of the fields to be removed.", + "description": "The ancestor of the subject node.", "isRequired": true, - "name": "fieldNames", - "type": "Object" + "name": "ancestor", + "type": "roSGNode" } ], - "returnDescription": "A flag indicating whether the fields have been successfully removed.", - "returnType": "Boolean" + "returnDescription": "An associative array with the bounding rectangle and all of its children in the Scene's root coordinate system.", + "returnType": "Dynamic" }, { - "description": "Sets the value of a subject node field. This will fail and stop script execution if the value is not of the appropriate type.", - "name": "setField", + "description": "Returns the bounding rectangle of this node's subpart into the specified ancestor' s coordinate system. If the subpart does not exist or if the node is not an ancestor of the specified node, this will return the node's bounding rectangle", + "name": "ancestorSubBoundingRect", "params": [ { "default": null, - "description": "The name of the field to be updated.", + "description": "The _itemnumber_ parameter may contain one of the following strings: * itemX: where X is the index of an item in an ArrayGrid's data model (for example, **item17** is the 17th item in the data model). * itemX\\_Y: where X is the index of the row and Y is the index of an item in that row in a RowList's data model (for example, **item4\\_11** is the 11th item in row 4 of the data model). * focusItem: Gets the bounding rect of the ArrayGrid's focused item. * focusIndicator: Gets the bounding rect of the ArrayGrid's focus indicator (for example, the focus ring or list highlight).", "isRequired": true, - "name": "fieldName", + "name": "itemnumber", "type": "String" }, { "default": null, - "description": "The updated value for the field.", + "description": "The ancestor of the subject node.", "isRequired": true, - "name": "value", - "type": "Object" + "name": "ancestor", + "type": "roSGNode" } ], - "returnDescription": "A flag indicating whether the field was successfully updated.", - "returnType": "Boolean" + "returnDescription": "An associative array with the bounding rectangle.", + "returnType": "Object" }, { - "description": "Sets the values for one or more fields.", - "name": "setFields", - "params": [ - { - "default": null, - "description": "An roAssociativeArray containing key-value pairs for the fields to be updated.", - "isRequired": true, - "name": "fields", - "type": "Object" - } - ], - "returnDescription": "A flag indicating whether the fields have been successfully updated.", - "returnType": "Boolean" + "description": "Returns the node bounding rectangle. The bounding rectangle of a node is the axis-aligned rectangle computed by transforming the local bounding rectangle of the node by the node transformation matrix. The resulting rectangle corresponds to the node local bounding rectangle transformed into its parent node local coordinate system.", + "name": "boundingRect", + "params": [], + "returnDescription": "An associative array with the node bounding rectangle.", + "returnType": "Dynamic" }, { - "description": "Signals start and/or stop points for measuring channel launch and Electronic Program Grid (EPG) launch times.", - "name": "signalBeacon", + "description": "Returns the node local bounding rectangle. The local bounding rectangle of a node is the axis-aligned rectangle, that includes the union of the bounding rectangle of the geometry of the node, and the bounding rectangles of all of the node children, transformed into the local coordinate system of the node.", + "name": "localBoundingRect", + "params": [], + "returnDescription": "An associative array with the node local bounding rectangle.", + "returnType": "Dynamic" + }, + { + "description": "Returns the local bounding rectangle of this node's identified sub part in the node's local coordinate system. If the subpart does not exist, the node's local bounding rectangle is returned.", + "name": "localSubBoundingRect", "params": [ { "default": null, + "description": "The _itemnumber_ parameter may contain one of the following strings: * itemX: where X is the index of an item in an ArrayGrid's data model (for example, **item17** is the 17th item in the data model). * itemX\\_Y: where X is the index of the row and Y is the index of an item in that row in a RowList's data model (for example, **item4\\_11** is the 11th item in row 4 of the data model). * focusItem: Gets the bounding rect of the ArrayGrid's focused item. * focusIndicator: Gets the bounding rect of the ArrayGrid's focus indicator (for example, the focus ring or list highlight).", "isRequired": true, - "name": "beacon", + "name": "itemnumber", "type": "String" } ], - "returnDescription": "When you fire a launch event, the system will return an integer indicating the result of its signaling:", - "returnType": "Integer" + "returnDescription": "An associative array with the local bounding rectangle of the node's identified sub part.", + "returnType": "Dynamic" }, { - "description": "A runtime debugging method for helping minimize Rendezvous spread. This method can be called on any node from any thread.", - "name": "threadinfo", + "description": "Returns the bounding rectangle for scene components (component nodes extended from a [Scene](https://developer.roku.com/docs/references/scenegraph/scene.md\"Scene\") or [OverhangPanelSetScene](https://developer.roku.com/docs/references/scenegraph/sliding-panels-nodes/overhangpanelsetscene.md\"OverhangPanelSetScene\") node class).", + "name": "sceneBoundingRect", "params": [], - "returnDescription": "An roAssociatveArray with the following information:", - "returnType": "Object" + "returnDescription": "An associative array with the bounding rectangle.", + "returnType": "Dynamic" }, { - "description": "Removes the previously established connections between the subject node field identified by fieldName and any callback functions or message ports.", - "name": "unobserveField", + "description": "Returns the bounding rectangle of this node's subpart in its Scene's coordinate system If the subpart does not exist or if the node is not an ancestor of a Scene node, this will return the node's bounding rectangle.", + "name": "sceneSubBoundingRect", "params": [ { "default": null, - "description": "The name of the field to no longer be monitored.", + "description": "The _itemnumber_ parameter may contain one of the following strings: * itemX: where X is the index of an item in an ArrayGrid's data model (for example, **item17** is the 17th item in the data model). * itemX\\_Y: where X is the index of the row and Y is the index of an item in that row in a RowList's data model (for example, **item4\\_11** is the 11th item in row 4 of the data model). * focusItem: Gets the bounding rect of the ArrayGrid's focused item. * focusIndicator: Gets the bounding rect of the ArrayGrid's focus indicator (for example, the focus ring or list highlight).", "isRequired": true, - "name": "fieldName", + "name": "itemnumber", "type": "String" } ], - "returnDescription": "A flag indicating whether this operation was successful.", - "returnType": "Boolean" + "returnDescription": "An associative array with the bounding rectangle.", + "returnType": "Dynamic" }, { - "description": "Removes the connection between the observing component and the observed node's field.", - "name": "unobserveFieldScoped", + "description": "Returns the bounding rectangle of this node's identified sub part, as transformed by this node's transformation matrix, in its parent node's coordinate system. If the subpart does not exist, the node's bounding rectangle is returned.", + "name": "subBoundingRect", "params": [ { "default": null, - "description": "The name of the field to no longer be monitored.", + "description": "The _itemnumber_ parameter may contain one of the following strings: * itemX: where X is the index of an item in an ArrayGrid's data model (for example, **item17** is the 17th item in the data model). * itemX\\_Y: where X is the index of the row and Y is the index of an item in that row in a RowList's data model (for example, **item4\\_11** is the 11th item in row 4 of the data model). * focusItem: Gets the bounding rect of the ArrayGrid's focused item. * focusIndicator: Gets the bounding rect of the ArrayGrid's focus indicator (for example, the focus ring or list highlight).", "isRequired": true, - "name": "fieldName", + "name": "itemnumber", "type": "String" } ], - "returnDescription": "A flag indicating whether this operation was successful.", - "returnType": "Boolean" + "returnDescription": "An associative array with the bounding rectangle.", + "returnType": "Dynamic" } ], - "name": "ifSGNodeField", + "name": "ifSGNodeBoundingRect", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodefield.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodeboundingrect.md" }, - "ifsgnodefocus": { - "description": "The ifSGNodeFocus interface is used to query and manipulate the remote control focus of the nodes in a SceneGraph node tree.", + "ifsgnodechildren": { + "description": "The ifSGNodeChildren interface allows querying and manipulation of nodes in a SceneGraph node tree, such as creating new nodes, placing them at certain positions in the tree, and removing them.", "implementers": [ { "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", @@ -16643,937 +13302,985 @@ ], "methods": [ { - "description": "Checks whether the subject node has the remote control focus.", - "name": "hasFocus", - "params": [], - "returnDescription": "A flag indicating whether the subject node has the remote control focus.", - "returnType": "Boolean" - }, - { - "description": "Checks whether the subject node or any of its descendants in the SceneGraph node tree have remote control focus.", - "name": "isInFocusChain", - "params": [], - "returnDescription": "A flag indicating whether the subject node or any of its descendants in the SceneGraph node tree have the remote control focus.", - "returnType": "Boolean" - }, - { - "description": "Sets the current remote control focus to the subject node.", - "name": "setFocus", + "description": "Adds a child node to the end of the subject node list of children so that it is traversed last (of those children) during render.", + "name": "appendChild", "params": [ { "default": null, - "description": "True = Sets the current remote control focus to the subject node. This also automatically removes focus from the node on which it was previously set. False = Removes focus from the subject node if it had it. Setting the remote control focus to false is rarely necessary, and can lead to unexpected behavior.", + "description": "The child node to be appended to the end of the list.", "isRequired": true, - "name": "on", - "type": "Boolean" + "name": "child", + "type": "roSGNode" } ], - "returnDescription": "A flag indicating whether focus on the subject node has successfully been updated.", + "returnDescription": "A flag indicating whether the child node was successfully appended.", "returnType": "Boolean" - } - ], - "name": "ifSGNodeFocus", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodefocus.md" - }, - "ifsgnodehttpagentaccess": { - "description": "The ifSGNodeHttpAgentAccess interface allows you to get an [roHttpAgent](https://developer.roku.com/docs/references/brightscript/components/rohttpagent.md\"roHttpAgent\") object from a SceneGraph node, and set an roHttpAgent object for a nod", - "implementers": [ - { - "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", - "name": "roSGNode", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" - } - ], - "methods": [ - { - "description": "Returns the roHttpAgent object for the node.", - "name": "getHttpAgent", - "params": [], - "returnDescription": "The roHttpAgent object for the node, which may be one of the following:", - "returnType": "Object" }, { - "name": "setHttpAgent", + "description": "Appends an array of children nodes to the subject node.", + "name": "appendChildren", "params": [ { "default": null, - "description": "The roHttpAgent object to be set for the node.", + "description": "An roArray of child nodes to be appended to the subject node.", "isRequired": true, - "name": "HTTP_agent", + "name": "child_nodes", "type": "Object" } ], - "returnDescription": "A flag indicating whether the roHttpAgent object was successfully set.", + "returnDescription": "A flag indicating whether the children nodes were successfully appended.", "returnType": "Boolean" - } - ], - "name": "ifSGNodeHttpAgentAccess", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodehttpagentaccess.md" - }, - "ifsgscreen": { - "implementers": [ - { - "description": "The roSGScreen object is a SceneGraph canvas that displays the contents of a SceneGraph Scene node tree", - "name": "roSGScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" - } - ], - "methods": [ - { - "description": "Removes the SceneGraph scene from the display screen.", - "name": "Close", - "params": [], - "returnType": "Void" }, { - "description": "Creates the SceneGraph scene object based on the specified sceneType object.", - "name": "CreateScene", + "description": "Creates a child node of type nodeType, and adds the new node to the end of the subject node list of children.", + "name": "createChild", "params": [ { "default": null, - "description": "The sceneType object to be used to create the scene object.", + "description": "The node class to be created.", "isRequired": true, - "name": "sceneType", + "name": "nodeType", "type": "String" } ], - "returnDescription": "The roSGScene object associated with the screen.", - "returnType": "Object" - }, - { - "description": "Returns a global reference object for the SceneGraph application.", - "name": "getGlobalNode", - "params": [], - "returnDescription": "A global reference object.", - "returnType": "roSGNode" - }, - { - "description": "Returns the roMessagePort object for the SceneGraph scene.", - "name": "GetMessagePort", - "params": [], - "returnDescription": "The roMessagePort object.", - "returnType": "roMessagePort" - }, - { - "description": "The roSGScene object associated with the screen.", - "name": "GetScene", - "params": [], - "returnDescription": "Typically, the scene created in main.brs by a roSGScreen.CreateScene() call.", - "returnType": "roSGNode" - }, - { - "description": "Renders the SceneGraph scene defined by the roSGScreen object on the display screen.", - "name": "Show", - "params": [], - "returnDescription": "A flag indicating whether the screen is displayed.", - "returnType": "Boolean" - } - ], - "name": "ifSGScreen", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgscreen.md" - }, - "ifslideshow": { - "deprecatedDescription": "This interface is deprecated.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This interface is deprecated.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", - "implementers": [ - { - "description": "The Slide Show screen provides the ability to setup a photo slide show to playback a series of images", - "name": "roSlideShow", - "url": "https://developer.roku.com/docs/references/brightscript/components/roslideshow.md" - } - ], - "isDeprecated": true, - "methods": [ + "returnDescription": "The child node that was created.", + "returnType": "Object" + }, { - "description": "Adds a button to the screen. The buttons are displayed in a standard location on the screen and appear in the order added. When the button is pressed, the script will receive an event from the application containing the ID of the button pressed", - "name": "AddButton", + "description": "Creates a specific number of new child nodes of a specific type or extended type.", + "name": "createChildren", "params": [ { "default": null, - "description": "The ID used to uniquely identify the button instance.", + "description": "Number of new child nodes to be created.", "isRequired": true, - "name": "id", + "name": "num_children", "type": "Integer" }, { "default": null, - "description": "The title used for the button.", + "description": "Node type or extended type of the new child nodes to be created.", "isRequired": true, - "name": "title", + "name": "subtype", "type": "String" } ], - "returnDescription": "A flag indicating whether the button was successfully added.", - "returnType": "Boolean" + "returnDescription": "An roArray containing the new child nodes created.", + "returnType": "Object" }, { - "description": "Add a new [content metadata](/docs/developer-program/getting-started/architecture/content-metadata.md \"Content Meta-Data\") item to the end of the content list for the slide show.", - "name": "AddContent", + "description": "Returns an array with every existing node created by the currently running channel.", + "name": "getAll", + "params": [], + "returnDescription": "An roArray with the all the existing nodes created by the channel.", + "returnType": "Object" + }, + { + "description": "Returns an array with every existing node created by the currently running channel (similar to the [getAll()](#getall-as-object) method) organized as an XML forest of trees according to the usual parent-child node relationship. Cycles are handled with a reference entry in the tree rather than indefinite recursion.", + "name": "getAllMeta", + "params": [], + "returnDescription": "An roArray of strings with the all the existing nodes created by the channel.", + "returnType": "Object" + }, + { + "description": "Returns the child node specified by the index.", + "name": "getChild", "params": [ { "default": null, - "description": "The content metadata item to be added to the slideshow list.", + "description": "The index of the child node to be retrieved.", "isRequired": true, - "name": "contentItem", - "type": "Object" + "name": "index", + "type": "Integer" } ], - "returnType": "Void" + "returnDescription": "The child node at the index position; otherwise, \"invalid\".", + "returnType": "Dynamic" + }, + { + "description": "Returns the current number of children in the subject node list of children. This is always a non-negative number.", + "name": "getChildCount", + "params": [], + "returnDescription": "The number of child nodes in the tree.", + "returnType": "Integer" }, { - "name": "AddRatingButton", + "description": "Retrieves a specific number of child nodes from the subject node, starting at a specific position.", + "name": "getChildren", "params": [ { "default": null, - "description": "The ID used to uniquely identify the rating button instance.", + "description": "The number of child nodes to be retrieved.", "isRequired": true, - "name": "id", + "name": "num_children", "type": "Integer" }, { "default": null, - "description": "A value between 1-100 that represents the number of stars (1 to 5) to be displayed. Essentially this a percentage value: <20% = 1 star.", + "description": "The starting position in the child node tree where the specified number of nodes are to be retrieved.", "isRequired": true, - "name": "rating", + "name": "index", "type": "Integer" } ], - "returnDescription": "A flag indicating whether the rating button was successfully added.", - "returnType": "Boolean" - }, - { - "name": "ClearButtons", - "params": [], - "returnType": "Void" - }, - { - "description": "Clears all content from the content list.", - "name": "ClearContent", - "params": [], - "returnType": "Void" - }, - { - "description": "Closes the screens and delete the associated object. This is useful for avoiding screen flicker when the display order of your screens does not resemble a stack", - "name": "Close", - "params": [], - "returnType": "Void" + "returnDescription": "An roArray containing the child nodes retrieved. If num\\_children is -1, all the child nodes are returned.", + "returnType": "Object" }, { - "description": "Returns the count of all the buttons added to the slide show screen.", - "name": "CountButtons", + "description": "Returns the parent node of a node has been added to a list of children.", + "name": "getParent", "params": [], - "returnDescription": "The button count value.", - "returnType": "Integer" + "returnDescription": "The parent node; otherwise, \"invalid\".", + "returnType": "roSGNode" }, { - "description": "Retrieves the maximum scale factor.", - "name": "GetMaxUpscale", + "description": "Returns an array with every existing node without a parent created by the currently running channel.", + "name": "getRoots", "params": [], - "returnDescription": "The scale factor.", - "returnType": "Float" + "returnType": "Object" }, { - "description": "Puts the slide show into pause mode. Setting the player to pause mode if it is not in play mode generates in error.", - "name": "Pause", + "description": "Returns an array with every existing node without a parent created by the currently running channel.", + "name": "getRootsMeta", "params": [], - "returnDescription": "A flag that indicates whether the slide show was successfully set to pause mode.", - "returnType": "Boolean" + "returnDescription": "An roArray with every existing node without a parent created by the currently running channel.", + "returnType": "Object" }, { - "description": "Puts the slide show into play mode starting from the pause point. Setting the player to play mode when it is not in pause mode generates in error.", - "name": "Resume", + "description": "Returns the node's root Scene. This returns a valid Scene even if the node is not parented.", + "name": "getScene", "params": [], - "returnDescription": "A flag that indicates whether the slide show was successfully set to pause mode.", - "returnType": "Boolean" + "returnDescription": "The node's root Scene.", + "returnType": "roSGNode" }, { - "description": "Sets the border color used as the background around the slide.", - "name": "SetBorderColor", + "description": "Inserts a previously-created child node at the position index in the subject node list of children, so that this is the position that the new child node is traversed during render.", + "name": "insertChild", "params": [ { "default": null, - "description": "The HTML hex color value to be used as the border.", + "description": "The child node to be added to the child tree.", "isRequired": true, - "name": "color", - "type": "String" + "name": "child", + "type": "roSGNode" + }, + { + "default": null, + "description": "The postion index where the child node is to be inserted.", + "isRequired": true, + "name": "index", + "type": "Integer" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the child node that was successfully inserted.", + "returnType": "Boolean" }, { - "description": "Set the content to be played by the slide show.", - "name": "SetContentList", + "description": "Inserts an array of child nodes to the subject node, starting at a specific position.", + "name": "insertChildren", "params": [ { "default": null, - "description": "An [roArray](https://developer.roku.com/docs/references/brightscript/components/roarray.md\"roArray\") of [roAssociativeArrays](https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md\"roAssociativeArrays\") ([Content Meta-Data](/docs/developer-program/getting-started/architecture/content-metadata.md \"Content Meta-Data\") objects) representing the information for each title to be displayed on screen", + "description": "An roArray of child nodes to be inserted in the tree.", "isRequired": true, - "name": "contentList", + "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" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the children nodes were successfully inserted.", + "returnType": "Boolean" }, { - "description": "Sets the mode for displaying slideshow images. This allows images to be either scaled to completely fill the screen (scale-to-fill) or scaled to fit inside the screen (scale-to-fit) while maintaining aspect ratio.", - "name": "SetDisplayMode", + "description": "Finds a child node in the subject node list of children, and if found, remove it from the list of children. The match is made on the basis of actual object identity, that is, the value of the pointer to the child node.", + "name": "removeChild", "params": [ { "default": null, - "description": "The display mode, which may be one of the following values: * scale-to-fill – scale image to completely fill the rectangle of the bounding frame (Default) * scale-to-fit – scale image to fit horizontally or vertically as appropriate while still maintaining aspect ratio. Note that scale-to-fit may result in pillar-box or letter-box display of images. * zoom-to-fill – scales and crops image to maintain aspect ratio and completely fill the rectangle of the bounding frame. * photo-fit – Uses several methods to fit the image with a different aspect ratio to the screen. First, it will asymmetrically scale up to a maximum of 5%. Second, for landscape images, if vertical cropping is necessary, it will remove two lines off the bottom for every one line off the top up to a maximum of 30% of the image. For all images, if horizontal cropping is necessary it will crop an equal amount from both sides.", + "description": "The child node to be removed from the child tree.", "isRequired": true, - "name": "displayMode", - "type": "String" + "name": "child", + "type": "roSGNode" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the child node that was successfully removed.", + "returnType": "Boolean" }, { - "description": "Makes the slideshow loop through all the slides.", - "name": "SetLoop", + "description": "If the subject node has a child node in the index position, removes that child node from the subject node list of children.", + "name": "removeChildIndex", "params": [ { "default": null, - "description": "A flag specifying whether to loop through all the slides.", + "description": "The position in the tree of the child node to be removed.", "isRequired": true, - "name": "loop", - "type": "Boolean" + "name": "index", + "type": "Integer" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the child node that was successfully removed.", + "returnType": "Boolean" }, { - "description": "Set the maximum scale factor for scale-to-fill, zoom-to-fill, and photo-fit modes.", - "name": "SetMaxUpscale", + "description": "Removes an array of child nodes from the subject node.", + "name": "removeChildren", "params": [ { "default": null, - "description": "The maximum scale factor to be used.", + "description": "An roArray of child nodes to removed from the tree", "isRequired": true, - "name": "maxUpscale", - "type": "Float" + "name": "child_nodes", + "type": "Object" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the children nodes were successfully removed.", + "returnType": "Boolean" }, { - "description": "Makes the SlideShow object queue a specific slide up as the next slide.", - "name": "SetNext", + "description": "Removes a specific number of child nodes from the subject node starting at a specific position.", + "name": "removeChildrenIndex", "params": [ { "default": null, - "description": "The zero-based index of the item in the content list.", + "description": "The number of child nodes to be removed.", "isRequired": true, - "name": "item", + "name": "num_children", "type": "Integer" }, { "default": null, - "description": "Forces an immediate update to the slideshow.", + "description": "The starting position in the child node tree where the specified number of nodes are to be removed.", "isRequired": true, - "name": "isImmediate", - "type": "Boolean" + "name": "index", + "type": "Integer" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the children nodes were successfully removed.", + "returnType": "Boolean" }, { - "description": "Specifies the number of seconds that each slide is displayed.", - "name": "SetPeriod", + "description": "Moves the subject node to another parent node.", + "name": "reparent", "params": [ { "default": null, - "description": "The number of seconds that each slide is displayed.", + "description": "The new parent node where the child node is to be moved.", "isRequired": true, - "name": "seconds", - "type": "Integer" + "name": "newParent", + "type": "roSGNode" + }, + { + "default": null, + "description": "Specifies whether the translation, rotation, and scale of the node are adjusted so that the node has the same transformation factors relative to the screen as it previously did. If **adjustTransform** is true, the subject node transformation factor fields (translation/rotation/scale) are adjusted so that the node has the same transformation factors relative to the screen as it previously did. If **adjustTransform** is false, the subject node is simply parented to the new node without adjusting its transformation factor fields, in which case, the reparenting operation could cause the node to jump to a new position on the screen.", + "isRequired": true, + "name": "adjustTransform", + "type": "Boolean" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the node that was successfully moved to another parent node.", + "returnType": "Boolean" }, { - "description": "Defines the number of milliseconds to display the text overlay for each slide.", - "name": "SetTextOverlayHoldTime", + "description": "If the subject node has a child node in the index position, replace that child node with the newChild node in the subject node list of children, otherwise do nothing.", + "name": "replaceChild", "params": [ { "default": null, - "description": "The number of milliseconds to display the text overlay. If this is set to 0, the overlay is off.", + "description": "The child node to replace the one specified by the index.", "isRequired": true, - "name": "milliseconds", + "name": "newChild", + "type": "roSGNode" + }, + { + "default": null, + "description": "The index of the child node to be replaced.", + "isRequired": true, + "name": "index", "type": "Integer" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the child node that was successfully replaced.", + "returnType": "Boolean" }, { - "description": "Displays the overlay. This method is OR'd with the overlay hold time; therefore, even if **IsVisible** is false, the overlay is displayed during the slide's overlay hold time.", - "name": "SetTextOverlayIsVisible", + "description": "Replaces the child nodes in the subject node, starting at the position specified by index, with new child nodes specified by child\\_nodes", + "name": "replaceChildren", "params": [ { "default": null, - "description": "A flag specifying whether the overlay is displayed.", + "description": "An roArray of child nodes to replace the nodes in the tree.", "isRequired": true, - "name": "IsVisible", - "type": "Boolean" + "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" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the children nodes were successfully replaced.", + "returnType": "Boolean" }, { - "description": "Set the percentage to reduce the image size by to compensate for monitor overscan (for example, 2.5 for 2.5%).", - "name": "SetUnderscan", + "description": "Takes the key-value pairs in an roAssociativeArray and maps the values to the respective field name in the calling node.", + "name": "update", "params": [ { "default": null, - "description": "The percentage to be used to reduce the image size.", + "description": "Contains key-value pairs corresponding to the fields in the subject node to be updated.", "isRequired": true, - "name": "percentage", - "type": "Float" + "name": "fields", + "type": "roAssociativeArray" + }, + { + "default": null, + "description": "optional (default = false). If true, and a specified key is not yet present, add it and value to the node.", + "isRequired": false, + "name": "addFields", + "type": "Boolean" } ], "returnType": "Void" - }, - { - "description": "Displays or refreshes the screen after creation or state changes.", - "name": "Show", - "params": [], - "returnDescription": "A flag indicating whether the screen was successfully displayed.", - "returnType": "Boolean" } ], - "name": "ifSlideshow", + "name": "ifSGNodeChildren", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifslideshow.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodechildren.md" }, - "ifsocket": { + "ifsgnodedict": { + "description": "The ifSGNodeDict interface allows you access information about the nodes in a SceneGraph node tree, and find and return a node with a specific ID.", "implementers": [ { - "description": "The roDataGramSocket component enables Brightscript apps to send and receive UDP packets", - "name": "roDataGramSocket", - "url": "https://developer.roku.com/docs/references/brightscript/components/rodatagramsocket.md" - }, - { - "description": "The roStreamSocket component enables BrightScript apps to accept and connect to TCP streams as well as send and receive data with them", - "name": "roStreamSocket", - "url": "https://developer.roku.com/docs/references/brightscript/components/rostreamsocket.md" + "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", + "name": "roSGNode", + "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" } ], "methods": [ { - "name": "Close", - "params": [], - "returnType": "Void" - }, - { - "description": "Returns the roSocketAddress object bound to this socket.", - "name": "GetAddress", - "params": [], - "returnDescription": "roSocketAddress Object.", - "returnType": "Object" - }, - { - "description": "Returns the number of bytes in the receive buffer.", - "name": "GetCountRcvBuf", - "params": [], - "returnDescription": "Number of bytes.", - "returnType": "Integer" - }, - { - "description": "Returns the number of bytes in the send buffer.", - "name": "GetCountSendBuf", - "params": [], - "returnDescription": "Number of bytes.", - "returnType": "Integer" - }, - { - "description": "Returns the roSocketAddress for the remote address of the last message received via the [receive()](#receivedata-as-object-startindex-as-integer-length-as-integer-as-integer) method. This method can also be used to return the remote address on newly accepted sockets.", - "name": "GetReceivedFromAddress", - "params": [], - "returnDescription": "The roSocketAddress for the remote address of the last message received.", - "returnType": "Object" - }, - { - "description": "Returns the roSocketAddress for the remote address of the next message to be sent. This method can also be used to return the remote address on newly accepted sockets.", - "name": "GetSendToAddress", - "params": [], - "returnDescription": "The roSocketAddress for the remote address of the next message to be sent.", + "name": "clone", + "params": [ + { + "default": null, + "isRequired": true, + "name": "isDeepCopy", + "type": "Boolean" + } + ], + "returnDescription": "A node tree.", "returnType": "Object" }, { - "description": "Reads data from the socket.", - "name": "Receive", + "description": "Returns the node that is a descendant of the nearest component ancestor of the subject node (possibly the subject node itself) and whose id field is set to name. The search for the descendant node is a breadth-first search that includes child nodes in nodes that are declared as custom components defined in other XML component files. These together allow finding siblings and cousins of a node within the context of a component. If a node with the specified name is not found, an invalid object is returned", + "name": "findNode", "params": [ { "default": null, - "description": "A [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md\"roByteArray\") containing the data to be stored.", + "description": "The name of the node to be retrieved.", "isRequired": true, - "name": "data", - "type": "Object" - }, + "name": "name", + "type": "String" + } + ], + "returnDescription": "The node that is a descendant of the nearest component ancestor of the subject node.", + "returnType": "Object" + }, + { + "description": "Checks whether a specific roSGNode refers to the same SceneGraph node object as the subject node.", + "name": "isSameNode", + "params": [ { "default": null, - "description": "The index of the byte array from which to start reading data.", "isRequired": true, - "name": "startIndex", - "type": "Integer" - }, + "name": "RoSGNode", + "type": "Object" + } + ], + "returnDescription": "A flag indicating whether the nodes refer to the same SceneGraph node object.", + "returnType": "Boolean" + }, + { + "description": "Checks whether the subtype of the subject node is a descendant of the subtype nodeType in the SceneGraph node class hierarchy.", + "name": "isSubtype", + "params": [ { "default": null, - "description": "The amount of data to be read from the socket.", + "description": "The node type of the subject node.", "isRequired": true, - "name": "length", - "type": "Integer" + "name": "nodeType", + "type": "String" } ], - "returnDescription": "The number of bytes read.", - "returnType": "Integer" + "returnDescription": "A flag indicating whether the subtype of the subject node is a descendant of the subtype nodeType.", + "returnType": "Boolean" }, { - "name": "ReceiveStr", + "description": "Returns the subtype of the parent of the nodeType in the SceneGraph node class hierarchy.", + "name": "parentSubtype", "params": [ { "default": null, - "description": "The amount of data to be read from the socket.", + "description": "The node type of the parent node.", "isRequired": true, - "name": "length", - "type": "Integer" + "name": "nodeType", + "type": "String" } ], - "returnDescription": "The received byte length string. If no bytes are received, the string is empty.", + "returnDescription": "The subtype of the parent node.", "returnType": "String" }, { - "description": "Sends up to length bytes of data to the socket.", - "name": "Send", + "description": "Returns the subtype of the subject node as specified when it was created.", + "name": "subtype", + "params": [], + "returnDescription": "The subtype of the subject node.", + "returnType": "String" + } + ], + "name": "ifSGNodeDict", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodedict.md" + }, + "ifsgnodefield": { + "description": "The ifSGNodeField interface allows querying, getting, setting, and performing other similar manipulation operations on Scene Graph node fields. This interface also allows you to set and unset event observers on a subject node field.", + "implementers": [ + { + "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", + "name": "roSGNode", + "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" + } + ], + "methods": [ + { + "description": "Adds a field with the specified name and type to the subject node. The added field is initialized to the default value for the type.", + "name": "addField", "params": [ { "default": null, - "description": "A [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md\"roByteArray\") containing the data to be sent.", + "description": "The name of the field to be added.", "isRequired": true, - "name": "data", - "type": "Object" + "name": "fieldName", + "type": "String" }, { "default": null, - "description": "The index of the byte array from which to start sending data.", + "description": "The type of the field to be added. Type declarations must be lowercase or the field will not be added to the node. For example, declaring \"Boolean\" as the type will prevent the field from being added.", "isRequired": true, - "name": "startIndex", - "type": "Integer" + "name": "type", + "type": "String" }, { "default": null, - "description": "The amount of data to be sent to the socket.", + "description": "Specifies whether observers of the field are triggered when the field value is updated to the same or new value (true), or only when the field changes to a new value (false).", "isRequired": true, - "name": "length", - "type": "Integer" + "name": "alwayNotify", + "type": "Boolean" } ], - "returnDescription": "The number of bytes sent.", - "returnType": "Integer" + "returnDescription": "A flag indicating whether the field have been successfully added.", + "returnType": "Boolean" }, { - "description": "Sends the whole string to the socket, if possible.", - "name": "SendStr", + "description": "Adds the field(s) and corresponding field value(s) defined as key-value pair(s) in the associative array fields to the subject node. The types of the added fields are determined by the values which correspond to the allowable types for an `` field.", + "name": "addFields", "params": [ { "default": null, - "description": "A string containing the data to be sent.", + "description": "An roAssociativeArray containing key-value pairs for the fields to be added.", "isRequired": true, - "name": "data", - "type": "String" + "name": "fields", + "type": "Object" } ], - "returnDescription": "The number of bytes sent.", - "returnType": "Integer" + "returnDescription": "A flag indicating whether the fields have been successfully added.", + "returnType": "Boolean" }, { - "description": "Sets the address using a BSD bind() call", - "name": "SetAddress", + "description": "Returns the appropriately-typed value from the specified field of the subject node.", + "name": "getField", "params": [ { "default": null, - "description": "An roSocketAddress.", + "description": "The name of the field to be retrieved.", "isRequired": true, - "name": "sockAddr", - "type": "Object" + "name": "fieldName", + "type": "String" } ], - "returnDescription": "A flag indicating whether the address was successfully set.", - "returnType": "Boolean" + "returnDescription": "A typed value.", + "returnType": "Object" }, { - "description": "Sets the remote address for next message to be sent.", - "name": "SetSendToAddress", + "description": "Returns the names and values of all the fields in the node.", + "name": "getFields", + "params": [], + "returnDescription": "An roAssociativeArray containing key-value pairs with the element names and values.", + "returnType": "Object" + }, + { + "description": "Returns the type of a specific field of the subject node.", + "name": "getFieldType", "params": [ { "default": null, - "description": "An roSocketAddress.", + "description": "The name of the field to have its type retrieved.", "isRequired": true, - "name": "sockAddr", - "type": "Object" + "name": "fieldName", + "type": "String" } ], - "returnDescription": "A flag indicating whether the address was successfully stored as the first half of underlying BSD sendto() call.", - "returnType": "Boolean" + "returnDescription": "The field type.", + "returnType": "String" }, { - "description": "Indicates whether the last operation was successful.", - "name": "Status", - "params": [], - "returnDescription": "This method returns 0 if the last operation was successful or an error number if it failed.", - "returnType": "Integer" - } - ], - "name": "ifSocket", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocket.md" - }, - "ifsocketaddress": { - "implementers": [ - { - "description": "The roSocketAddress is used by the roStreamSocket and roDataGramSocket components for TCP and UDP traffic respectively", - "name": "roSocketAddress", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosocketaddress.md" - } - ], - "methods": [ - { - "name": "GetAddress", + "description": "Returns the names and types of all the fields in the node.", + "name": "getFieldTypes", "params": [], - "returnDescription": "The IPV4 address.", - "returnType": "String" + "returnDescription": "An roAssociativeArray containing key-value pairs with the element names and types.", + "returnType": "Object" }, { - "description": "Returns the hostname.", - "name": "GetHostName", - "params": [], - "returnDescription": "The hostname.", - "returnType": "String" + "description": "Checks whether a field exists in the node.", + "name": "hasField", + "params": [ + { + "default": null, + "description": "The name of the field to be checked for whether it exists in the node.", + "isRequired": true, + "name": "fieldName", + "type": "String" + } + ], + "returnDescription": "A flag indicating whether the subject node has a field whose name exactly matches fieldName, or whose fully lowercase analog is identical to that of fieldName.", + "returnType": "Boolean" }, { - "description": "Returns the port number.", - "name": "GetPort", - "params": [], - "returnDescription": "The port number.", - "returnType": "Integer" + "description": "Calls a function when a field of the subject node changes. The function called must be in the scope of the current component.", + "name": "observeField", + "params": [ + { + "default": null, + "description": "The name of the field to be monitored.", + "isRequired": true, + "name": "fieldName", + "type": "String" + }, + { + "default": null, + "description": "The name of the method to be executed when the value of the field changes.", + "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 this operation was successful.", + "returnType": "Boolean" }, { - "description": "Checks whether the component contains a valid IP address.", - "name": "IsAddressValid", - "params": [], - "returnDescription": "A flag indicating whether the component contains a valid IP address.", + "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.", + "name": "observeField", + "params": [ + { + "default": null, + "description": "The name of the field to be monitored.", + "isRequired": true, + "name": "fieldName", + "type": "String" + }, + { + "default": null, + "description": "The [roMessagePort](https://developer.roku.com/docs/references/brightscript/components/romessageport.md\"roMessagePort\") to receive a [roSGNodeEvent](https://developer.roku.com/docs/references/brightscript/components/rosgnode.md\"roSGNodeEvent\") message when the value of the field changes.", + "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 this operation was successful.", "returnType": "Boolean" }, { - "description": "Sets the IPV4 address.", - "name": "SetAddress", + "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.", + "name": "observeFieldScoped", "params": [ { "default": null, - "description": "The string consists of a hostname, optionally followed by a colon and a decimal port number. The hostname may be either dotted quad (such as \"192.168.1.120\") or a DNS name (such as \"roku.com\"). If a name is given, a DNS lookup is performed to convert it to dotted quad. Use IsAddressValid() to determine the result of the DNS lookup. Example: \"192.168.1.120:8888\" or \"roku.com\".", + "description": "The name of the field to be monitored.", "isRequired": true, - "name": "address", + "name": "fieldName", "type": "String" + }, + { + "default": null, + "description": "The name of the method to be executed when the value of the field changes.", + "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 IPV4 address was successfully set.", + "returnDescription": "A flag indicating whether this operation was successful.", "returnType": "Boolean" }, { - "description": "Sets the hostname. The port number is unchanged.", - "name": "SetHostName", + "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.", + "name": "observeFieldScoped", "params": [ { "default": null, - "description": "The hostname to be used.", + "description": "The name of the field to be monitored.", "isRequired": true, - "name": "hostname", + "name": "fieldName", "type": "String" + }, + { + "default": null, + "description": "The [roMessagePort](https://developer.roku.com/docs/references/brightscript/components/romessageport.md\"roMessagePort\") to receive a [roSGNodeEvent](https://developer.roku.com/docs/references/brightscript/components/rosgnode.md\"roSGNodeEvent\") message when the value of the field changes.", + "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 hostname was successfully set.", + "returnDescription": "A flag indicating whether this operation was successful.", "returnType": "Boolean" }, { - "description": "Sets the port number. The hostname is unchanged.", - "name": "SetPort", + "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.", + "name": "queueFields", "params": [ { "default": null, - "description": "The port number to be used.", + "description": "A flag enabling queuing on the node.", "isRequired": true, - "name": "port", - "type": "Integer" + "name": "queueNode", + "type": "Boolean" } ], - "returnDescription": "A flag indicating whether the port number was successfully set.", - "returnType": "Boolean" - } - ], - "name": "ifSocketAddress", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketaddress.md" - }, - "ifsocketasync": { - "description": "The ifSocketAsync interface provides asynchronous socket features that utilize a full-featured select loop in the Roku OS that communicates to the application using a BrightScript [roMessagePort](https://developer.roku.com/docs/references/brightscript/components/romessageport.md\"roMessagePort\"). This interface is valid on roStreamSocket and roDataGramSocket objects that were assigned a BrightScript port via SetMessagePort().", - "implementers": [ - { - "description": "The roDataGramSocket component enables Brightscript apps to send and receive UDP packets", - "name": "roDataGramSocket", - "url": "https://developer.roku.com/docs/references/brightscript/components/rodatagramsocket.md" - }, - { - "description": "The roStreamSocket component enables BrightScript apps to accept and connect to TCP streams as well as send and receive data with them", - "name": "roStreamSocket", - "url": "https://developer.roku.com/docs/references/brightscript/components/rostreamsocket.md" - } - ], - "methods": [ - { - "description": "Returns a unique identifier that can be compared to the value returned by the [roSocketEvent.getSocketID()](https://developer.roku.com/docs/references/brightscript/events/rosocketevent.mdgetsocketid-as-integer) method to match the underlying socket to receive the event.", - "name": "GetID", - "params": [], - "returnType": "Integer" - }, - { - "description": "Checks whether underlying select determines non-blocking read of OOB data is possible.", - "name": "IsException", - "params": [], - "returnDescription": "A flag indicating whether underlying select determines non-blocking read of OOB data is possible.", - "returnType": "Boolean" - }, - { - "description": "Checks whether underlying select determines non-blocking read is possible.", - "name": "IsReadable", - "params": [], - "returnDescription": "A flag indicating whether underlying select determines non-blocking read is possible.", - "returnType": "Boolean" - }, - { - "description": "Checks whether underlying select determines non-blocking write is possible.", - "name": "IsWritable", - "params": [], - "returnDescription": "A flag indicating whether underlying select determines non-blocking write is possible.", + "returnDescription": "A flag indicating the current state of **queueNode**.", "returnType": "Boolean" }, { - "description": "Enables roSocketEvent events to be sent via the message port when the underlying socket gets an exception or OOB data.", - "name": "NotifyException", + "description": "Removes a field from the subject node. Fields defined in [content metadata](/docs/developer-program/getting-started/architecture/content-metadata.md \" Content Meta-Data\") and the related SceneGraph node class metadata bindings can be removed, but will be dynamically re-added at any time they are explicitly accessed.", + "name": "removeField", "params": [ { "default": null, - "description": "A flag specifying whether roSocketEvent events are to be sent when the underlying socket gets an exception or OOB data.", + "description": "The name of the field to be removed.", "isRequired": true, - "name": "enable", - "type": "Boolean" + "name": "fieldName", + "type": "String" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the field has been successfully removed.", + "returnType": "Boolean" }, { - "description": "Enables roSocketEvent events to be sent via the message port when the underlying socket becomes readable.", - "name": "NotifyReadable", + "description": "Removes one or more fields from the subject node.", + "name": "removeFields", "params": [ { "default": null, - "description": "A flag specifying whether roSocketEvent events are to be sent when the underlying socket becomes readable.", + "description": "An roArray containing the names of the fields to be removed.", "isRequired": true, - "name": "enable", - "type": "Boolean" + "name": "fieldNames", + "type": "Object" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the fields have been successfully removed.", + "returnType": "Boolean" }, { - "description": "Enables roSocketEvent events to be sent via the message port when the underlying socket becomes writable.", - "name": "NotifyWritable", + "description": "Sets the value of a subject node field. This will fail and stop script execution if the value is not of the appropriate type.", + "name": "setField", "params": [ { "default": null, - "description": "A flag specifying whether roSocketEvent events are to be sent when the underlying socket becomes writable.", + "description": "The name of the field to be updated.", "isRequired": true, - "name": "enable", - "type": "Boolean" + "name": "fieldName", + "type": "String" + }, + { + "default": null, + "description": "The updated value for the field.", + "isRequired": true, + "name": "value", + "type": "Object" } ], - "returnType": "Void" - } - ], - "name": "ifSocketAsync", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketasync.md" - }, - "ifsocketcastoption": { - "implementers": [ - { - "description": "The roDataGramSocket component enables Brightscript apps to send and receive UDP packets", - "name": "roDataGramSocket", - "url": "https://developer.roku.com/docs/references/brightscript/components/rodatagramsocket.md" - } - ], - "methods": [ + "returnDescription": "A flag indicating whether the field was successfully updated.", + "returnType": "Boolean" + }, { - "description": "Drops out of a specific multicast group.", - "name": "DropGroup", + "description": "Sets the values for one or more fields.", + "name": "setFields", "params": [ { "default": null, - "description": "An [roSocketAddress](https://developer.roku.com/docs/references/brightscript/components/rostreamsocket.md\"roSocketAddress\") representing the group to leave. IPV4 multicast addresses are in the range of 224.0.0.0 through 239.255.255.255.", + "description": "An roAssociativeArray containing key-value pairs for the fields to be updated.", "isRequired": true, - "name": "ipAddress", + "name": "fields", "type": "Object" } ], - "returnDescription": "A flag indicating whether this operation was successful.", + "returnDescription": "A flag indicating whether the fields have been successfully updated.", "returnType": "Boolean" }, { - "description": "Checks whether broadcast messages may be sent or received.", - "name": "GetBroadcast", - "params": [], - "returnDescription": "A flag indicating whether broadcast messages may be sent or received.", - "returnType": "Boolean" + "description": "Signals start and/or stop points for measuring channel launch and Electronic Program Grid (EPG) launch times.", + "name": "signalBeacon", + "params": [ + { + "default": null, + "isRequired": true, + "name": "beacon", + "type": "String" + } + ], + "returnDescription": "When you fire a launch event, the system will return an integer indicating the result of its signaling:", + "returnType": "Integer" }, { - "description": "Checks whether multicast messages are enabled for local loopback.", - "name": "GetMulticastLoop", + "description": "A runtime debugging method for helping minimize Rendezvous spread. This method can be called on any node from any thread.", + "name": "threadinfo", "params": [], - "returnDescription": "A flag indicating whether multicast messages are enabled for local loopback. If this flag is true, multicast message sent locally are to be received locally.", - "returnType": "Boolean" + "returnDescription": "An roAssociatveArray with the following information:", + "returnType": "Object" }, { - "description": "Returns the TTL integer value for multicast messages. This is the number of hops a packet is allowed before a router drops the packet.", - "name": "GetMulticastTTL", - "params": [], - "returnDescription": "The multicast messages value.", - "returnType": "Integer" + "description": "Removes the previously established connections between the subject node field identified by fieldName and any callback functions or message ports.", + "name": "unobserveField", + "params": [ + { + "default": null, + "description": "The name of the field to no longer be monitored.", + "isRequired": true, + "name": "fieldName", + "type": "String" + } + ], + "returnDescription": "A flag indicating whether this operation was successful.", + "returnType": "Boolean" }, { - "description": "Joins a specific multicast group.", - "name": "JoinGroup", + "description": "Removes the connection between the observing component and the observed node's field.", + "name": "unobserveFieldScoped", "params": [ { "default": null, - "description": "An [roSocketAddress](https://developer.roku.com/docs/references/brightscript/components/rostreamsocket.md\"roSocketAddress\") representing the group to be joined. IPV4 multicast addresses are in the range of 224.0.0.0 through 239.255.255.255.", + "description": "The name of the field to no longer be monitored.", "isRequired": true, - "name": "ipAddress", - "type": "Object" + "name": "fieldName", + "type": "String" } ], "returnDescription": "A flag indicating whether this operation was successful.", "returnType": "Boolean" + } + ], + "name": "ifSGNodeField", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodefield.md" + }, + "ifsgnodefocus": { + "description": "The ifSGNodeFocus interface is used to query and manipulate the remote control focus of the nodes in a SceneGraph node tree.", + "implementers": [ + { + "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", + "name": "roSGNode", + "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" + } + ], + "methods": [ + { + "description": "Checks whether the subject node has the remote control focus.", + "name": "hasFocus", + "params": [], + "returnDescription": "A flag indicating whether the subject node has the remote control focus.", + "returnType": "Boolean" }, { - "description": "Enables broadcast messages to be sent or received.", - "name": "SetBroadcast", - "params": [ - { - "default": null, - "description": "A flag specifying whether broadcast messages may be sent or received.", - "isRequired": true, - "name": "enable", - "type": "Boolean" - } - ], - "returnDescription": "A flag indicating whether this operation succeeded.", + "description": "Checks whether the subject node or any of its descendants in the SceneGraph node tree have remote control focus.", + "name": "isInFocusChain", + "params": [], + "returnDescription": "A flag indicating whether the subject node or any of its descendants in the SceneGraph node tree have the remote control focus.", "returnType": "Boolean" }, { - "description": "Enables local loopback of multicast messages.", - "name": "SetMulticastLoop", + "description": "Sets the current remote control focus to the subject node.", + "name": "setFocus", "params": [ { "default": null, - "description": "A flag specifying whether local loopback of multicast messages; otherwise do not send or receive broadcast messages.", + "description": "True = Sets the current remote control focus to the subject node. This also automatically removes focus from the node on which it was previously set. False = Removes focus from the subject node if it had it. Setting the remote control focus to false is rarely necessary, and can lead to unexpected behavior.", "isRequired": true, - "name": "enable", + "name": "on", "type": "Boolean" } ], - "returnDescription": "A flag indicating whether this operation was successful.", + "returnDescription": "A flag indicating whether focus on the subject node has successfully been updated.", "returnType": "Boolean" + } + ], + "name": "ifSGNodeFocus", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodefocus.md" + }, + "ifsgnodehttpagentaccess": { + "description": "The ifSGNodeHttpAgentAccess interface allows you to get an [roHttpAgent](https://developer.roku.com/docs/references/brightscript/components/rohttpagent.md\"roHttpAgent\") object from a SceneGraph node, and set an roHttpAgent object for a nod", + "implementers": [ + { + "description": "The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation", + "name": "roSGNode", + "url": "https://developer.roku.com/docs/references/brightscript/components/rosgnode.md" + } + ], + "methods": [ + { + "description": "Returns the roHttpAgent object for the node.", + "name": "getHttpAgent", + "params": [], + "returnDescription": "The roHttpAgent object for the node, which may be one of the following:", + "returnType": "Object" }, { - "description": "Sets the TTL integer value for multicast messages.", - "name": "SetMulticastTTL", + "name": "setHttpAgent", "params": [ { "default": null, - "description": "The number of hops a packet is allowed before a router drops the packet", + "description": "The roHttpAgent object to be set for the node.", "isRequired": true, - "name": "ttl", - "type": "Integer" + "name": "HTTP_agent", + "type": "Object" } ], - "returnDescription": "A flag indicating whether the TTL value was successfully set.", + "returnDescription": "A flag indicating whether the roHttpAgent object was successfully set.", "returnType": "Boolean" } ], - "name": "ifSocketCastOption", + "name": "ifSGNodeHttpAgentAccess", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketcastoption.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodehttpagentaccess.md" }, - "ifsocketconnection": { + "ifsgscreen": { "implementers": [ { - "description": "The roStreamSocket component enables BrightScript apps to accept and connect to TCP streams as well as send and receive data with them", - "name": "roStreamSocket", - "url": "https://developer.roku.com/docs/references/brightscript/components/rostreamsocket.md" + "description": "The roSGScreen object is a SceneGraph canvas that displays the contents of a SceneGraph Scene node tree", + "name": "roSGScreen", + "url": "https://developer.roku.com/docs/references/brightscript/components/rosgscreen.md" } ], "methods": [ { - "description": "Accepts incoming requests.", - "name": "Accept", + "description": "Removes the SceneGraph scene from the display screen.", + "name": "Close", "params": [], - "returnDescription": "An roStreamSocket if the connection is pending; invalid otherwise. Use status to distinguish among success (eSuccess() or isConnected()), not ready (eOK()), and error.", + "returnType": "Void" + }, + { + "description": "Creates the SceneGraph scene object based on the specified sceneType object.", + "name": "CreateScene", + "params": [ + { + "default": null, + "description": "The sceneType object to be used to create the scene object.", + "isRequired": true, + "name": "sceneType", + "type": "String" + } + ], + "returnDescription": "The roSGScene object associated with the screen.", "returnType": "Object" }, { - "description": "Establishes a connection.", - "name": "Connect", + "description": "Returns a global reference object for the SceneGraph application.", + "name": "getGlobalNode", "params": [], - "returnDescription": "A flag indicating whether a socket connection has successfully been created. The connection might still not be complete if the socket is non-blocking", - "returnType": "Boolean" + "returnDescription": "A global reference object.", + "returnType": "roSGNode" }, { - "description": "Checks whether a [connect](#connect-as-boolean) or [accept](#accept-as-object) function has been completed on this socket.", - "name": "IsConnected", + "description": "Returns the roMessagePort object for the SceneGraph scene.", + "name": "GetMessagePort", "params": [], - "returnDescription": "A flag indicating whether a connection has been established or accepted on this socket.", - "returnType": "Boolean" + "returnDescription": "The roMessagePort object.", + "returnType": "roMessagePort" }, { - "name": "IsListening", + "description": "The roSGScene object associated with the screen.", + "name": "GetScene", "params": [], - "returnDescription": "A flag indicating whether the [listen()](#listenbacklog-as-integer-as-boolean) method has been successfully called on this socket.", - "returnType": "Boolean" + "returnDescription": "Typically, the scene created in main.brs by a roSGScreen.CreateScene() call.", + "returnType": "roSGNode" }, { - "description": "Puts the socket into the listen state.", - "name": "Listen", + "description": "Specifies the roMessagePort object for the roSGScreen object", + "name": "SetMessagePort", "params": [ { "default": null, - "description": "The limit for the queue of incoming connections", + "description": "The roMessagePort to be used for the SceneGraph scene.", "isRequired": true, - "name": "backlog", - "type": "Integer" + "name": "port", + "type": "roMessagePort" } ], - "returnDescription": "A flag indicating whether listening can be done (generally, if bound address is valid).", + "returnType": "Void" + }, + { + "description": "Renders the SceneGraph scene defined by the roSGScreen object on the display screen.", + "name": "Show", + "params": [], + "returnDescription": "A flag indicating whether the screen is displayed.", "returnType": "Boolean" } ], - "name": "ifSocketConnection", + "name": "ifSGScreen", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketconnection.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsgscreen.md" }, - "ifsocketconnectionoption": { + "ifsocket": { "implementers": [ + { + "description": "The roDataGramSocket component enables Brightscript apps to send and receive UDP packets", + "name": "roDataGramSocket", + "url": "https://developer.roku.com/docs/references/brightscript/components/rodatagramsocket.md" + }, { "description": "The roStreamSocket component enables BrightScript apps to accept and connect to TCP streams as well as send and receive data with them", "name": "roStreamSocket", @@ -17582,148 +14289,262 @@ ], "methods": [ { - "description": "Checks whether keep alive is set. If keep alive is set, occasional no-data packets are sent to keep the connection alive.", - "name": "GetKeepAlive", + "name": "Close", "params": [], - "returnDescription": "A flag indicating whether keep alive is set.", - "returnType": "Boolean" + "returnType": "Void" }, { - "description": "Returns the max time in seconds that the socket close() blocks to allow send data to be flushed in synchronous mode.", - "name": "GetLinger", + "description": "Returns the roSocketAddress object bound to this socket.", + "name": "GetAddress", "params": [], - "returnDescription": "The max time in seconds.", + "returnDescription": "roSocketAddress Object.", + "returnType": "Object" + }, + { + "description": "Returns the number of bytes in the receive buffer.", + "name": "GetCountRcvBuf", + "params": [], + "returnDescription": "Number of bytes.", "returnType": "Integer" }, { - "description": "Returns the max TCP segment size.", - "name": "GetMaxSeg", + "description": "Returns the number of bytes in the send buffer.", + "name": "GetCountSendBuf", "params": [], - "returnDescription": "The segment size.", + "returnDescription": "Number of bytes.", "returnType": "Integer" }, { - "description": "Checks whether the no delay property is enabled on the socket. This means that data is sent as soon as it is available rather than once there is enough data to fill a segment.", - "name": "GetNoDelay", + "description": "Returns the roSocketAddress for the remote address of the last message received via the [receive()](#receivedata-as-object-startindex-as-integer-length-as-integer-as-integer) method. This method can also be used to return the remote address on newly accepted sockets.", + "name": "GetReceivedFromAddress", "params": [], - "returnDescription": "A flag indicating whether the no delay property is enabled.", - "returnType": "Boolean" + "returnDescription": "The roSocketAddress for the remote address of the last message received.", + "returnType": "Object" }, { - "description": "Sends no-data packets to keep the connection alive.", - "name": "SetKeepAlive", + "description": "Returns the roSocketAddress for the remote address of the next message to be sent. This method can also be used to return the remote address on newly accepted sockets.", + "name": "GetSendToAddress", + "params": [], + "returnDescription": "The roSocketAddress for the remote address of the next message to be sent.", + "returnType": "Object" + }, + { + "description": "Reads data from the socket.", + "name": "Receive", "params": [ { "default": null, - "description": "A flag specifying whether keep alive is enabled.", + "description": "A [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md\"roByteArray\") containing the data to be stored.", "isRequired": true, - "name": "enable", - "type": "Boolean" + "name": "data", + "type": "Object" + }, + { + "default": null, + "description": "The index of the byte array from which to start reading data.", + "isRequired": true, + "name": "startIndex", + "type": "Integer" + }, + { + "default": null, + "description": "The amount of data to be read from the socket.", + "isRequired": true, + "name": "length", + "type": "Integer" } ], - "returnDescription": "A flag indicating whether keep alive was successfully set.", - "returnType": "Boolean" + "returnDescription": "The number of bytes read.", + "returnType": "Integer" + }, + { + "name": "ReceiveStr", + "params": [ + { + "default": null, + "description": "The amount of data to be read from the socket.", + "isRequired": true, + "name": "length", + "type": "Integer" + } + ], + "returnDescription": "The received byte length string. If no bytes are received, the string is empty.", + "returnType": "String" + }, + { + "description": "Sends up to length bytes of data to the socket.", + "name": "Send", + "params": [ + { + "default": null, + "description": "A [roByteArray](https://developer.roku.com/docs/references/brightscript/components/robytearray.md\"roByteArray\") containing the data to be sent.", + "isRequired": true, + "name": "data", + "type": "Object" + }, + { + "default": null, + "description": "The index of the byte array from which to start sending data.", + "isRequired": true, + "name": "startIndex", + "type": "Integer" + }, + { + "default": null, + "description": "The amount of data to be sent to the socket.", + "isRequired": true, + "name": "length", + "type": "Integer" + } + ], + "returnDescription": "The number of bytes sent.", + "returnType": "Integer" }, { - "description": "Sets the max time in seconds that the socket close() blocks to allow send data to be flushed in synchronous mode.", - "name": "SetLinger", + "description": "Sends the whole string to the socket, if possible.", + "name": "SendStr", "params": [ { "default": null, - "description": "The max time.", + "description": "A string containing the data to be sent.", "isRequired": true, - "name": "time", - "type": "Integer" + "name": "data", + "type": "String" } ], - "returnDescription": "A flag indicating whether the linger was successfully set.", - "returnType": "Boolean" + "returnDescription": "The number of bytes sent.", + "returnType": "Integer" }, { - "description": "Sets the max TCP segment size.", - "name": "SetMaxSeg", + "description": "Sets the address using a BSD bind() call", + "name": "SetAddress", "params": [ { "default": null, - "description": "The max TCP segment size.", + "description": "An roSocketAddress.", "isRequired": true, - "name": "time", - "type": "Integer" + "name": "sockAddr", + "type": "Object" } ], - "returnDescription": "A flag indicating whether the max TCP segment size was successfully set.", + "returnDescription": "A flag indicating whether the address was successfully set.", "returnType": "Boolean" }, { - "description": "Enables the no delay property on the socket. This means that data is sent as soon as it is available rather than once there is enough data to fill a segment.", - "name": "SetNoDelay", + "description": "Sets the remote address for next message to be sent.", + "name": "SetSendToAddress", "params": [ { "default": null, - "description": "A flag specifying whether the no delay property is enabled.", + "description": "An roSocketAddress.", "isRequired": true, - "name": "enable", - "type": "Boolean" + "name": "sockAddr", + "type": "Object" } ], - "returnDescription": "A flag indicating whether the no delay property was successfully set.", + "returnDescription": "A flag indicating whether the address was successfully stored as the first half of underlying BSD sendto() call.", "returnType": "Boolean" + }, + { + "description": "Indicates whether the last operation was successful.", + "name": "Status", + "params": [], + "returnDescription": "This method returns 0 if the last operation was successful or an error number if it failed.", + "returnType": "Integer" } ], - "name": "ifSocketConnectionoption", + "name": "ifSocket", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketconnectionoption.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocket.md" }, - "ifsocketconnectionstatus": { + "ifsocketaddress": { "implementers": [ { - "description": "The roStreamSocket component enables BrightScript apps to accept and connect to TCP streams as well as send and receive data with them", - "name": "roStreamSocket", - "url": "https://developer.roku.com/docs/references/brightscript/components/rostreamsocket.md" + "description": "The roSocketAddress is used by the roStreamSocket and roDataGramSocket components for TCP and UDP traffic respectively", + "name": "roSocketAddress", + "url": "https://developer.roku.com/docs/references/brightscript/components/rosocketaddress.md" } ], "methods": [ { - "description": "Checks whether a connection aborted error (ECONNABORTED) has occurred.", - "name": "eConnAborted", + "name": "GetAddress", "params": [], - "returnDescription": "A flag indicating whether an ECONNABORTED error has occurred.", - "returnType": "Boolean" + "returnDescription": "The IPV4 address.", + "returnType": "String" }, { - "description": "Checks whether a connection refused (ECONNREFUSED) has occurred.", - "name": "eConnRefused", + "description": "Returns the hostname.", + "name": "GetHostName", "params": [], - "returnDescription": "A flag indicating whether an ECONNREFUSED error has occurred.", - "returnType": "Boolean" + "returnDescription": "The hostname.", + "returnType": "String" }, { - "description": "Checks whether a connection reset error (ECONNRESET) has occurred.", - "name": "eConnReset", + "description": "Returns the port number.", + "name": "GetPort", "params": [], - "returnDescription": "A flag indicating whether an ECONNRESET error has occurred.", - "returnType": "Boolean" + "returnDescription": "The port number.", + "returnType": "Integer" }, { - "description": "Checks whether an is connected error (EISCONN) has occurred.", - "name": "eIsConn", + "description": "Checks whether the component contains a valid IP address.", + "name": "IsAddressValid", "params": [], - "returnDescription": "A flag indicating whether an EISCONN error has occurred.", + "returnDescription": "A flag indicating whether the component contains a valid IP address.", "returnType": "Boolean" }, { - "description": "Checks whether a not connected error (ENOTCONN) has occurred.", - "name": "eNotConn", - "params": [], - "returnDescription": "A flag indicating whether an ENOTCONN error has occurred.", + "description": "Sets the IPV4 address.", + "name": "SetAddress", + "params": [ + { + "default": null, + "description": "The string consists of a hostname, optionally followed by a colon and a decimal port number. The hostname may be either dotted quad (such as \"192.168.1.120\") or a DNS name (such as \"roku.com\"). If a name is given, a DNS lookup is performed to convert it to dotted quad. Use IsAddressValid() to determine the result of the DNS lookup. Example: \"192.168.1.120:8888\" or \"roku.com\".", + "isRequired": true, + "name": "address", + "type": "String" + } + ], + "returnDescription": "A flag indicating whether the IPV4 address was successfully set.", + "returnType": "Boolean" + }, + { + "description": "Sets the hostname. The port number is unchanged.", + "name": "SetHostName", + "params": [ + { + "default": null, + "description": "The hostname to be used.", + "isRequired": true, + "name": "hostname", + "type": "String" + } + ], + "returnDescription": "A flag indicating whether the hostname was successfully set.", + "returnType": "Boolean" + }, + { + "description": "Sets the port number. The hostname is unchanged.", + "name": "SetPort", + "params": [ + { + "default": null, + "description": "The port number to be used.", + "isRequired": true, + "name": "port", + "type": "Integer" + } + ], + "returnDescription": "A flag indicating whether the port number was successfully set.", "returnType": "Boolean" } ], - "name": "ifSocketConnectionstatus", + "name": "ifSocketAddress", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketconnectionstatus.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketaddress.md" }, - "ifsocketoption": { + "ifsocketasync": { + "description": "The ifSocketAsync interface provides asynchronous socket features that utilize a full-featured select loop in the Roku OS that communicates to the application using a BrightScript [roMessagePort](https://developer.roku.com/docs/references/brightscript/components/romessageport.md\"roMessagePort\"). This interface is valid on roStreamSocket and roDataGramSocket objects that were assigned a BrightScript port via SetMessagePort().", "implementers": [ { "description": "The roDataGramSocket component enables Brightscript apps to send and receive UDP packets", @@ -17738,169 +14559,191 @@ ], "methods": [ { - "description": "Checks whether Out Of Bounds (OOB) data is read inline with regular data.", - "name": "GetOOBInline", - "params": [], - "returnDescription": "A flag indicating whether OOB data is read inline with regular data.", - "returnType": "Boolean" - }, - { - "description": "Returns the current receive buffer size.", - "name": "GetRcvBuf", + "description": "Returns a unique identifier that can be compared to the value returned by the [roSocketEvent.getSocketID()](https://developer.roku.com/docs/references/brightscript/events/rosocketevent.mdgetsocketid-as-integer) method to match the underlying socket to receive the event.", + "name": "GetID", "params": [], - "returnDescription": "The buffer size.", "returnType": "Integer" }, { - "description": "Returns the current receive timeout.", - "name": "GetReceiveTimeout", + "description": "Checks whether underlying select determines non-blocking read of OOB data is possible.", + "name": "IsException", "params": [], - "returnDescription": "The number of seconds for the receive timeout.", - "returnType": "Integer" + "returnDescription": "A flag indicating whether underlying select determines non-blocking read of OOB data is possible.", + "returnType": "Boolean" }, { - "description": "Checks whether an address that has been previously assigned can be immediately reassigned.", - "name": "GetReuseAddr", + "description": "Checks whether underlying select determines non-blocking read is possible.", + "name": "IsReadable", "params": [], - "returnDescription": "A flag indicating whether the previously assigned address can be reassigned.", + "returnDescription": "A flag indicating whether underlying select determines non-blocking read is possible.", "returnType": "Boolean" }, { - "description": "Returns the current send buffer size.", - "name": "GetSendBuf", + "description": "Checks whether underlying select determines non-blocking write is possible.", + "name": "IsWritable", "params": [], - "returnDescription": "The buffer size.", - "returnType": "Integer" + "returnDescription": "A flag indicating whether underlying select determines non-blocking write is possible.", + "returnType": "Boolean" }, { - "description": "Returns the current send timeout.", - "name": "GetSendTimeout", - "params": [], - "returnDescription": "The number of seconds for the send timeout.", - "returnType": "Integer" + "description": "Enables roSocketEvent events to be sent via the message port when the underlying socket gets an exception or OOB data.", + "name": "NotifyException", + "params": [ + { + "default": null, + "description": "A flag specifying whether roSocketEvent events are to be sent when the underlying socket gets an exception or OOB data.", + "isRequired": true, + "name": "enable", + "type": "Boolean" + } + ], + "returnType": "Void" }, { - "description": "Returns the TTL (Time To Live) value for all IP packets on the socket.", - "name": "GetTTL", - "params": [], - "returnDescription": "The TTL value.", - "returnType": "Integer" + "description": "Enables roSocketEvent events to be sent via the message port when the underlying socket becomes readable.", + "name": "NotifyReadable", + "params": [ + { + "default": null, + "description": "A flag specifying whether roSocketEvent events are to be sent when the underlying socket becomes readable.", + "isRequired": true, + "name": "enable", + "type": "Boolean" + } + ], + "returnType": "Void" }, { - "description": "Enables Out Of Bounds (OOB) data to be read inline with regular data.", - "name": "SetOOBInline", + "description": "Enables roSocketEvent events to be sent via the message port when the underlying socket becomes writable.", + "name": "NotifyWritable", "params": [ { "default": null, - "description": "A flag specifying whether OOB data is read inline.", + "description": "A flag specifying whether roSocketEvent events are to be sent when the underlying socket becomes writable.", "isRequired": true, - "name": "inline", + "name": "enable", "type": "Boolean" } ], - "returnDescription": "A flag indicating whether the OOB inline data feature was successfully set.", - "returnType": "Boolean" - }, + "returnType": "Void" + } + ], + "name": "ifSocketAsync", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketasync.md" + }, + "ifsocketcastoption": { + "implementers": [ { - "description": "Sets the current receive buffer size.", - "name": "SetRcvBuf", + "description": "The roDataGramSocket component enables Brightscript apps to send and receive UDP packets", + "name": "roDataGramSocket", + "url": "https://developer.roku.com/docs/references/brightscript/components/rodatagramsocket.md" + } + ], + "methods": [ + { + "description": "Drops out of a specific multicast group.", + "name": "DropGroup", "params": [ { "default": null, - "description": "The receive buffer size to be used.", + "description": "An [roSocketAddress](https://developer.roku.com/docs/references/brightscript/components/rostreamsocket.md\"roSocketAddress\") representing the group to leave. IPV4 multicast addresses are in the range of 224.0.0.0 through 239.255.255.255.", "isRequired": true, - "name": "size", - "type": "Integer" + "name": "ipAddress", + "type": "Object" } ], + "returnDescription": "A flag indicating whether this operation was successful.", + "returnType": "Boolean" + }, + { + "description": "Checks whether broadcast messages may be sent or received.", + "name": "GetBroadcast", + "params": [], + "returnDescription": "A flag indicating whether broadcast messages may be sent or received.", + "returnType": "Boolean" + }, + { + "description": "Checks whether multicast messages are enabled for local loopback.", + "name": "GetMulticastLoop", + "params": [], + "returnDescription": "A flag indicating whether multicast messages are enabled for local loopback. If this flag is true, multicast message sent locally are to be received locally.", "returnType": "Boolean" }, { - "description": "Sets the current receive timeout (in seconds).", - "name": "SetReceiveTimeout", - "params": [ - { - "default": null, - "description": "The number of seconds for the receive timeout.", - "isRequired": true, - "name": "timeout", - "type": "Integer" - } - ], - "returnDescription": "A flag indicating whether the receive timeout was successfully set.", - "returnType": "Boolean" + "description": "Returns the TTL integer value for multicast messages. This is the number of hops a packet is allowed before a router drops the packet.", + "name": "GetMulticastTTL", + "params": [], + "returnDescription": "The multicast messages value.", + "returnType": "Integer" }, { - "description": "Enables a previously assigned address to be immediately reassigned.", - "name": "SetReuseAddr", + "description": "Joins a specific multicast group.", + "name": "JoinGroup", "params": [ { "default": null, - "description": "A flag specifying whether the address can be reused.", + "description": "An [roSocketAddress](https://developer.roku.com/docs/references/brightscript/components/rostreamsocket.md\"roSocketAddress\") representing the group to be joined. IPV4 multicast addresses are in the range of 224.0.0.0 through 239.255.255.255.", "isRequired": true, - "name": "reuse", - "type": "Boolean" + "name": "ipAddress", + "type": "Object" } ], - "returnDescription": "A flag indicating whether the reuse address feature was successfully set.", - "returnType": "Dynamic" + "returnDescription": "A flag indicating whether this operation was successful.", + "returnType": "Boolean" }, { - "description": "Sets the current send buffer size.", - "name": "SetSendBuf", + "description": "Enables broadcast messages to be sent or received.", + "name": "SetBroadcast", "params": [ { "default": null, - "description": "The send buffer size to be used.", + "description": "A flag specifying whether broadcast messages may be sent or received.", "isRequired": true, - "name": "size", - "type": "Integer" + "name": "enable", + "type": "Boolean" } ], + "returnDescription": "A flag indicating whether this operation succeeded.", "returnType": "Boolean" }, { - "description": "Sets the current send timeout (in seconds).", - "name": "SetSendTimeout", + "description": "Enables local loopback of multicast messages.", + "name": "SetMulticastLoop", "params": [ { "default": null, - "description": "The number of seconds for the send timeout.", + "description": "A flag specifying whether local loopback of multicast messages; otherwise do not send or receive broadcast messages.", "isRequired": true, - "name": "timeout", - "type": "Integer" + "name": "enable", + "type": "Boolean" } ], - "returnDescription": "A flag indicating whether the send timeout was successfully set.", + "returnDescription": "A flag indicating whether this operation was successful.", "returnType": "Boolean" }, { - "description": "Sets the TTL value for all IP packets on the socket.", - "name": "SetTTL", + "description": "Sets the TTL integer value for multicast messages.", + "name": "SetMulticastTTL", "params": [ { "default": null, - "description": "The TTL value to be used for IP packets on the socket.", + "description": "The number of hops a packet is allowed before a router drops the packet", "isRequired": true, "name": "ttl", "type": "Integer" } ], - "returnDescription": "A flag indicating whether the TTL was successfully set.", + "returnDescription": "A flag indicating whether the TTL value was successfully set.", "returnType": "Boolean" } ], - "name": "ifSocketOption", + "name": "ifSocketCastOption", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketoption.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketcastoption.md" }, - "ifsocketstatus": { + "ifsocketconnection": { "implementers": [ - { - "description": "The roDataGramSocket component enables Brightscript apps to send and receive UDP packets", - "name": "roDataGramSocket", - "url": "https://developer.roku.com/docs/references/brightscript/components/rodatagramsocket.md" - }, { "description": "The roStreamSocket component enables BrightScript apps to accept and connect to TCP streams as well as send and receive data with them", "name": "roStreamSocket", @@ -17909,549 +14752,486 @@ ], "methods": [ { - "description": "Checks whether an EAGAIN error has occurred.", - "name": "eAgain", - "params": [], - "returnDescription": "A flag indicating whether an EAGAIN error has occurred.", - "returnType": "Boolean" - }, - { - "description": "Checks whether an EALREADY error has occurred.", - "name": "eAlready", - "params": [], - "returnDescription": "A flag indicating whether an EALREADY error has occurred.", - "returnType": "Boolean" - }, - { - "description": "Checks whether an EBADADDR error has occurred.", - "name": "eBadAddr", - "params": [], - "returnDescription": "A flag indicating whether an EBADADDR error has occurred.", - "returnType": "Boolean" - }, - { - "description": "Checks whether an EDESTADDRREQ error has occurred.", - "name": "eDestAddrReq", - "params": [], - "returnDescription": "A flag indicating whether an EDESTADDRREQ error has occurred.", - "returnType": "Boolean" - }, - { - "description": "Checks whether an EHOSTUNREACH error has occurred.", - "name": "eHostUnreach", - "params": [], - "returnDescription": "A flag indicating whether an EHOSTUNREACH error has occurred.", - "returnType": "Boolean" - }, - { - "description": "Checks whether an EINPROGRESS error has occurred.", - "name": "eInProgress", + "description": "Accepts incoming requests.", + "name": "Accept", "params": [], - "returnDescription": "A flag indicating whether an EINPROGRESS error has occurred.", - "returnType": "Boolean" + "returnDescription": "An roStreamSocket if the connection is pending; invalid otherwise. Use status to distinguish among success (eSuccess() or isConnected()), not ready (eOK()), and error.", + "returnType": "Object" }, { - "description": "Checks whether an EINVALID error has occurred.", - "name": "eInvalid", + "description": "Establishes a connection.", + "name": "Connect", "params": [], - "returnDescription": "A flag indicating whether an EINVALID error has occurred.", + "returnDescription": "A flag indicating whether a socket connection has successfully been created. The connection might still not be complete if the socket is non-blocking", "returnType": "Boolean" }, { - "description": "Checks whether there is no hard error, but possibly one of the following async conditions: EAGAIN, EALREADY, EINPROGRESS, EWOULDBLOCK.", - "name": "eOK", + "description": "Checks whether a [connect](#connect-as-boolean) or [accept](#accept-as-object) function has been completed on this socket.", + "name": "IsConnected", "params": [], - "returnDescription": "A flag indicating whether an EOK error has occurred.", + "returnDescription": "A flag indicating whether a connection has been established or accepted on this socket.", "returnType": "Boolean" }, { - "name": "eSuccess", + "name": "IsListening", "params": [], + "returnDescription": "A flag indicating whether the [listen()](#listenbacklog-as-integer-as-boolean) method has been successfully called on this socket.", "returnType": "Boolean" }, { - "description": "Checks whether an EWOULDBLOCK error has occurred.", - "name": "eWouldBlock", - "params": [], - "returnDescription": "A flag indicating whether an EWOULDBLOCK error has occurred.", + "description": "Puts the socket into the listen state.", + "name": "Listen", + "params": [ + { + "default": null, + "description": "The limit for the queue of incoming connections", + "isRequired": true, + "name": "backlog", + "type": "Integer" + } + ], + "returnDescription": "A flag indicating whether listening can be done (generally, if bound address is valid).", "returnType": "Boolean" } ], - "name": "ifSocketStatus", + "name": "ifSocketConnection", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketstatus.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketconnection.md" }, - "ifsourceidentity": { + "ifsocketconnectionoption": { "implementers": [ { - "description": "The roChannelStore sends an roChannelStoreEvent in response to a call to any of several Get\\* methods in ifChannelStore", - "name": "roChannelStoreEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/rochannelstoreevent.md" - }, - { - "description": "The roUrlTransfer component sends the roUrlEvent", - "name": "roUrlEvent", - "url": "https://developer.roku.com/docs/references/brightscript/events/rourlevent.md" + "description": "The roStreamSocket component enables BrightScript apps to accept and connect to TCP streams as well as send and receive data with them", + "name": "roStreamSocket", + "url": "https://developer.roku.com/docs/references/brightscript/components/rostreamsocket.md" } ], "methods": [ { - "description": "Returns the ID currently associated with this source (event generating) or event object", - "name": "GetSourceIdentity", + "description": "Checks whether keep alive is set. If keep alive is set, occasional no-data packets are sent to keep the connection alive.", + "name": "GetKeepAlive", "params": [], - "returnDescription": "The ID value of the source or event object.", - "returnType": "Integer" - } - ], - "name": "ifSourceIdentity", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsourceidentity.md" - }, - "ifspringboardscreen": { - "deprecatedDescription": "This interface is deprecated.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This interface is deprecated.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", - "implementers": [ - { - "description": "The Springboard Screen shows detailed information about an individual piece of content and provides options for actions that may be taken on that content", - "name": "roSpringboardScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rospringboardscreen.md" - } - ], - "isDeprecated": true, - "methods": [ - { - "description": "Adds a button to the screen. The buttons are displayed in a standard location on the screen and appear in the order added. When the button is pressed, the script will receive an event from the application containing the ID of the button pressed and allowing the script to perform the desired action for that case.", - "name": "AddButton", - "params": [ - { - "default": null, - "description": "The ID used to uniquely identify the button instance.", - "isRequired": true, - "name": "buttonID", - "type": "Integer" - }, - { - "default": null, - "description": "The title of the button.", - "isRequired": true, - "name": "title", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the button was successfully added.", - "returnType": "Boolean" - }, - { - "name": "AddRatingButton", - "params": [ - { - "default": null, - "description": "The ID used to uniquely identify the button instance.", - "isRequired": true, - "name": "buttonID", - "type": "Integer" - }, - { - "default": null, - "description": "A value between 1-100 that represents the number of stars that the user rated the content. A value of 1-20 corresponds to 1 star, 21-40 corresponds to 2 stars, etc. The userRating takes precedence and determines the color of the buttons if set.", - "isRequired": true, - "name": "userRating", - "type": "Integer" - }, - { - "default": null, - "description": "The total average rating from all users. Half-stars maybe displayed for this rating.", - "isRequired": true, - "name": "aggregateRating", - "type": "Integer" - } - ], + "returnDescription": "A flag indicating whether keep alive is set.", "returnType": "Boolean" }, { - "description": "Adds a thumbs up/down button to the screen. This is a special type of button that is displayed in the standard location on the screen and appears in the order added sequenced with other buttons. When the button is pressed, the script will receive an event from the application indicating containing the ID of the button pressed and allowing the script to perform the desired action for that case.", - "name": "AddThumbsUpDownButton", - "params": [ - { - "default": null, - "description": "The ID used to uniquely identify the button instance.", - "isRequired": true, - "name": "buttonID", - "type": "Integer" - }, - { - "default": null, - "description": "The rating, which determines how the button appears on the screen. This may be one of the following values: * \\-1 = thumbs down * 0 = no rating * 1 = thumbs up", - "isRequired": true, - "name": "thumbRating", - "type": "Integer" - } - ], - "returnDescription": "A flag indicating whether the button was successfully added.", - "returnType": "Boolean" + "description": "Returns the max time in seconds that the socket close() blocks to allow send data to be flushed in synchronous mode.", + "name": "GetLinger", + "params": [], + "returnDescription": "The max time in seconds.", + "returnType": "Integer" }, { - "description": "Adds a thumbs up/down button with tip text to the screen. This is a special type of button that is displayed in the standard location on the screen and appears in the order added sequenced with other buttons. When the button is pressed, the script will receive an event from the application indicating containing the ID of the button pressed and allowing the script to perform the desired action for that case.", - "name": "AddThumbsUpDownButtonWithTips", - "params": [ - { - "default": null, - "description": "The ID used to uniquely identify the button instance.", - "isRequired": true, - "name": "buttonID", - "type": "Integer" - }, - { - "default": null, - "description": "The rating, which determines how the button appears on the screen. This may be one of the following values: * \\-1 = thumbs down * 0 = no rating * 1 = thumbs up", - "isRequired": true, - "name": "thumbRating", - "type": "Integer" - }, - { - "default": null, - "description": "An array of strings (size 2) which lets the script override the default tip text \\[\"didn't like it\", \"liked it\"\\]", - "isRequired": true, - "name": "tipText", - "type": "Object" - } - ], - "returnDescription": "A flag indicating whether the button was successfully added.", + "description": "Returns the max TCP segment size.", + "name": "GetMaxSeg", + "params": [], + "returnDescription": "The segment size.", + "returnType": "Integer" + }, + { + "description": "Checks whether the no delay property is enabled on the socket. This means that data is sent as soon as it is available rather than once there is enough data to fill a segment.", + "name": "GetNoDelay", + "params": [], + "returnDescription": "A flag indicating whether the no delay property is enabled.", "returnType": "Boolean" }, { - "description": "Enables the fast forward remote event to be sent to the script (it is enabled by default).", - "name": "AllowNavFastForward", + "description": "Sends no-data packets to keep the connection alive.", + "name": "SetKeepAlive", "params": [ { "default": null, - "description": "True = Pressing FAST FORWARD sends an roSpringboardScreenEvent /isRemoteKeyPressed() event to the screen's message port. False = Pressing FAST FORWARD plays a deadend sound.", + "description": "A flag specifying whether keep alive is enabled.", "isRequired": true, - "name": "allow", + "name": "enable", "type": "Boolean" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether keep alive was successfully set.", + "returnType": "Boolean" }, { - "description": "Enables navigating LEFT on the springboard screen (it is enabled by default).", - "name": "AllowNavLeft", + "description": "Sets the max time in seconds that the socket close() blocks to allow send data to be flushed in synchronous mode.", + "name": "SetLinger", "params": [ { "default": null, - "description": "True = Pressing LEFT sends an roSpringboardScreenEvent /isRemoteKeyPressed() event to the screen's message port. False = Pressing LEFT plays a deadend sound.", + "description": "The max time.", "isRequired": true, - "name": "allow", - "type": "Boolean" + "name": "time", + "type": "Integer" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the linger was successfully set.", + "returnType": "Boolean" }, { - "description": "Enables the rewind remote event to be sent to the script (it is enabled by default).", - "name": "AllowNavRewind", + "description": "Sets the max TCP segment size.", + "name": "SetMaxSeg", "params": [ { "default": null, - "description": "True = Pressing REWIND sends an roSpringboardScreenEvent /isRemoteKeyPressed() event to the screen's message port. False = Pressing REWIND plays a deadend sound.", + "description": "The max TCP segment size.", "isRequired": true, - "name": "allow", - "type": "Boolean" + "name": "time", + "type": "Integer" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the max TCP segment size was successfully set.", + "returnType": "Boolean" }, { - "description": "Enables navigating RIGHT on the springboard screen (it is enabled by default).", - "name": "AllowNavRight", + "description": "Enables the no delay property on the socket. This means that data is sent as soon as it is available rather than once there is enough data to fill a segment.", + "name": "SetNoDelay", "params": [ { "default": null, - "description": "True = Pressing RIGHT sends an roSpringboardScreenEvent /isRemoteKeyPressed() event to the screen's message port. False = Pressing RIGHT plays a deadend sound.", + "description": "A flag specifying whether the no delay property is enabled.", "isRequired": true, - "name": "allow", + "name": "enable", "type": "Boolean" } ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the no delay property was successfully set.", + "returnType": "Boolean" + } + ], + "name": "ifSocketConnectionoption", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketconnectionoption.md" + }, + "ifsocketconnectionstatus": { + "implementers": [ + { + "description": "The roStreamSocket component enables BrightScript apps to accept and connect to TCP streams as well as send and receive data with them", + "name": "roStreamSocket", + "url": "https://developer.roku.com/docs/references/brightscript/components/rostreamsocket.md" + } + ], + "methods": [ + { + "description": "Checks whether a connection aborted error (ECONNABORTED) has occurred.", + "name": "eConnAborted", + "params": [], + "returnDescription": "A flag indicating whether an ECONNABORTED error has occurred.", + "returnType": "Boolean" }, { - "description": "Refreshes the display. When adding multiple buttons to the springboard dynamically, you may want to defer screen updates temporarily to avoid flashing. For example, call AllowUpdates(false), add several buttons, and then call AllowUpdates(true) to refresh the display.", - "name": "AllowUpdates", - "params": [ - { - "default": null, - "description": "A flag specifying whether to refresh the display.", - "isRequired": true, - "name": "allow", - "type": "Boolean" - } - ], - "returnType": "Void" + "description": "Checks whether a connection refused (ECONNREFUSED) has occurred.", + "name": "eConnRefused", + "params": [], + "returnDescription": "A flag indicating whether an ECONNREFUSED error has occurred.", + "returnType": "Boolean" }, { - "description": "Clears all of the buttons from the screen and resets the array of buttons back to default with no buttons set.", - "name": "ClearButtons", + "description": "Checks whether a connection reset error (ECONNRESET) has occurred.", + "name": "eConnReset", "params": [], - "returnType": "Void" + "returnDescription": "A flag indicating whether an ECONNRESET error has occurred.", + "returnType": "Boolean" }, { - "description": "Closes the screen and deletes the associated object. This is useful for avoiding screen flicker when the display order of your screens does not resemble a stack.", - "name": "Close", + "description": "Checks whether an is connected error (EISCONN) has occurred.", + "name": "eIsConn", "params": [], - "returnType": "Void" + "returnDescription": "A flag indicating whether an EISCONN error has occurred.", + "returnType": "Boolean" }, { - "name": "CountButtons", + "description": "Checks whether a not connected error (ENOTCONN) has occurred.", + "name": "eNotConn", "params": [], - "returnType": "Integer" + "returnDescription": "A flag indicating whether an ENOTCONN error has occurred.", + "returnType": "Boolean" + } + ], + "name": "ifSocketConnectionstatus", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsocketconnectionstatus.md" + }, + "ifsocketoption": { + "implementers": [ + { + "description": "The roDataGramSocket component enables Brightscript apps to send and receive UDP packets", + "name": "roDataGramSocket", + "url": "https://developer.roku.com/docs/references/brightscript/components/rodatagramsocket.md" }, { - "description": "Allows the screen to pre-fetch the poster images before the screen is displayed as a display optimization technique. This is useful when doing left-right navigation between springboard screens. The pre-fetch is done, loading the image cache and then the screen is displayed.", - "name": "PrefetchPoster", - "params": [ - { - "default": null, - "description": "The URL of the standard definition poster image.", - "isRequired": true, - "name": "sdPosterURL", - "type": "String" - }, - { - "default": null, - "description": "The URL of the high definition poster image.", - "isRequired": true, - "name": "hdPosterURL", - "type": "String" - } - ], - "returnType": "Voidmet" + "description": "The roStreamSocket component enables BrightScript apps to accept and connect to TCP streams as well as send and receive data with them", + "name": "roStreamSocket", + "url": "https://developer.roku.com/docs/references/brightscript/components/rostreamsocket.md" + } + ], + "methods": [ + { + "description": "Checks whether Out Of Bounds (OOB) data is read inline with regular data.", + "name": "GetOOBInline", + "params": [], + "returnDescription": "A flag indicating whether OOB data is read inline with regular data.", + "returnType": "Boolean" }, { - "name": "SetAdDisplayMode", - "params": [ - { - "default": null, - "description": "The scale mode to be used, which may be one of the following values: * scale-to-fill: Scales image to completely fill the rectangle of the bounding frame (default)
This component is no longer updated and will be deprecated on January 1st, 2019.Beginning July 1st, 2017, any new channels using this component will be rejected during certification.Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", - "implementers": [ - { - "description": "roTextScreen provides a way of displaying large amounts of scrollable text", - "name": "roTextScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rotextscreen.md" - } - ], - "methods": [ - { - "description": "Adds a button to the screen, which is displayed in a standard location on the screen and appears in the order added. When the button is pressed, the script will receive an event from the application containing the ID of the button pressed and allowing the script to perform the desired action for that case.", - "name": "AddButton", - "params": [ - { - "default": null, - "description": "The unique ID to be assigned to the button instance", - "isRequired": true, - "name": "id", - "type": "Integer" - }, - { - "default": null, - "description": "The text to be used to identify the button instance", - "isRequired": true, - "name": "title", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the button was successfully added.", - "returnType": "Boolean" - }, - { - "description": "Adds text to the main text of the screen. The text is appended to the end of any existing text", - "name": "AddText", - "params": [ - { - "default": null, - "description": "The text to be appended to the main text on the screen", - "isRequired": true, - "name": "text", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Closes the screen and deletes the associated object. This is useful for avoiding screen flicker when the display order of your screens does not resemble a stack.", - "name": "Close", - "params": [], - "returnType": "Void" - }, - { - "description": "Breadcrumbs allow the application to display a two-part navigational title that shows the previous and current locations in the application hierarchy (e.g. TV – Friends).", - "name": "SetBreadcrumbText", - "params": [ - { - "default": null, - "description": "The previous location in the application hierarchy.", - "isRequired": true, - "name": "location1", - "type": "String" - }, - { - "default": null, - "description": "The current location in the application hierarchy.", - "isRequired": true, - "name": "location2", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Adds a string of bold, high visibility text to the screen as a header to appear above the main body of text. Multiple calls to this method are ignored", - "name": "SetHeaderText", - "params": [ - { - "default": null, - "description": "The text for the header that will be displayed above the main text body", - "isRequired": true, - "name": "text", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the main text of the screen. The roTextScreen handles all text formatting and justification. Multiple calls to this method are ignored", - "name": "SetText", - "params": [ - { - "default": null, - "description": "The text for the main screen.", - "isRequired": true, - "name": "text", - "type": "String" - } - ], - "returnType": "Void" - }, + "name": "ifStringOps", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifstringops.md" + }, + "ifsystemlog": { + "implementers": [ + { + "description": "The roSystemLog component enables the application to receive events from the Roku Streaming Player that are intended for reporting errors and trends, rather than trigger a response to a user action", + "name": "roSystemLog", + "url": "https://developer.roku.com/docs/references/brightscript/components/rosystemlog.md" + } + ], + "methods": [ { - "description": "Sets the title for the screen, which appears in the overhang", - "name": "SetTitle", + "description": "Enables log message of type logType. When a log type is enabled, system log messages of that type are sent to the message port that was set using SetMessagePort().", + "name": "EnableType", "params": [ { "default": null, - "description": "The text to be displayed in the overhang.", + "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": "title", + "name": "logType", "type": "String" } ], "returnType": "Void" - }, - { - "description": "Displays or refreshes the screen after initial creation or state changes.", - "name": "Show", - "params": [], - "returnDescription": "A flag indicating whether the screen was successfully refreshed.", - "returnType": "Boolean" } ], - "name": "ifTextScreen", + "name": "ifSystemLog", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/iftextscreen.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifsystemlog.md" }, "iftexttospeech": { - "description": "> Please note this component is only available on the following devices: Roku Streaming Stick (3600X), Roku Express (3700X) and Express+ (3710X), Roku Premiere (4620X) and Premiere+ (4630X), Roku Ultra (4640X), and any Roku TV running Roku OS version 7.2 and later.", + "description": "> To implement CVAA/screen reader support in your channel, use the [roAudioGuide](https://developer.roku.com/docs/references/brightscript/components/roaudioguide.md component object. The roTextToSpeech component object is typically used for book readers and other special-purpose applications.\n> \n> Please note this component is only available on the following devices: Roku Streaming Stick (3600X), Roku Express (3700X) and Express+ (3710X), Roku Premiere (4620X) and Premiere+ (4630X), Roku Ultra (4640X), and any Roku TV running Roku OS version 7.2 and later.", "implementers": [ { "description": "The roTextToSpeech component provides text to speech capabilities to applications", @@ -19317,7 +15970,7 @@ "params": [ { "default": null, - "description": "The UTF8 text to be spoken.", + "description": "The UTF8 text to be spoken. Punctuation such as commas and periods can be used to add pauses to the speech playback. Typically, special characters are generally not spoken; however, you can pass in the appropriate text such as \"question mark\" to have a special character be spoken (do not use the symbol).", "isRequired": true, "name": "text", "type": "String" @@ -20131,290 +16784,32 @@ "returnType": "Integer" }, { - "description": "Puts the roVideoPlayer object into pause mode. If the player is already in pause mode, this will generate an error.", - "name": "Pause", - "params": [], - "returnDescription": "A flag indicating whether the operation was successful.", - "returnType": "Boolean" - }, - { - "description": "Puts the roVideoPlayer object into play mode starting at the beginning of the content list. This will stop any currently playing Content List.", - "name": "Play", - "params": [], - "returnDescription": "A flag indicating whether the operation was successful.", - "returnType": "Boolean" - }, - { - "description": "Begins downloading and buffering of a video that may be selected by a user. This method can be used to reduce buffering delays after a user has selected a video for playback. It is typically called when the user is in the roSpringboardScreen (or equivalent), anticipating that the user will select a video on the springboard screen for download.", - "name": "PreBuffer", - "params": [], - "returnDescription": "A flag indicating whether the operation was successful.", - "returnType": "Boolean" - }, - { - "description": "Puts the roVideoPlayer object into play mode starting from the pause point. This method must be called when the roVideoPlayer object is in pause mode; otherwise, it will generate an error.", - "name": "Resume", - "params": [], - "returnDescription": "A flag indicating whether the operation was successful.", - "returnType": "Boolean" - }, - { - "description": "Sets the start point of playback for the current video to a specific offset.", - "name": "Seek", - "params": [ - { - "default": null, - "description": "The number of milliseconds to offset the playback of the current content item.", - "isRequired": true, - "name": "offsetMs", - "type": "Integer" - } - ], - "returnType": "Boolean" - }, - { - "description": "Sets CGMS (Copy Guard Management System) on analog outputs to the desired level.", - "name": "SetCGMS", - "params": [ - { - "default": null, - "description": "The level to which CGMS is set. This may be one of the following values: * 0 - No Copy Restriction * 1 - Copy No More * 2 - Copy Once Allowed * 3 – No Copying Permitted", - "isRequired": true, - "name": "level", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the content to be played by the roVideoPlayer.", - "name": "SetContentList", - "params": [ - { - "default": null, - "description": "An [roArray](https://developer.roku.com/docs/references/brightscript/components/roarray.md\"roArray\") of [roAssociativeArray](https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md\"roAssociativeArray\") ([Content Meta-Data](/docs/developer-program/getting-started/architecture/content-metadata.md \" Content Meta-Data\") objects) representing the information for each stream to be played. If the player is currently playing the player will be stopped. Next, the current player position is reset so the next time Play() is called, playback will start at the first item of the content list (unless Seek() is called prior to Play()). roVideoPlayer prefetches the next item in the content list while the current item is playing. Given sufficient network throughput, there is no rebuffering when the player switches to the next item in the list. To signal the content transition, the player sends an isRequestSucceeded notification with the old content index and isListItemSelected notification with the new content index.", - "isRequired": true, - "name": "contentList", - "type": "Object" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the target display window for the video.", - "name": "SetDestinationRect", - "params": [ - { - "default": null, - "description": "The parameters of the target display window, which include the x and y coordinates, width, and height {x:Integer, y:Integer, w:Integer, h:Integer} The default value is: {x:0, y:0, w:0, h:0}, which is full screen.", - "isRequired": true, - "name": "rect", - "type": "Object" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the target display window for the video. This is similar to the [SetDestinationRect()](#setdestinationrectrect-as-object-as-void) function except that the values are specified as separate parameters.", - "name": "SetDestinationRect", - "params": [ - { - "default": null, - "description": "The x coordinate of the target display window.", - "isRequired": true, - "name": "x", - "type": "Integer" - }, - { - "default": null, - "description": "The y coordinate of the target display window.", - "isRequired": true, - "name": "y", - "type": "Integer" - }, - { - "default": null, - "description": "The width of the target display window.", - "isRequired": true, - "name": "w", - "type": "Integer" - }, - { - "default": null, - "description": "The height coordinate of the target display window.", - "isRequired": true, - "name": "h", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Automatically replays the content list. This method buffers on every loop to the beginning of the content list.", - "name": "SetLoop", - "params": [ - { - "default": null, - "description": "Enables the automatic replaying of the content list.", - "isRequired": true, - "name": "loop", - "type": "Boolean" - } - ], - "returnType": "Void" - }, - { - "deprecatedDescription": "This function is deprecated. Roku no longer supports Macrovision and this function exists as a no-op so that legacy scripts do not break.", - "isDeprecated": true, - "name": "SetMacrovisionLevel", - "params": [ - { - "default": null, - "isRequired": true, - "name": "level", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the max resolution required by your video.", - "name": "SetMaxVideoDecodeResolution", - "params": [ - { - "default": null, - "description": "The maximum height required by your video.", - "isRequired": true, - "name": "width", - "type": "Integer" - }, - { - "default": null, - "description": "The maximum width required by your video.", - "isRequired": true, - "name": "height", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the next item in the Content List to be played.", - "name": "SetNext", - "params": [ - { - "default": null, - "description": "The unique ID of the content item to be played next.", - "isRequired": true, - "name": "item", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Sets the interval to receive playback position events from the roVideoPlayer.", - "name": "SetPositionNotificationPeriod", - "params": [ - { - "default": null, - "description": "The notification period for receiving playback position events in seconds. Notification events sent to the script specify the position in seconds relative to the beginning of the stream. If the value is 0, position notifications are never sent. The default value is 0.", - "isRequired": true, - "name": "period", - "type": "Integer" - } - ], - "returnType": "Void" - }, - { - "description": "Specifies the timedMetaData keys that the BrightScript channel is interested in receiving from the timedMetaData event.", - "name": "SetTimedMetaDataForKeys", - "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", - "type": "Dynamic" - } - ], - "returnType": "Void" - }, - { - "description": "Stops playback and resets the seek position; keeps the player’s current position unchanged.", - "name": "Stop", - "params": [], - "returnDescription": "A flag indicating whether the operation was successful.", - "returnType": "Boolean" - } - ], - "name": "ifVideoPlayer", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifvideoplayer.md" - }, - "ifvideoscreen": { - "deprecatedDescription": "This interface is deprecated.Beginning July 1st, 2017, any new channels using this component will be rejected during certification.Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This interface is deprecated.Beginning July 1st, 2017, any new channels using this component will be rejected during certification.Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.", - "implementers": [ - { - "description": "The Video Screen object implements the video playback portion of the user interface", - "name": "roVideoScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rovideoscreen.md" - } - ], - "isDeprecated": true, - "methods": [ - { - "name": "Close", - "params": [], - "returnType": "Void" - }, - { - "description": "Enables [trickplay mode](/docs/developer-program/media-playback/trick-mode.md) during playback. Trickplay mode provides visual feedback during playback operations such as forward and rewind by displaying the timestamp of the content being seeked.", - "name": "EnableTrickPlay", - "params": [ - { - "default": null, - "description": "Specifies the player to use trick play mode during playback.", - "isRequired": true, - "name": "enable", - "type": "Boolean" - } - ], - "returnType": "Void" + "description": "Puts the roVideoPlayer object into pause mode. If the player is already in pause mode, this will generate an error.", + "name": "Pause", + "params": [], + "returnDescription": "A flag indicating whether the operation was successful.", + "returnType": "Boolean" }, { - "description": "Pauses the video.", - "name": "Pause", + "description": "Puts the roVideoPlayer object into play mode starting at the beginning of the content list. This will stop any currently playing Content List.", + "name": "Play", "params": [], - "returnType": "Void" + "returnDescription": "A flag indicating whether the operation was successful.", + "returnType": "Boolean" }, { - "description": "Begins downloading and buffering of a video that may be selected by a user. This can be used to reduce buffering delays after a user has selected a video for playback. A typical use would be to call PreBuffer() when the user is in the roSpringboardScreen (or equivalent), anticipating that the user will select a video on the springboard screen for download.", + "description": "Begins downloading and buffering of a video that may be selected by a user. This method can be used to reduce buffering delays after a user has selected a video for playback. It is typically called when the user is in the roSpringboardScreen (or equivalent), anticipating that the user will select a video on the springboard screen for download.", "name": "PreBuffer", "params": [], "returnDescription": "A flag indicating whether the operation was successful.", "returnType": "Boolean" }, { - "description": "Resumes the video.", + "description": "Puts the roVideoPlayer object into play mode starting from the pause point. This method must be called when the roVideoPlayer object is in pause mode; otherwise, it will generate an error.", "name": "Resume", "params": [], - "returnType": "Void" - }, - { - "description": "Acknowledges the previously generated resume request event with a trickplay ID. When roVideoScreen receives this message, it will resume playback unless a more recent trickplay session has started. In the latter case, the ResumeAck message is ignored and playback is not resumed.", - "name": "ResumeAck", - "params": [ - { - "default": null, - "description": "The trickplay ID to be used to acknoweldge a resume request event.", - "isRequired": true, - "name": "trickplayid", - "type": "Integer" - } - ], - "returnType": "Void" + "returnDescription": "A flag indicating whether the operation was successful.", + "returnType": "Boolean" }, { "description": "Sets the start point of playback for the current video to a specific offset.", @@ -20424,11 +16819,10 @@ "default": null, "description": "The number of milliseconds to offset the playback of the current content item.", "isRequired": true, - "name": "milliSeconds", + "name": "offsetMs", "type": "Integer" } ], - "returnDescription": "A flag indicating whether the seek operation was successful.", "returnType": "Boolean" }, { @@ -20446,14 +16840,14 @@ "returnType": "Void" }, { - "description": "Sets the content to be played in the [roVideoScreen](https://developer.roku.com/docs/references/brightscript/components/rovideoscreen.md\"roVideoScreen\"). You can call this method while playing video, and it will use the new data (release date, length, and title) when showing the program info in the Heads Up Display (HUD).", - "name": "SetContent", + "description": "Sets the content to be played by the roVideoPlayer.", + "name": "SetContentList", "params": [ { "default": null, - "description": "An [roAssociativeArray](https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md\"roAssociativeArray\") describing the attributes ([Content Meta-Data](/docs/developer-program/getting-started/architecture/content-metadata.md \" Content Meta-Data\")) for the title.", + "description": "An [roArray](https://developer.roku.com/docs/references/brightscript/components/roarray.md\"roArray\") of [roAssociativeArray](https://developer.roku.com/docs/references/brightscript/components/roassociativearray.md\"roAssociativeArray\") ([Content Meta-Data](/docs/developer-program/getting-started/architecture/content-metadata.md \" Content Meta-Data\") objects) representing the information for each stream to be played. If the player is currently playing the player will be stopped. Next, the current player position is reset so the next time Play() is called, playback will start at the first item of the content list (unless Seek() is called prior to Play()). roVideoPlayer prefetches the next item in the content list while the current item is playing. Given sufficient network throughput, there is no rebuffering when the player switches to the next item in the list. To signal the content transition, the player sends an isRequestSucceeded notification with the old content index and isListItemSelected notification with the new content index.", "isRequired": true, - "name": "content", + "name": "contentList", "type": "Object" } ], @@ -20474,33 +16868,33 @@ "returnType": "Void" }, { - "description": "Sets the target display window for the video. This is an alternate way to call the **SetDestinationRectangle()** method with each parameter passed separately instead of in an Associative Array.", + "description": "Sets the target display window for the video. This is similar to the [SetDestinationRect()](#setdestinationrectrect-as-object-as-void) function except that the values are specified as separate parameters.", "name": "SetDestinationRect", "params": [ { "default": null, - "description": "The x-coordinate of the rectangle.", + "description": "The x coordinate of the target display window.", "isRequired": true, "name": "x", "type": "Integer" }, { "default": null, - "description": "The y-coordinate of the rectangle.", + "description": "The y coordinate of the target display window.", "isRequired": true, "name": "y", "type": "Integer" }, { "default": null, - "description": "The width of the rectangle.", + "description": "The width of the target display window.", "isRequired": true, "name": "w", "type": "Integer" }, { "default": null, - "description": "The height of the rectangle.", + "description": "The height coordinate of the target display window.", "isRequired": true, "name": "h", "type": "Integer" @@ -20509,12 +16903,12 @@ "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.", - "name": "SetGuidedTrickPlay", + "description": "Mutes the audio during video playback. This is useful, for example, for implementing a video preview feature in a channel.", + "name": "setEnableAudio", "params": [ { "default": null, - "description": "Specifies the player to use guided trickplay mode during playback. By default guided trickplay mode is disabled.", + "description": "Mutes the audio during video playback.", "isRequired": true, "name": "enable", "type": "Boolean" @@ -20523,21 +16917,21 @@ "returnType": "Void" }, { - "description": "Enables the player to start again from the beginning immediately after finishing a content item.", + "description": "Automatically replays the content list. This method buffers on every loop to the beginning of the content list.", "name": "SetLoop", "params": [ { "default": null, - "description": "Specifies the player to start playing a content item from the beginning as soon as the item has been completed. The default is false.", + "description": "Enables the automatic replaying of the content list.", "isRequired": true, - "name": "enable", + "name": "loop", "type": "Boolean" } ], "returnType": "Void" }, { - "deprecatedDescription": "This function is deprecated. Roku no longer supports Macrovision and this function exists as a no-op so that legacy scripts do not break.\n", + "deprecatedDescription": "This function is deprecated. Roku no longer supports Macrovision and this function exists as a no-op so that legacy scripts do not break.", "isDeprecated": true, "name": "SetMacrovisionLevel", "params": [ @@ -20572,29 +16966,29 @@ "returnType": "Void" }, { - "description": "Sets the interval for receiving playback position events from the roVideoScreen object.", - "name": "SetPositionNotificationPeriod", + "description": "Sets the next item in the Content List to be played.", + "name": "SetNext", "params": [ { "default": null, - "description": "The notification period for receiving playback position events in seconds. Notification events sent to the script specify the position in seconds relative to the beginning of the stream. If the value is 0, position notifications are never sent. The default value is 0.", + "description": "The unique ID of the content item to be played next.", "isRequired": true, - "name": "period", + "name": "item", "type": "Integer" } ], "returnType": "Void" }, { - "description": "Sets preview mode on/off. In preview mode, trick play operations (fast forward and rewind) are disabled.", - "name": "SetPreviewMode", + "description": "Sets the interval to receive playback position events from the roVideoPlayer.", + "name": "SetPositionNotificationPeriod", "params": [ { "default": null, - "description": "A flag specifying to turn preview mode on (true) or off (false).", + "description": "The notification period for receiving playback position events in seconds. Notification events sent to the script specify the position in seconds relative to the beginning of the stream. If the value is 0, position notifications are never sent. The default value is 0.", "isRequired": true, - "name": "enable", - "type": "Boolean" + "name": "period", + "type": "Integer" } ], "returnType": "Void" @@ -20605,7 +16999,7 @@ "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.", + "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", "type": "Dynamic" @@ -20614,16 +17008,16 @@ "returnType": "Void" }, { - "description": "Displays/refreshes the screen after creation or state changes.", - "name": "Show", + "description": "Stops playback and resets the seek position; keeps the player’s current position unchanged.", + "name": "Stop", "params": [], - "returnDescription": "A flag indicating whether the screen was successfully refreshed.", + "returnDescription": "A flag indicating whether the operation was successful.", "returnType": "Boolean" } ], - "name": "ifVideoScreen", + "name": "ifVideoPlayer", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifvideoscreen.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifvideoplayer.md" }, "ifxmlelement": { "implementers": [ @@ -20690,650 +17084,312 @@ }, { "default": null, - "description": "The text of the child element to be added (via the body string).", - "isRequired": true, - "name": "body", - "type": "Object" - } - ], - "returnDescription": "The new element added.", - "returnType": "Object" - }, - { - "description": "Adds text to the element.", - "name": "AddText", - "params": [ - { - "default": null, - "description": "The text to be added to the element.", - "isRequired": true, - "name": "text", - "type": "String" - } - ], - "returnType": "Void" - }, - { - "description": "Removes all attributes and children from the element, as well as setting the name to empty.", - "name": "Clear", - "params": [], - "returnType": "Void" - }, - { - "description": "Serializes the element to XML document text.", - "name": "GenXML", - "params": [ - { - "default": null, - "description": "Specifies whether the output begins with a standard XML declaration specifying UTF-8 encoding.", - "isRequired": true, - "name": "gen_header", - "type": "Boolean" - } - ], - "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).", - "name": "GenXMLHdr", - "params": [ - { - "default": null, - "description": "Specify the header with which the output begins.", - "isRequired": true, - "name": "hdr", - "type": "String" - } - ], - "returnDescription": "A serialized string.", - "returnType": "String" - }, - { - "description": "Returns the XML attributes of the element.", - "name": "GetAttributes", - "params": [], - "returnDescription": "An associative array representing the XML attributes of the element.", - "returnType": "Object" - }, - { - "description": "Returns the body of the element. If the element contains child elements, `GetBody()` returns an [roXMLList](https://developer.roku.com/docs/references/brightscript/components/roxmllist.md\"roXMLList\") representing those elements, like GetChildElements(). If there are no children but the element contains text, `GetBody()` returns an [roString](https://developer.roku.com/docs/references/brightscript/components/rostring.md\"roString\") like `GetText()`. If the element is empty, `GetBody()` returns invalid.", - "name": "GetBody", - "params": [], - "returnDescription": "Object body.", - "returnType": "Object" - }, - { - "description": "If this element contains any child elements, this method returns an [roXMLList](https://developer.roku.com/docs/references/brightscript/components/roxmllist.md\"roXMLList\") representing those elements. If there are no child elements, returns invalid.", - "name": "GetChildElements", - "params": [], - "returnDescription": "An element list.", - "returnType": "Object" - }, - { - "description": "If this element contains any child elements, this method returns an [roList](https://developer.roku.com/docs/references/brightscript/components/rolist.md\"roList\") representing those elements. If there are no child elements, returns invalid. The difference between this function and `GetChildElements()` is that `GetChildNodes()` handles the case of mixed XML content, i.e., content with both child elements and text such as: Child TextMore Text. In this case `GetChildNodes()` called with the top level as an argument would return an roList with two elements. The first element would be an `roXMLElement` containing the information about. The second would be an `roString` containing \"More Text\".", - "name": "GetChildNodes", - "params": [], - "returnDescription": "An element list.", - "returnType": "Object" - }, - { - "description": "Returns the name of the element.", - "name": "GetName", - "params": [], - "returnDescription": "Element name.", - "returnType": "String" - }, - { - "description": "Returns an [roXMLList](https://developer.roku.com/docs/references/brightscript/components/roxmllist.md\"roXMLList\") representing all child elements of this element whose case-sensitive name is specified. If only one element matches the name, an roXMLList containing one element is returned. If no elements match, an empty roXMLList is returned.", - "name": "GetNamedElements", - "params": [ - { - "default": null, - "description": "The parent element containing the child elements to be listed. Matching of the parent element name is case-sensitive.", - "isRequired": true, - "name": "name", - "type": "String" - } - ], - "returnDescription": "An element list.", - "returnType": "Object" - }, - { - "description": "Returns an [roXMLList](https://developer.roku.com/docs/references/brightscript/components/roxmllist.md\"roXMLList\") representing all child elements of this element whose case-insensitive name is specified. If only one element matches the name, an roXMLList containing one element is returned. If no elements match, an empty roXMLList is returned.", - "name": "GetNamedElementsCi", - "params": [ - { - "default": null, - "description": "The parent element containing the child elements to be listed. Matching of the parent element name is case-sensitive.", - "isRequired": true, - "name": "name", - "type": "String" - } - ], - "returnDescription": "An element list.", - "returnType": "Object" - }, - { - "description": "Returns any text contained in the element. This returns immediate body text only (for example, it does not include text from child elements).", - "name": "GetText", - "params": [], - "returnDescription": "The text in the element.", - "returnType": "String" - }, - { - "name": "HasAttribute", - "params": [ - { - "default": null, - "description": "The element attribute to be verified.", - "isRequired": true, - "name": "attr", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the element has the specified attribute.", - "returnType": "Boolean" - }, - { - "description": "Checks whether the element has the specified name.", - "name": "IsName", - "params": [ - { - "default": null, - "description": "The element name to be verified.", - "isRequired": true, - "name": "name", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the element has the specified name.", - "returnType": "Boolean" - }, - { - "description": "Parses a string of XML.", - "name": "Parse", - "params": [ - { - "default": null, - "description": "The XML string to be parsed", - "isRequired": true, - "name": "xml", - "type": "String" - } - ], - "returnDescription": "A flag indicating whether the operation was successful. In that case, other methods below can then be used to extract information about the parsed element.", - "returnType": "Boolean" - }, - { - "description": "Sets the element text from the specified string", - "name": "SetBody", - "params": [ - { - "default": null, - "description": "The string to be used to set the element text.", + "description": "The text of the child element to be added (via the body string).", "isRequired": true, "name": "body", "type": "Object" } ], - "returnType": "Void" + "returnDescription": "The new element added.", + "returnType": "Object" }, { - "description": "Sets the name of the element.", - "name": "SetName", + "description": "Adds text to the element.", + "name": "AddText", "params": [ { "default": null, - "description": "The name of the element.", + "description": "The text to be added to the element.", "isRequired": true, - "name": "name", + "name": "text", "type": "String" } ], "returnType": "Void" - } - ], - "name": "ifXMLElement", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifxmlelement.md" - }, - "ifxmllist": { - "implementers": [ - { - "description": "Contains a list of roXML objects", - "name": "roXMLList", - "url": "https://developer.roku.com/docs/references/brightscript/components/roxmllist.md" - } - ], - "methods": [ - { - "description": "If the list contains exactly one item, this function returns the attributes of that item. Otherwise it returns invalid.", - "name": "GetAttributes", - "params": [], - "returnDescription": "The object item.", - "returnType": "Object" }, { - "description": "If the list contains exactly one item, this function returns the child elements of that item. Otherwise it returns invalid.", - "name": "GetChildElements", + "description": "Removes all attributes and children from the element, as well as setting the name to empty.", + "name": "Clear", "params": [], - "returnDescription": "The object item.", - "returnType": "Object" + "returnType": "Void" }, { - "description": "Returns a new XMLList that contains all roXMLElements that matched the passed in name (case-sensitive matching is used). This is the same as using the dot operator on an roXMLList.", - "name": "GetNamedElements", + "description": "Serializes the element to XML document text.", + "name": "GenXML", "params": [ { "default": null, - "description": "The XML element to be used to find matches.", + "description": "Specifies whether the output begins with a standard XML declaration specifying UTF-8 encoding.", "isRequired": true, - "name": "name", - "type": "String" + "name": "gen_header", + "type": "Boolean" } ], - "returnDescription": "An XMLList that contains the matches.", - "returnType": "Object" + "returnDescription": "A serialized string.", + "returnType": "String" }, { - "description": "Returns a new XMLList that contains all roXMLElements that matched the passed in name (case-insensitive matching is used). This is the same as using the dot operator on an roXMLList.", - "name": "GetNamedElementsCi", + "description": "Serializes the element to XML document text. The specified header is used to begin the output (for example, as a custom XML declaration).", + "name": "GenXMLHdr", "params": [ { "default": null, - "description": "The XML element to be used to find matches.", + "description": "Specify the header with which the output begins.", "isRequired": true, - "name": "name", + "name": "hdr", "type": "String" } ], - "returnDescription": "An XMLList that contains the matches.", - "returnType": "Object" - }, - { - "description": "If the list contains exactly one item, this function returns the text of that item. Otherwise, it returns an empty string.", - "name": "GetText", - "params": [], - "returnDescription": "The object string.", + "returnDescription": "A serialized string.", "returnType": "String" }, { - "description": "If the list contains exactly one item, this function returns that item. Otherwise, it returns itself.", - "name": "Simplify", + "description": "Returns the XML attributes of the element.", + "name": "GetAttributes", "params": [], - "returnDescription": "The object item.", + "returnDescription": "An associative array representing the XML attributes of the element.", "returnType": "Object" - } - ], - "name": "ifXMLList", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifxmllist.md" - } - }, - "events": { - "roaudioplayerevent": { - "description": "The roAudioPlayer sends the roAudioPlayerEvent with the following predicates that indicate its valid event types:", - "implementers": [ - { - "name": "roAudioPlayer", - "url": "https://developer.roku.com/docs/references/brightscript/components/roaudioplayer.md" - } - ], - "methods": [ - { - "name": "isFullResult", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isListItemSelected", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isPartialResult", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isPaused", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isRequestFailed", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isRequestSucceeded", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isResumed", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isStatusMessage", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isTimedMetaData", - "params": [], - "returnType": "Boolean" - } - ], - "name": "roAudioPlayerEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/roaudioplayerevent.md" - }, - "rocaptionrendererevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nroCaptionRenderer events are sent by the roCaptionRenderer to notify a BrightScript channel when caption data needs to be rendered. Specifically, one of two events, isCaptionText and isUpdateCaptionRequest, will be fired depending on the mode that the caption renderer is in. The mode is set by calling the [ifCaptionRenderer.SetMode()](https://developer.roku.com/docs/references/brightscript/interfaces/ifcaptionrenderer.mdsetmodemode-as-integer-as-void \"ifCaptionRenderer.SetMode()\") function.\n\n| Mode | Event |\n| --- | --- |\n| 1 | isCaptionUpdateRequest |\n| 2 | isCaptionText |", - "implementers": [ - { - "name": "roCaptionRenderer", - "url": "https://developer.roku.com/docs/references/brightscript/components/rocaptionrenderer.md" - } - ], - "isDeprecated": true, - "methods": [ - { - "name": "isCaptionText", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isCaptionUpdateRequest", - "params": [], - "returnType": "Boolean" - } - ], - "name": "roCaptionRendererEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rocaptionrendererevent.md" - }, - "rocecstatusevent": { - "availableSince": "8", - "description": "_Available since Roku OS 8_\n\nThis event determines the active source status for set boxes. Channels subscribing to the `roCECStatusEvent` will be notified when the active-source status of the device changes per the CEC message traffic.\n\nTo use the roCECStatusEvent, follow the steps below:\n\n1. Connect a Roku STB to a TV which transmits and receives CEC messages\n2. Select the HDMI input to which the STB is connected\n3. Switch away and then back to the STB's HDMI input", - "implementers": [], - "methods": [ - { - "name": "isActiveSource", - "params": [], - "returnType": "Boolean" - } - ], - "name": "roCECStatusEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rocecstatusevent.md" - }, - "rochannelstoreevent": { - "description": "The roChannelStore sends an roChannelStoreEvent in response to a call to any of several Get\\* methods in [ifChannelStore](https://developer.roku.com/docs/references/brightscript/interfaces/ifchannelstore.md\"ifChannelStore\"). The following predicates indicate its valid event types:", - "implementers": [ - { - "name": "roChannelStore", - "url": "https://developer.roku.com/docs/references/brightscript/components/rochannelstore.md" - } - ], - "methods": [ - { - "name": "isRequestFailed", - "params": [], - "returnType": "Boolean" }, { - "name": "isRequestInterrupted", + "description": "Returns the body of the element. If the element contains child elements, `GetBody()` returns an [roXMLList](https://developer.roku.com/docs/references/brightscript/components/roxmllist.md\"roXMLList\") representing those elements, like GetChildElements(). If there are no children but the element contains text, `GetBody()` returns an [roString](https://developer.roku.com/docs/references/brightscript/components/rostring.md\"roString\") like `GetText()`. If the element is empty, `GetBody()` returns invalid.", + "name": "GetBody", "params": [], - "returnType": "Boolean" + "returnDescription": "Object body.", + "returnType": "Object" }, { - "name": "isRequestSucceeded", - "params": [], - "returnType": "Boolean" - } - ], - "name": "roChannelStoreEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rochannelstoreevent.md" - }, - "rocoderegistrationscreenevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roCodeRegistrationScreen sends the roCodeRegistrationScreenEvent with the following predicates that indicate its valid event types:", - "implementers": [ - { - "name": "roCodeRegistrationScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rocoderegistrationscreen.md" - } - ], - "isDeprecated": true, - "methods": [ - { - "name": "isButtonPressed", + "description": "If this element contains any child elements, this method returns an [roXMLList](https://developer.roku.com/docs/references/brightscript/components/roxmllist.md\"roXMLList\") representing those elements. If there are no child elements, returns invalid.", + "name": "GetChildElements", "params": [], - "returnType": "Boolean" + "returnDescription": "An element list.", + "returnType": "Object" }, { - "name": "isScreenClosed", - "params": [], - "returnType": "Boolean" - } - ], - "name": "roCodeRegistrationScreenEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rocoderegistrationscreenevent.md" - }, - "rodeviceinfoevent": { - "availableSince": "8", - "description": "_Available since Roku OS 8_\n\nThe roDeviceInfo component sends the roDeviceInfoEvent with the following predicates that indicate its valid event types:", - "implementers": [ - { - "name": "roDeviceInfo", - "url": "https://developer.roku.com/docs/references/brightscript/components/rodeviceinfo.md" - } - ], - "methods": [ - { - "name": "isCaptionModeChanged", + "description": "If this element contains any child elements, this method returns an [roList](https://developer.roku.com/docs/references/brightscript/components/rolist.md\"roList\") representing those elements. If there are no child elements, returns invalid. The difference between this function and `GetChildElements()` is that `GetChildNodes()` handles the case of mixed XML content, i.e., content with both child elements and text such as: Child TextMore Text. In this case `GetChildNodes()` called with the top level as an argument would return an roList with two elements. The first element would be an `roXMLElement` containing the information about. The second would be an `roString` containing \"More Text\".", + "name": "GetChildNodes", "params": [], - "returnType": "Boolean" + "returnDescription": "An element list.", + "returnType": "Object" }, { - "name": "isStatusMessage", - "params": [], - "returnType": "Boolean" - } - ], - "name": "roDeviceInfoEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rodeviceinfoevent.md" - }, - "rofilesystemevent": { - "description": "The roFileSystem component sends the roFileSystemEvent with the following predicates that indicate its valid event types:", - "implementers": [ - { - "name": "roFileSystem", - "url": "https://developer.roku.com/docs/references/brightscript/components/rofilesystem.md" - } - ], - "methods": [ - { - "name": "isStorageDeviceAdded", + "description": "Returns the name of the element.", + "name": "GetName", "params": [], - "returnType": "Boolean" + "returnDescription": "Element name.", + "returnType": "String" }, { - "name": "isStorageDeviceRemoved", - "params": [], - "returnType": "Boolean" - } - ], - "name": "roFileSystemEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rofilesystemevent.md" - }, - "rogridscreenevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.Beginning July 1st, 2017, any new channels using this component will be rejected during certification.Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.Beginning July 1st, 2017, any new channels using this component will be rejected during certification.Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roGridScreen sends the roGridScreenEvent with the following predicates that indicate its valid event types:", - "implementers": [ + "description": "Returns an [roXMLList](https://developer.roku.com/docs/references/brightscript/components/roxmllist.md\"roXMLList\") representing all child elements of this element whose case-sensitive name is specified. If only one element matches the name, an roXMLList containing one element is returned. If no elements match, an empty roXMLList is returned.", + "name": "GetNamedElements", + "params": [ + { + "default": null, + "description": "The parent element containing the child elements to be listed. Matching of the parent element name is case-sensitive.", + "isRequired": true, + "name": "name", + "type": "String" + } + ], + "returnDescription": "An element list.", + "returnType": "Object" + }, { - "name": "roGridScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rogridscreen.md" - } - ], - "isDeprecated": true, - "methods": [ + "description": "Returns an [roXMLList](https://developer.roku.com/docs/references/brightscript/components/roxmllist.md\"roXMLList\") representing all child elements of this element whose case-insensitive name is specified. If only one element matches the name, an roXMLList containing one element is returned. If no elements match, an empty roXMLList is returned.", + "name": "GetNamedElementsCi", + "params": [ + { + "default": null, + "description": "The parent element containing the child elements to be listed. Matching of the parent element name is case-sensitive.", + "isRequired": true, + "name": "name", + "type": "String" + } + ], + "returnDescription": "An element list.", + "returnType": "Object" + }, { - "name": "isListItemFocused", + "description": "Returns any text contained in the element. This returns immediate body text only (for example, it does not include text from child elements).", + "name": "GetText", "params": [], - "returnType": "Boolean" + "returnDescription": "The text in the element.", + "returnType": "String" }, { - "name": "isListItemSelected", - "params": [], + "name": "HasAttribute", + "params": [ + { + "default": null, + "description": "The element attribute to be verified.", + "isRequired": true, + "name": "attr", + "type": "String" + } + ], + "returnDescription": "A flag indicating whether the element has the specified attribute.", "returnType": "Boolean" }, { - "name": "isRemoteKeyPressed", - "params": [], + "description": "Checks whether the element has the specified name.", + "name": "IsName", + "params": [ + { + "default": null, + "description": "The element name to be verified.", + "isRequired": true, + "name": "name", + "type": "String" + } + ], + "returnDescription": "A flag indicating whether the element has the specified name.", "returnType": "Boolean" }, { - "name": "isScreenClosed", - "params": [], + "description": "Parses a string of XML.", + "name": "Parse", + "params": [ + { + "default": null, + "description": "The XML string to be parsed", + "isRequired": true, + "name": "xml", + "type": "String" + } + ], + "returnDescription": "A flag indicating whether the operation was successful. In that case, other methods below can then be used to extract information about the parsed element.", "returnType": "Boolean" - } - ], - "name": "roGridScreenEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rogridscreenevent.md" - }, - "rohdmihotplugevent": { - "description": "The roHdmiStatus sends the roHdmiHotPlugEvent with the following predicates that indicate its valid event types:", - "implementers": [], - "methods": [ + }, { - "name": "isHdmiHotPlug", - "params": [], - "returnType": "Boolean" - } - ], - "name": "roHdmiHotPlugEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rohdmihotplugevent.md" - }, - "rohdmistatusevent": { - "description": "The roHdmiStatus sends the roHdmiStatusEvent with the following predicates that indicate its valid event types:", - "implementers": [], - "methods": [ + "description": "Sets the element text from the specified string", + "name": "SetBody", + "params": [ + { + "default": null, + "description": "The string to be used to set the element text.", + "isRequired": true, + "name": "body", + "type": "Object" + } + ], + "returnType": "Void" + }, { - "name": "isHdmiStatus", - "params": [], - "returnType": "Boolean" + "description": "Sets the name of the element.", + "name": "SetName", + "params": [ + { + "default": null, + "description": "The name of the element.", + "isRequired": true, + "name": "name", + "type": "String" + } + ], + "returnType": "Void" } ], - "name": "roHdmiStatusEvent", + "name": "ifXMLElement", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rohdmistatusevent.md" + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifxmlelement.md" }, - "roimagecanvasevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roImageCanvas sends the roImageCanvasEvent with the following predicates that indicate its valid event types:", + "ifxmllist": { "implementers": [ { - "name": "roImageCanvas", - "url": "https://developer.roku.com/docs/references/brightscript/components/roimagecanvas.md" + "description": "Contains a list of roXML objects", + "name": "roXMLList", + "url": "https://developer.roku.com/docs/references/brightscript/components/roxmllist.md" } ], - "isDeprecated": true, "methods": [ { - "name": "isButtonPressed", + "description": "If the list contains exactly one item, this function returns the attributes of that item. Otherwise it returns invalid.", + "name": "GetAttributes", "params": [], - "returnType": "Boolean" + "returnDescription": "The object item.", + "returnType": "Object" }, { - "name": "isRemoteKeyPressed", + "description": "If the list contains exactly one item, this function returns the child elements of that item. Otherwise it returns invalid.", + "name": "GetChildElements", "params": [], - "returnType": "Boolean" + "returnDescription": "The object item.", + "returnType": "Object" }, { - "name": "isScreenClosed", - "params": [], - "returnType": "Boolean" - } - ], - "name": "roImageCanvasEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/roimagecanvasevent.md" - }, - "roinputevent": { - "description": "The roInput component sends the roInputEvent with the following predicates that indicate its valid event types:", - "implementers": [ + "description": "Returns a new XMLList that contains all roXMLElements that matched the passed in name (case-sensitive matching is used). This is the same as using the dot operator on an roXMLList.", + "name": "GetNamedElements", + "params": [ + { + "default": null, + "description": "The XML element to be used to find matches.", + "isRequired": true, + "name": "name", + "type": "String" + } + ], + "returnDescription": "An XMLList that contains the matches.", + "returnType": "Object" + }, { - "name": "roInput", - "url": "https://developer.roku.com/docs/references/brightscript/components/roinput.md" - } - ], - "methods": [ + "description": "Returns a new XMLList that contains all roXMLElements that matched the passed in name (case-insensitive matching is used). This is the same as using the dot operator on an roXMLList.", + "name": "GetNamedElementsCi", + "params": [ + { + "default": null, + "description": "The XML element to be used to find matches.", + "isRequired": true, + "name": "name", + "type": "String" + } + ], + "returnDescription": "An XMLList that contains the matches.", + "returnType": "Object" + }, { - "name": "GetInfo", + "description": "If the list contains exactly one item, this function returns the text of that item. Otherwise, it returns an empty string.", + "name": "GetText", "params": [], - "returnType": "Object" + "returnDescription": "The object string.", + "returnType": "String" }, { - "name": "isInput", + "description": "If the list contains exactly one item, this function returns that item. Otherwise, it returns itself.", + "name": "Simplify", "params": [], - "returnType": "Boolean" + "returnDescription": "The object item.", + "returnType": "Object" } ], - "name": "roInputEvent", + "name": "ifXMLList", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/roinputevent.md" - }, - "rokeyboardscreenevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roKeyboardScreen sends the roKeyboardScreenEvent with the following predicates that indicate its valid event types:", + "url": "https://developer.roku.com/docs/references/brightscript/interfaces/ifxmllist.md" + } + }, + "events": { + "roappmemorymonitorevent": { + "description": "The [roAppMemoryMonitor](https://developer.roku.com/docs/references/brightscript/components/roappmemorymonitor.md\"roAppMemoryMonitor\") component sends the **roAppMemoryMonitorEvent** with the percentage of memory consumed by the channel compared to per-channel memory limit.", "implementers": [ { - "name": "roKeyboardScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rokeyboardscreen.md" - } - ], - "isDeprecated": true, - "methods": [ - { - "name": "isButtonPressed", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isScreenClosed", - "params": [], - "returnType": "Boolean" + "name": "roAppMemoryMonitor", + "url": "https://developer.roku.com/docs/references/brightscript/components/roappmemorymonitor.md" } ], - "name": "roKeyboardScreenEvent", + "methods": [], + "name": "roAppMemoryMonitorEvent", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rokeyboardscreenevent.md" + "url": "https://developer.roku.com/docs/references/brightscript/events/roappmemorymonitorevent.md" }, - "rolistscreenevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roListScreen sends the roListScreenEvent with the following predicates that indicate its valid event types:", + "roaudioplayerevent": { + "description": "The roAudioPlayer sends the roAudioPlayerEvent with the following predicates that indicate its valid event types:", "implementers": [ { - "name": "roListScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rolistscreen.md" + "name": "roAudioPlayer", + "url": "https://developer.roku.com/docs/references/brightscript/components/roaudioplayer.md" } ], - "isDeprecated": true, "methods": [ { - "name": "isListItemFocused", + "name": "isFullResult", "params": [], "returnType": "Boolean" }, @@ -21343,244 +17399,213 @@ "returnType": "Boolean" }, { - "name": "isRemoteKeyPressed", + "name": "isPartialResult", "params": [], "returnType": "Boolean" }, { - "name": "isScreenClosed", + "name": "isPaused", "params": [], "returnType": "Boolean" - } - ], - "name": "roListScreenEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rolistscreenevent.md" - }, - "romessagedialogevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roMessageDialog sends the roMessageDialogEvent with the following predicates that indicate its valid event types:", - "implementers": [ + }, { - "name": "roMessageDialog", - "url": "https://developer.roku.com/docs/references/brightscript/components/romessagedialog.md" - } - ], - "isDeprecated": true, - "methods": [ + "name": "isRequestFailed", + "params": [], + "returnType": "Boolean" + }, + { + "name": "isRequestSucceeded", + "params": [], + "returnType": "Boolean" + }, { - "name": "isButtonInfo", + "name": "isResumed", "params": [], "returnType": "Boolean" }, { - "name": "isButtonPressed", + "name": "isStatusMessage", "params": [], "returnType": "Boolean" }, { - "name": "isScreenClosed", + "name": "isTimedMetaData", "params": [], "returnType": "Boolean" } ], - "name": "roMessageDialogEvent", + "name": "roAudioPlayerEvent", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/romessagedialogevent.md" + "url": "https://developer.roku.com/docs/references/brightscript/events/roaudioplayerevent.md" }, - "romicrophoneevent": { - "description": "The [roMicrophone](https://developer.roku.com/docs/references/brightscript/components/romicrophone.md\"roMicrophone\") component sends the `roMicrophoneEvent` with the following predicates that indicate its valid event types:", + "rocecstatusevent": { + "description": "The roCECStatusEvent determines the active source status for set boxes. Channels subscribing to the roCECStatusEvent are notified when the active-source status of the device changes per the CEC message traffic.\n\nTo use the roCECStatusEvent, follow the steps below:\n\n1. Connect a Roku STB to a TV which transmits and receives CEC messages.\n \n2. Select the HDMI input to which the STB is connected.\n \n3. Switch away and then back to the STB's HDMI input.", "implementers": [ { - "name": "roMicrophone", - "url": "https://developer.roku.com/docs/references/brightscript/components/romicrophone.md" + "name": "roCECStatus", + "url": "https://developer.roku.com/docs/references/brightscript/components/rocecstatus.md" } ], "methods": [ { - "name": "IsRecordingDone", + "name": "GetIndex", "params": [], - "returnType": "Boolean" + "returnType": "Integer" }, { - "name": "IsRecordingInfo", + "name": "GetInfo", "params": [], - "returnType": "Boolean" + "returnType": "Object" + }, + { + "name": "GetMessage", + "params": [], + "returnType": "String" } ], - "name": "roMicrophoneEvent", + "name": "roCECStatusEvent", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/romicrophoneevent.md" + "url": "https://developer.roku.com/docs/references/brightscript/events/rocecstatusevent.md" }, - "roonelinedialogevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nSends the roOneLineDialogEvent with the following predicates that indicate its valid event types:", + "rochannelstoreevent": { + "description": "The roChannelStore sends an roChannelStoreEvent in response to a call to any of several Get\\* methods in [ifChannelStore](https://developer.roku.com/docs/references/brightscript/interfaces/ifchannelstore.md\"ifChannelStore\"). The following predicates indicate its valid event types:", "implementers": [ { - "name": "roOneLineDialog", - "url": "https://developer.roku.com/docs/references/brightscript/components/roonelinedialog.md" + "name": "roChannelStore", + "url": "https://developer.roku.com/docs/references/brightscript/components/rochannelstore.md" } ], - "isDeprecated": true, "methods": [ { - "name": "isScreenClosed", + "name": "isRequestFailed", "params": [], "returnType": "Boolean" - } - ], - "name": "roOneLineDialogEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/roonelinedialogevent.md" - }, - "roparagraphscreenevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roParagraphScreen sends the roParagraphScreenEvent with the following predicates that indicate its valid event types:", - "implementers": [ - { - "name": "roParagraphScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/roparagraphscreen.md" - } - ], - "isDeprecated": true, - "methods": [ + }, { - "name": "isButtonPressed", + "name": "isRequestInterrupted", "params": [], "returnType": "Boolean" }, { - "name": "isScreenClosed", + "name": "isRequestSucceeded", "params": [], "returnType": "Boolean" } ], - "name": "roParagraphScreenEvent", + "name": "roChannelStoreEvent", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/roparagraphscreenevent.md" + "url": "https://developer.roku.com/docs/references/brightscript/events/rochannelstoreevent.md" }, - "ropinentrydialogevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roPinEntryDialog sends the roPinEntryDialogEvent with the following predicates that indicate its valid event types:", + "rodeviceinfoevent": { + "availableSince": "8", + "description": "_Available since Roku OS 8_\n\nThe roDeviceInfo component sends the roDeviceInfoEvent with the following predicates that indicate its valid event types:", "implementers": [ { - "name": "roPinEntryDialog", - "url": "https://developer.roku.com/docs/references/brightscript/components/ropinentrydialog.md" + "name": "roDeviceInfo", + "url": "https://developer.roku.com/docs/references/brightscript/components/rodeviceinfo.md" } ], - "isDeprecated": true, "methods": [ { - "name": "isButtonPressed", + "name": "isCaptionModeChanged", "params": [], "returnType": "Boolean" }, { - "name": "isScreenClosed", + "name": "isStatusMessage", "params": [], "returnType": "Boolean" } ], - "name": "roPinEntryDialogEvent", + "name": "roDeviceInfoEvent", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/ropinentrydialogevent.md" + "url": "https://developer.roku.com/docs/references/brightscript/events/rodeviceinfoevent.md" }, - "roposterscreenevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.Beginning July 1st, 2017, any new channels using this component will be rejected during certification.Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.Beginning July 1st, 2017, any new channels using this component will be rejected during certification.Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roPosterScreen sends the roPosterScreenEvent with the following predicates that indicate its valid event types:", + "rofilesystemevent": { + "description": "The roFileSystem component sends the roFileSystemEvent with the following predicates that indicate its valid event types:", "implementers": [ { - "name": "roPosterScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/roposterscreen.md" + "name": "roFileSystem", + "url": "https://developer.roku.com/docs/references/brightscript/components/rofilesystem.md" } ], - "isDeprecated": true, "methods": [ { - "name": "isAdSelected", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isListFocused", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isListItemFocused", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isListItemInfo", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isListItemSelected", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isListSelected", + "name": "isStorageDeviceAdded", "params": [], "returnType": "Boolean" }, { - "name": "isRemoteKeyPressed", + "name": "isStorageDeviceRemoved", "params": [], "returnType": "Boolean" - }, + } + ], + "name": "roFileSystemEvent", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/events/rofilesystemevent.md" + }, + "rohdmistatusevent": { + "description": "The roHdmiStatus sends the roHdmiStatusEvent with the following predicates that indicate its valid event types:", + "implementers": [], + "methods": [ { - "name": "isScreenClosed", + "name": "isHdmiStatus", "params": [], "returnType": "Boolean" } ], - "name": "roPosterScreenEvent", + "name": "roHdmiStatusEvent", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/roposterscreenevent.md" + "url": "https://developer.roku.com/docs/references/brightscript/events/rohdmistatusevent.md" }, - "rosearchscreenevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roSearchScreen sends the roSearchScreenEvent with the following predicates that indicate its valid event types:", + "roinputevent": { + "description": "The roInput component sends the roInputEvent with the following predicates that indicate its valid event types:", "implementers": [ { - "name": "roSearchScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rosearchscreen.md" + "name": "roInput", + "url": "https://developer.roku.com/docs/references/brightscript/components/roinput.md" } ], - "isDeprecated": true, "methods": [ { - "name": "IsButtonInfo", + "name": "GetInfo", "params": [], - "returnType": "Boolean" + "returnType": "Object" }, { - "name": "IsCleared", + "name": "isInput", "params": [], "returnType": "Boolean" - }, + } + ], + "name": "roInputEvent", + "properties": [], + "url": "https://developer.roku.com/docs/references/brightscript/events/roinputevent.md" + }, + "romicrophoneevent": { + "description": "The [roMicrophone](https://developer.roku.com/docs/references/brightscript/components/romicrophone.md\"roMicrophone\") component sends the `roMicrophoneEvent` with the following predicates that indicate its valid event types:", + "implementers": [ { - "name": "IsFullResult", - "params": [], - "returnType": "Dynamic" - }, + "name": "roMicrophone", + "url": "https://developer.roku.com/docs/references/brightscript/components/romicrophone.md" + } + ], + "methods": [ { - "name": "IsPartialResult", + "name": "IsRecordingDone", "params": [], "returnType": "Boolean" }, { - "name": "IsScreenClosed", + "name": "IsRecordingInfo", "params": [], "returnType": "Boolean" } ], - "name": "roSearchScreenEvent", + "name": "roMicrophoneEvent", "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rosearchscreenevent.md" + "url": "https://developer.roku.com/docs/references/brightscript/events/romicrophoneevent.md" }, "rosgnodeevent": { "description": "An roSGNode object sends roSGNodeEvent messages to a specified port when changes occur in nodes. An roSGNodeEvent is also sent as the argument of field observer callback functions. Both of these cases allow a SceneGraph application to respond to events. roSGNodeEvent supports the following methods.", @@ -21640,67 +17665,6 @@ "properties": [], "url": "https://developer.roku.com/docs/references/brightscript/events/rosgscreenevent.md" }, - "roslideshowevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roSlideShow sends the roSlideShowEvent with the following predicates that indicate its valid event types:", - "implementers": [ - { - "name": "roSlideShow", - "url": "https://developer.roku.com/docs/references/brightscript/components/roslideshow.md" - } - ], - "isDeprecated": true, - "methods": [ - { - "name": "isButtonPressed", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isPaused", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isPlaybackPosition", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isRemoteKeyPressed", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isRequestFailed", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isRequestInterrupted", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isRequestSucceeded", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isResumed", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isScreenClosed", - "params": [], - "returnType": "Boolean" - } - ], - "name": "roSlideShowEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/roslideshowevent.md" - }, "rosocketevent": { "description": "An roStreamSocket or roDataGramSocket object sends the roSocketEvent to indicate a change in the status of the socket. The socket must enable specific event notifications via the notify methods of ifSocketAsync.", "implementers": [ @@ -21724,42 +17688,6 @@ "properties": [], "url": "https://developer.roku.com/docs/references/brightscript/events/rosocketevent.md" }, - "rospringboardscreenevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roSpringboardScreen sends the roSpringboardScreenEvent with the following predicates that indicate its valid event types:", - "implementers": [ - { - "name": "roSpringboardScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rospringboardscreen.md" - } - ], - "isDeprecated": true, - "methods": [ - { - "name": "isButtonInfo", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isButtonPressed", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isRemoteKeyPressed", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isScreenClosed", - "params": [], - "returnType": "Boolean" - } - ], - "name": "roSpringboardScreenEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rospringboardscreenevent.md" - }, "rosystemlogevent": { "description": "roSystemLogEvents are sent when enabled via [roSystemLog](https://developer.roku.com/docs/references/brightscript/components/rosystemlog.md\"roSystemLog\"). roSystemLogEvent has the following method:", "implementers": [], @@ -21774,32 +17702,6 @@ "properties": [], "url": "https://developer.roku.com/docs/references/brightscript/events/rosystemlogevent.md" }, - "rotextscreenevent": { - "deprecatedDescription": "This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n\nBeginning July 1st, 2017, any new channels using this component will be rejected during certification.\n\nBeginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated and will be removed from Roku OS on January 1st, 2019.\n> \n> Beginning July 1st, 2017, any new channels using this component will be rejected during certification.\n> \n> Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roTextScreen sends the roTextScreenEvent with the following predicates that indicate its valid event types:", - "implementers": [ - { - "name": "roTextScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rotextscreen.md" - } - ], - "isDeprecated": true, - "methods": [ - { - "name": "isButtonPressed", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isScreenClosed", - "params": [], - "returnType": "Boolean" - } - ], - "name": "roTextScreenEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rotextscreenevent.md" - }, "rotexttospeechevent": { "description": "> Please note this component is only available on the following devices: Roku Streaming Stick (3600X), Roku Express (3700X) and Express+ (3710X), Roku Premiere (4620X) and Premiere+ (4630X), Roku Ultra (4640X), and any Roku TV running Roku OS version 7.2 and later.\n\nThe [roTextToSpeech](https://developer.roku.com/docs/references/brightscript/components/rotexttospeech.md\"roTextToSpeech\") component sends the roTextToSpeechEvent with the following predicates that indicate its valid event types.", "implementers": [ @@ -22059,47 +17961,6 @@ "name": "roVideoPlayerEvent", "properties": [], "url": "https://developer.roku.com/docs/references/brightscript/events/rovideoplayerevent.md" - }, - "rovideoscreenevent": { - "deprecatedDescription": "This component is deprecated.Beginning July 1st, 2017, any new channels using this component will be rejected during certification.Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n", - "description": "> This component is deprecated.Beginning July 1st, 2017, any new channels using this component will be rejected during certification.Beginning January 1st, 2018, any updates to existing channels using this component will be rejected during certification.\n\nThe roVideoScreen sends the roVideoScreenEvent with the same predicates as in [roVideoPlayerEvent](https://developer.roku.com/docs/references/brightscript/events/rovideoplayerevent.md\"roVideoPlayerEvent\"). In addition to the events listed in roVideoPlayerEvent, the following events are also supported:", - "implementers": [ - { - "name": "roVideoScreen", - "url": "https://developer.roku.com/docs/references/brightscript/components/rovideoscreen.md" - } - ], - "isDeprecated": true, - "methods": [ - { - "name": "GetData", - "params": [], - "returnType": "Integer" - }, - { - "name": "GetIndex", - "params": [], - "returnType": "Integer" - }, - { - "name": "isPartialResult", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isResumeRequest", - "params": [], - "returnType": "Boolean" - }, - { - "name": "isScreenClosed", - "params": [], - "returnType": "Boolean" - } - ], - "name": "roVideoScreenEvent", - "properties": [], - "url": "https://developer.roku.com/docs/references/brightscript/events/rovideoscreenevent.md" } } } \ No newline at end of file