Skip to end of metadata
Go to start of metadata

Space Index

0-9 ... 0 A ... 9 B ... 10 C ... 24 D ... 14 E ... 5
F ... 4 G ... 5 H ... 1 I ... 104 J ... 0 K ... 2
L ... 9 M ... 6 N ... 2 O ... 4 P ... 14 Q ... 0
R ... 127 S ... 28 T ... 15 U ... 1 V ... 2 W ... 4
X ... 2 Y ... 0 Z ... 1 !@#$ ... 0    

0-9

A

Page: Abstract Nodes
The abstract node classes are the lowest level fundamental node classes from which all Scene Graph node classes inherit their basic characteristics. As these node classes are abstract, they cannot be used in a Scene Graph application, but the Scene Graph
Page: Animation
Extends: AnimationBase Description The Animation node class provides animations of renderable nodes, by applying interpolator functions to the values in specified renderable node fields. For an animation to take effect, an Animation node definition must
Page: Animation Markup
Table of Contents Node Class References: Animation, SequentialAnimation, ParallelAnimation Interpolator Node References: Vector2DFieldInterpolator, FloatFieldInterpolator, ColorFieldInterpolator The following XML Scene Graph markup examples demonstrate h
Page: Animation Nodes
This section describes the node classes that allow developers to add animation effects to their Scene Graph applications.
Page: AnimationBase
Extends: Node Description AnimationBase is an abstract node class that contains the fields common to the Animation, SequentialAnimation, and ParallelAnimation nodes. The purpose of the AnimationBase node class is to provide the basic functionality needed
Page: ArrayGrid
Table of Contents Extends: Group Description The ArrayGrid node class is an abstract base class that provides functionality to the list and grid node classes that are extended from ArrayGrid. The field value settings and their effect in this abstract base
Page: Audio
Extends: Node Description The Audio node class plays streaming audio. It only can play mp3 files. The Audio node class has no built-in visual UI, but you can build your own UI for the node, including trick play, or showing an album cover or similar graphi
Page: Audio and Video Support
It is important to understand the available encoding methods and supported formats when streaming content on Roku devices. The following information will give you a good basis and help you choose the best options for distributing content based on quality
Page: Authentication and Linking
Table of Contents Purpose of this document This overview describes the typical flow and API used for registering and linking a device to an authentication service. The primary and recommended method for linking a device involves 3 main steps: 1. Display a

B

Page: Best Practices for Data Management
Table of Contents Thread Ownership of Nodes Each node is owned by a particular thread. That is usually the render thread. In particular, renderable node instances (Group and every component extended from it) are owned by the render thread, no matter which
Page: BrightScript Component Reference
Page: BrightScript Components
Two new BrightScript components, roSGScreen and roSGNode, have been defined to allow our Scene Graph technology to be used in scripting. Currently, a fairly strict ordering must be used in BrightScript to create a Scene Graph screen and set up its Scene n
Page: BrightScript Language Reference
Roku BrightScript is a powerful scripting language that makes it easy and quick to build media and networked applications for embedded devices. The language has integrated support for BrightScript Components, a library of lightweight components. The APIs
Page: BrightScript Profiler
The BrightScript Profiler gathers important metrics such as CPU usage, "wall-clock" time (the real world time for functions to complete), and the number of times functions are called during the execution of your channel. This tool can help you analyze whe
Page: BrightScript Support
Several BrightScript functions and components cannot be used in Scene Graph component scripts. Many of the BrightScript components that cannot be used provide duplicate rendering functionality as Scene Graph nodes, and cannot be used for that reason. You
Page: BrightScript/XML Markup Equivalence
Because the Scene Graph API includes BrightScript objects and interfaces, you have the flexibility to create Scene Graph application screens using a variety of methods. You can create the screens entirely in XML markup in the <children> element of the Sce
Page: BusySpinner
Extends: Poster Description The BusySpinner node class is a simple widget that displays a continuously rotating bitmap. Since the BusySpinner node class uses an internal Poster node instance, the busy spinner bitmap can be specified by setting the intern
Page: Button
Extends: Group Description The Button node is a simple widget that generates a buttonSelected event when the user selects it. The button can display a label and/or an icon, as well as a background image. Fields are provided to customize the label text an
Page: ButtonGroup
Extends: LayoutGroup Description The ButtonGroup node class manages the layout, visual attributes, and focus management of a vertical list of Button nodes. When the ButtonGroup node has focus, it sets the key focus on a single one of its child Button nod

C

Page: ChannelStore
Available since firmware version 7.2 Extends: Node Description The ChannelStore node class provides an interface to the Roku Channel Store. It provides functionality equivalent to the roChannelStore component. In general, the ChannelStore node class allow
Page: CheckList
Table of Contents Extends: LabelList Also See Related Page: List and Grids Markup - CheckList https://sdkdocs.roku.com/display/sdkdoc/Lists+and+Grids+Markup Description The CheckList node class is a simple list class that displays a list of items, some of
Page: children
Description The <children> element contains the Scene Graph node XML markup elements. The <children> element allows XML schema validation of your Scene Graph XML components using XSD by wrapping them in a container element (XSD requires that the order of
Page: Closed Caption Support
Table of Contents The Roku platform supports the following closed caption formats: SMPTE-TT EIA-608 WebVTT SMPTE-TT uses TTML formatted data either in an external file or embedded into the video stream to carry the caption text, timing, and format informa
Page: ColorFieldInterpolator
Table of Contents Extends: Node Description The ColorFieldInterpolator node class specifies a keyframe animation sequence to be applied to the color field of a node (such as the color field of a Label node). All field interpolators include a set of key/k
Page: Complete Tutorial Application
Table of Contents Finally, let's put together all the examples we've seen previously in the tutorial, to create a typical Roku Scene Graph application. As with every application, this application has a purpose. And the purpose of this application is to pr
Page: component
Description The <component> element defines all aspects of the component defined in a Scene Graph XML component file. Every Scene Graph XML component file must have exactly one <component> element that contains all other XML elements in the file, which ma
Page: Component Architecture
Table of Contents The BrightScript Component architecture and library are separate from BrightScript, but BrightScript requires them. All APIs exposed to BrightScript are exposed as BrightScript components. In other words, if a platform wants to expose AP
Page: Component Functions
The following are the special functions that can be included in a Scene Graph XML component <script> element.
Page: Component Initialization Order
Instances of components defined in an XML file follow a well-defined initialization order when they are created. The <children> element nodes defined in XML markup are created, and their fields are set to their initial values, either to a default value, o
Page: ComponentLibrary
Extends: Node Description The ComponentLibrary node class downloads a library of custom Scene Graph components to be used in an application. The ComponentLibrary node should be used in a Scene node, such as Scene or OverhangPanelSetScene. One way to ensur
Page: Components
Page: Conditional Compilation
Available since firmware version 7.6 Table of Contents Conditional Compilation allows boolean constants to determine whether a section of code should be compiled. Conditional compilation values are defined by the #const identifier and has the form: #c
Page: Content Meta-Data
Table of Contents Content Meta-Data describes a viewable title that will be shown to the user. Content may be any supported type of video and the meta-data is used by the UI to format and display the title to the user. Some attributes (e.g. ContentType) a
Page: Content Protection
Table of Contents DRM Although AES-128 Encryption is also supported for HLS, Roku recommends using Adobe DRM because there is no DRM when using AES-128 Encryption. PlayReady Adobe DRM Verimatrix AES-128 HLS Y Y Y Smooth Y DASH Y Supporte
Page: ContentNode
Extends: Node Description The ContentNode node class allows you to specify the data used to configure a node or component. Many nodes and components require a ContentNode node as the specification of their content field in order to be properly configured
Page: Control Nodes
The following node classes allow you to control the program flow in your Scene Graph application.
Page: Control Nodes Markup
Table of Contents There are some important node classes that are the key to reading your content catalog data from your server into your Roku Scene Graph application. Once you understand how to use these node classes, you'll be able to synchronize your se
Page: Controlling Screen Layout
Screen element layout is accomplished in several different ways in Scene Graph applications: setting the translation fields of nodes or groups of nodes controlling the z-order of the renderable nodes in Scene Graph trees to place nodes over or under each
Page: Controlling Screen Program Flow
Table of Contents Scene Graph applications can control the flow of screen elements in the following ways: by responding to user remote control key press events by responding to changes in data, including data that configures the screen elements by changin
Page: Creating Custom Components
A Scene Graph application consists of one or more custom Scene Graph components defined in XML files. These component XML files define the appearance and behavior of the component as needed for the application design. Defining these custom components cons
Page: Creating Dialogs
The Scene Graph API contains several dialog box node classes, to allow you to bring a dialog box to the top of the display screen, that can inform the user of certain events occurring in the application, and ask for confirmation of user input choices. Dia
Page: Creating Lists and Grids
Table of Contents Lists and grids are important screen elements for the application user interface. Lists and grids allow the user to choose from a selection of items that, for example, can include the title of movie to rent or purchase, and a graphic ima
Page: Creating Sliding Panels
Table of Contents Sliding panels are a new user interface element in the Scene Graph API. Sliding panels allow the creation of sets of other elements, such as lists or grids, that are grouped into panels that can be moved left and right on and off the dis

D

Page: Debugging Scene Graph Applications
Table of Contents Special Scene Graph Debugging Commands Available since firmware version 7.2 You can use special debugging commands to debug Scene Graph applications. These commands can be invoked in the debug server from telnet port 8080 port. These com
Page: Debugging Your Application
Testing Roku Channels involves using a debug console and access to a variety of ports. The debug console provides a window into the runtime environment and provides features such as crash logs, stack-traces and much more. Table of Contents Accessing the d
Page: Deep Linking
deeplink.png Deep linking describes the process of launching channels and media content through an ad, a search result, or the My Feed feature. In order to support the global search interface and advertising initiatives, all Roku channels with indexed con
Page: Defining Scene Graph Components
A Roku Scene Graph application consists of one or more Scene Graph components. These Scene Graph components are defined in XML files, which consist of a required <component> XML element, that contains the other possible XML elements to fully define the co
Page: Design and User Experience Guidelines
These guidelines outline best practices for partner channel design on the Roku platform from the user experience perspective. Note: These practices are guidelines, not requirements. While channels that do not implement all best practices may still be depl
Page: Developer Guide
Table of Contents
Page: Developer Settings
Developer Settings contains a host of essential tools for Roku channel development: Additional references on this page: Installing or "side-loading" channels Utilities to rekey a Roku device and take screenshots Packaging channels for publication to the C
Page: Developer Tools
Pages under this section:
Page: Developing Scene Graph Applications
Table of Contents Channel packages should include all the XML components they define in a top level directory named components (the top level directory in the channel application package contains the manifest file, the source directory, and so forth). Whe
Page: Development Environment Overview
Table of Contents Architectural Overview architecturecrppd.png Architecture Block Diagram The diagram above provides a high-level overview of the main system components for the Roku Streaming Player platform. Developer applications are written using the B
Page: Dialog
Extends: Group Description The Dialog node class defines a modal pop-up dialog used to present the user with information requiring their immediate attention. Setting the dialog field of the current Scene node to a Dialog node causes the dialog to be disp
Page: Dialog Nodes
This section describes the various Scene Graph dialog node classes available to Roku developers.
Page: Dialogs Markup
Table of Contents Showing a modal dialog in a Roku Scene Graph Scene node is simple: Create a dialog node object Configure the dialog node object Set the Scene node dialog field to the dialog node object The dialog is dismissed if the user presses the Bac
Page: Downloading Server Content
Table of Contents Various types of content material can be downloaded from your server to a Scene Graph application. Many of the renderable nodes include a uri field that allows you specify the URI of a graphical image file or other content on your server

E

Page: Event Loops
Table of Contents Events An event is a thing like an on-screen button press, a remote button press, a video that has finished playing back, etc. When an event occurs, a "message" describing the event is created. In this documentation, we often refer to m
Page: Events
The following are links to all pages in this section:
Page: Events and Observers Markup
Table of Contents As described in Scene Graph XML Reference, there are standard event loops and functions included in the Scene Graph API for triggering actions when certain events occur. The following are a few examples that illustrate how to perform act
Page: Expressions, Variables, and Types
Table of Contents Identifiers Identifiers (names of variables, functions, labels, or object member functions or interfaces (appear after a ".")) have the following rules. must start with an alphabetic character (a – z) or the symbol "_" (underscore) may c
Page: External Control API
Table of Contents The External Control Protocol (ECP) enables a Roku device to be controlled over a local area network by providing a number of external control services. The Roku devices offering these external control services are discoverable using SSD

F

Page: Fast Video Start
Table of Contents Available since firmware version 7.2 Fast Video Start is a user interface design technique for VOD channels that reduces the amount of time apparent to the user that the video stream buffers before actual playback begins. All digital vid
Page: File System
Table of Contents Application storage Several means are available for an application to store data: Storage Advantages Disadvantages file in tmp: Files are read/write Contents are not retained when application exits file in pkg: Accesses any files include
Page: FloatFieldInterpolator
Table of Contents Extends: Node Description The FloatFieldInterpolator node class specifies a keyframe animation sequence to be applied to a floating point field of a node (such as, an opacity, width or height value.) All field interpolators include a se
Page: Font
Extends: Node Description The Font node class specifies the font to be used by a Label node, or any other nodes that render text. Nodes that use fonts include a field that stores a Font node. The font to use is specified by creating a Font node, and sett

G

Page: Global Math Functions
Table of Contents The following math functions are part of global. Trig functions use or return radians, not degrees. Abs(x as Float) as Float Returns the absolute value of the argument. Atn(x as Float) as Float Returns the arctangent (in radians) of the
Page: Global String Functions
Table of Contents UCase(s as String) as String Converts the string to all upper case. print UCase("Hello") ' prints: HELLO LCase(s as String) as String Converts the string to all lower case. print LCase("Hello") ' prints: hello Asc(letter as String) as
Page: Global Utility Functions
Table of Contents BrightScript has a set of standard, module scope, functions. These functions are stored in the global object. If the compiler sees a reference to one of the global functions, it directs the runtime to call the appropriate global object m
Page: GridPanel
Extends: Panel Description The GridPanel node class allows you to easily create a Panel that adheres to the Roku layout and behavior for panels that contain a PosterGrid or MarkupGrid node. The GridPanel node class provides the following functionality: R
Page: Group
Extends: Node Description Group is the base class of all renderable nodes. Group also provides fields that control the transformation, visibility and opacity of themselves and all of their children. Each Group defines a local coordinate system relative t

H

Page: Handling Application Events
Table of Contents Observer Callback Models Firmware v7.5 introduces a fundamental change in the observer callback model changing from a queued or deferred model to a more intuitive and expected recursive callback model. Queued Callback Model In firmware

I

Page: ifAppInfo
Implemented By roAppInfo Supported Methods Description of Methods GetID() As String Returns the app's channel ID, e.g. "12345" or "dev". IsDev() As Boolean Returns true if the application is side-loaded, i.e. the channel ID is "dev". GetVersion() As Strin
Page: ifAppManager
Implemented By roAppManager Supported Methods Description of Methods SetTheme(attributeArray as Object) as Void Set a group of theme attributes for the application. The attributeArray is an roAssociativeArray of attribute/value pairs. The program may crea
Page: ifArray
ifArray supports the array operator[] (See Array Operator) Implemented By roArray roByteArray roList roXMLList Supported Methods Description of Methods Peek() As Dynamic Returns the last (highest index) array entry without removing it. If the array is em
Page: ifArrayGet
The ifArrayGet interface supports the array indexing operator [ ] (See Array Operator.) Implemented By roArray roByteArray roList roXMLList Supported Methods Description of Methods GetEntry(index As Integer) As Dynamic Returns an Array entry of a given in
Page: ifArrayJoin
Implemented By roArray Supported Methods Description of Methods Join(separator as String) as String Creates a string by joining all array elements together separated by the specified separator. All elements must be of type string, otherwise an empty str
Page: ifArraySet
The ifArraySet interface supports the array indexing operator [ ]. (See ArrayOperator.) Implemented By roArray roByteArray roList roXMLList Supported Methods Description of Methods SetEntry(index As Integer, tvalue As Dynamic) As Void Sets an entry at a g
Page: ifArraySort
Implemented By roArray Supported Methods Description of Methods Sort(flags as String = "") as Void Performs a stable sort. Items are arbitrarily grouped by comparable type of number or string, and are sorted within the group with a logical comparison. I
Page: ifAssociativeArray
Implemented By roAssociativeArray roSGNode Supported Methods Description of Methods AddReplace(key as String, value as Dynamic) as Void Add a new entry to the array associating the supplied value with the supplied key string. Only one value may be associa
Page: ifAudioGuide
Available since firmware version 7.5 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 R
Page: ifAudioMetadata
Implemented By roAudioMetadata Supported Methods Description of Methods SetUrl(url as String) as Void Sets the URL to the audio file. Only file URLs are initially supported. GetTags() as Object Returns an associative array that contains a simple set of ta
Page: ifAudioPlayer
Implemented By roAudioPlayer Supported Methods Descriptions of Methods SetContentList(contentList as Object) as Void Set the content list to be played by the Audio Player. The caller passes an Array of AssociativeArrays (Content Meta-Data objects) represe
Page: ifAudioResource
Implemented By roAudioResource Supported Methods Description of Methods Trigger(volume as Integer) as Void This method triggers the start of the audio resource sound playback. The volume is a number between 0 and 100 (percentage of full volume). 50 shou
Page: ifBoolean
Interface equivalent for intrinsic type Boolean Implemented By roBoolean Supported Methods Description of Methods GetBoolean() As Boolean SetBoolean(value As Boolean) As Void
Page: ifByteArray
Implemented By roByteArray Supported Methods Description of Methods WriteFile(path as String) As Boolean Writes the bytes contained in the Byte Array to the specified file. Returns true if successful. WriteFile(path as String, start_index as Integer, leng
Page: ifCaptionRenderer
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 thi
Page: ifChannelStore
The query methods (GetCatalog, GetStoreCatalog, GetPurchases and GetUpgrade) return information about products in the Channel Store. These are asynchronous methods. The method call returns immediately, and the requested information is returned later in an
Page: ifCodeRegistrationScreen
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 thi
Page: ifCompositor
Implemented By roCompositor Supported Methods Description of Methods SetDrawTo(destBitmap as Object, rgbaBackground as Integer) as Void Set the destBitmap (roBitmap or roScreen) and the background color. Draw() as Void Draw any dirty sprites (that is, wha
Page: ifDateTime
This interface is known as ifRoDateTime in some firmware versions. Implemented By roDateTime Supported Methods Description of Methods Mark() as Void Set the date/time value to the current UTC date and time. Note: roDateTime objects are automatically Marke
Page: ifDeviceInfo
Implemented By roDeviceInfo Supported Methods Device Properties GetModel() as String Returns the model name for the Roku Streaming Player device running the script. This is a five character alphanumeric string; for example "3050X". Please see Roku Models
Page: ifDouble
Interface equivalent for intrinsic type Double Implemented By roDouble Supported Methods Description of Methods GetDouble() As Double SetDouble(value As Double) As Void
Page: ifDraw2D
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). Bitmap pixel values and color values are always represented as 32-bit integ
Page: ifEnum
The ifEnum supports enumeration over a set. It can be used with the FOR EACH statement (FOR EACH) Implemented By roArray roAssociativeArray roByteArray roList roMessagePort roXMLList Supported Methods Description of Methods Reset() as Void Resets the cur
Page: ifEVPCipher
Implemented By roEVPCipher Supported Methods Description of Methods Setup(encrypt as Boolean, format as String, key as String, iv as String, padding as Integer) as Integer Setup and initialize a new cipher context. The Setup function takes the following p
Page: ifEVPDigest
Implemented By roEVPDigest Supported Methods Description of Methods Setup(digestType as String) as Integer Initialize a new message digest context. digestType identifies one of the supported digest algorithms from openssl, listed at roEVPDigest Reinit()
Page: ifFileSystem
Implemented By roFileSystem Supported Methods The format of file and directory pathnames is described on the File System page. Description of Methods GetVolumeList() as Object Returns an roList containing Strings representing the available volumes. Volu
Page: ifFloat
Interface equivalent for intrinsic type Float Implemented By roFloat Supported Methods Description of Methods GetFloat() As Float SetFloat(value As Float) As Void
Page: ifFont
Implemented By roFont Supported Methods Description of Methods GetOneLineHeight() as Integer Returns the number of pixels from one line to the next when drawing with this font. GetOneLineWidth(text as String, MaxWidth as Integer) as Integer Returns the wi
Page: ifFontMetrics
This interface is deprecated. Developers should use roFont methods (GetOneLineHeight and GetOneLineWidth). Implemented By roFontMetrics (deprecated) Supported Methods Description of Methods Size(stringToDraw as String) as Object Returns an roAssociativeA
Page: ifFontRegistry
Implemented By roFontRegistry Supported Methods Description of Methods Register(path as String) as Boolean Register a font file (.ttf or .otf format). Each font file defines one or more font families (usually one). Path should be a valid path name (see F
Page: ifFunction
Interface equivalent for intrinsic type Function Implemented By roFunction Supported Methods Description of Methods GetSub() As Function SetSub(value As Function) As Void
Page: ifGetMessagePort
Implemented By roHdmiStatus roScreen roUrlTransfer roTextToSpeech Supported Methods Description of Methods GetMessagePort() as Object Returns the message port (if any) currently associated with the object.
Page: ifGridScreen
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 thi
Page: ifHdmiStatus
Implemented By roHdmiStatus Supported Methods Description of Methods IsConnected() as Boolean Returns true if the HDMI or MHL output is connected to an HDMI device. GetHdcpVersion() as String Returns the version number of the currently established HD
Page: ifHMAC
Implemented By roHMAC Supported Methods Description of Methods Setup(digestType as String, key as Object) as Integer Initialize new HMAC context. The digestType parameter selects one of the supported digest algorithms, as documented in roEVPDigest.
Page: ifHttpAgent
The ifHttpAgent methods modify the way that URLs are accessed. Implemented By roAppManager roAudioPlayer roGridScreen roImageCanvas roListScreen roParagraphScreen roPosterScreen roSGNode roSlideShow roSpringboardScreen roTextScreen roTextureManager roText
Page: ifImageCanvas
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 thi
Page: ifImageMetadata
Implemented By roImageMetadata Supported Methods Description of Methods SetUrl(url as String) as Void Set the URL to the image. Only file urls are supported. GetMetadata() as Object Returns an associative array with set of simple and common image metadata
Page: ifInput
Implemented By roInput Supported Methods Description of Methods GetMessagePort() as Object Returns the message port (if any) currently associated with the object. SetMessagePort(port as Object) as Void Set the roMessagePort to be used to receive events.
Page: ifInt
Interface equivalent for intrinsic type 'Integer'. Implemented By roInt Supported Methods Description of Methods GetInt() As Integer SetInt(value As Integer) As Void
Page: ifIntOps
Implemented By roInt Supported Methods Description of Methods ToStr() As String Returns the integer value formatted as a decimal string. Note: unlike the StrI function, no leading space is appended for non-negative numbers. Example: 5.ToStr() = "5", (-5)
Page: ifKeyboardScreen
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 thi
Page: ifList
IfList represents an ordered collection and is a built-in datatype in BrightScript. Implemented By roList roXMLList Supported Methods Description of Methods ResetIndex() As Boolean Reset current index or position in list to the head element. AddTail(tval
Page: ifListScreen
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 thi
Page: ifLocalization
Implemented By roLocalization Supported Methods Description of Methods GetPluralString(count as Integer, zeroString as String, oneString as String, pluralString as String) as String If count is 0, this returns zeroString. If count is 1, it returns oneStr
Page: ifLongInt
Interface equivalent for intrinsic type LongInteger. Implemented By roLongInteger Supported Methods Description of Methods GetLongInt() As LongInteger SetLongInt(value As LongInteger) As Void
Page: ifMessageDialog
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 thi
Page: ifMessagePort
Implemented By roMessagePort Supported Methods Description of Methods WaitMessage(timeout as Integer) as Dynamic Waits until an event object is available or timeout milliseconds have passed. If an event is available, it is returned. If the timeout expir
Page: ifMicrophone
Available since firmware version 7.6 Implemented By roMicrophone Supported Methods Description of Methods CanRecord() as Boolean Returns true if the platform and paired remote control can be requested to open the microphone. SetPrompt(prompt as String) as
Page: ifOneLineDialog
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 thi
Page: ifParagraphScreen
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 thi
Page: ifPath
Implemented By roPath Supported Methods Description of Methods Change(path as String) as Boolean Modify or change the current path via the relative or absolute path passed as a string Returns true if the resulting path is valid. IsValid() as Boolean Retur
Page: ifPinEntryDialog
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 thi
Page: ifPosterScreen
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 thi
Page: ifProgramGuide
Implemented By roProgramGuide Supported Methods Description of Methods GetChannels(id as Integer) as Object Returns an roArray of Strings. Each entry is the logical channel number of a channel on which the given program ID can be found. GetNowNextPrograms
Page: ifRegex
Please 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 man page http://perldoc.perl.org/perlre.html for complete documentation of the possib
Page: ifRegion
Implemented By roRegion Supported Methods Description of Methods GetBitmap() as Object Returns the roBitmap object of the bitmap this region refers to. A region is always a section of a bitmap. GetX() as Integer Returns the x coordinate of the region in i
Page: ifRegistry
Implemented By roRegistry Supported Methods Description of Methods GetSectionList() as Object Returns an roList with one entry for each registry section. Each element in the list is an roString containing the name of the section. The section itself can
Page: ifRegistrySection
Implemented By roRegistrySection Supported Methods In all ifRegistrySection methods, the key name is case-sensitive. Two keys which differ only in case may exist at the same time. Description of Methods Read(key as String) as String Reads and returns the
Page: ifRoSGScreen
Available since firmware version 7.0 The ifRoSGScreen interface allows creation and initialization of a Scene Graph scene. Implemented by roSGScreen Supported Methods Description of Methods CreateScene(sceneType as String) as Object Creates the Scene Gra
Page: ifRSA
Implemented By roRSA Supported Methods Description of Methods SetPrivateKey(keyFileName as String) as Integer Specify the private key to use for signing. The file name should specify a path, either in the package or a temp path. Returns 1 if the key is v
Page: ifScreen
Implemented By roScreen Supported Methods Description of Methods SwapBuffers() as Void This function first operates the same as a call to ifDraw2D.Finish(), completing all queued drawing operations on the back buffer (draw surface). If the screen is singl
Page: ifSearchHistory
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 thi
Page: ifSearchScreen
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 thi
Page: ifSetMessagePort
Implemented By roHdmiStatus roScreen roUrlTransfer roTextToSpeech Supported Methods Description of Methods SetMessagePort(port as Object) as Void Set the roMessagePort to be used for all events from the screen.
Page: ifSGNodeBoundingRect
Available since firmware version 7.0 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: Na
Page: ifSGNodeChildren
Available since firmware version 7.0 The ifSGNodeChildren interface allows querying and manipulation of nodes in a Scene Graph node tree, such as creating new nodes, placing them at certain positions in the tree, and removing them. Note that if you want t
Page: ifSGNodeDict
Available since firmware version 7.0 The ifSGNodeDict interface allows you access information about the nodes in a Scene Graph node tree, and find and return a node with a specific ID. Implemented By roSGNode Supported Methods Description of Methods find
Page: ifSGNodeField
Available since firmware version 7.0 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 subje
Page: ifSGNodeFocus
Available since firmware version 7.0 The ifSGNodeFocus interface is used to query and manipulate the remote control focus of the nodes in a Scene Graph node tree. Implemented by roSGNode Supported Methods Description of Methods setFocus(on as Boolean) as
Page: ifSGNodeHttpAgentAccess
Available since firmware version 7.2 The ifSGNodeHttpAgentAccess interface allows you to get an roHttpAgent object from a Scene Graph node, and set an roHttpAgent object for a node. Implemented By roSGNode Supported Methods Description of Methods getHttpA
Page: ifSlideShow
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 thi
Page: ifSocket
Implemented By roDataGramSocket roStreamSocket Supported Methods Description of Methods These are the basic binding and data transfer operations used on both roStreamSocket and roDataGramSocket. They are synchronous or asynchronous as determined by the so
Page: ifSocketAddress
Implemented By roSocketAddress Supported Methods Description of Methods SetAddress(address as String) as Boolean Sets the IPV4 address to the string. The string consists of a hostname, optionally followed by a colon and a decimal port number. The hostnam
Page: ifSocketAsync
Implemented By roDataGramSocket roStreamSocket Supported Methods Description of Methods The ifSocketAsync interface provides asynchronous socket features that utilize a full-featured select loop in the firmware that communicates to the application using a
Page: ifSocketCastOption
Implemented By roDataGramSocket Supported Methods Description of Methods Only the roDataGramSocket component supports the ifSocketCastOption multicast interface. The roStreamSocket component does not support multicast. GetBroadcast() as Boolean Return tru
Page: ifSocketConnection
Implemented by roStreamSocket Supported Methods Description of Methods Each of these operations except listen() is either synchronous or asynchronous as determined by the socket's blocking behavior. If there is a valid assigned roMessagePort, the blocking
Page: ifSocketConnectionOption
Implemented By roStreamSocket Supported Methods Description of Methods GetKeepAlive() as Boolean Return true if keep alive is set. SetKeepAlive(enable as Boolean) as Boolean Enable keep alive if enable is true, otherwise disable it. If keep alive set, occ
Page: ifSocketConnectionStatus
Implemented By roStreamSocket Supported Methods Description of Methods eConnAborted() as Boolean Return true if errno is ECONNABORTED. eConnRefused() as Boolean Return true if errno is ECONNREFUSED. eConnReset() as Boolean Return true if errno is ECONNRES
Page: ifSocketOption
Implemented By roDataGramSocket roStreamSocket Supported Methods Description of Methods GetTTL() as Integer Return the integer TTL (Time To Live) value for all IP packets on the socket. SetTTL(ttl as Integer) as Boolean Set the integer TTL (Time To Live)
Page: ifSocketStatus
Implemented By roDataGramSocket roStreamSocket Supported Methods Description of Methods eAgain() as Boolean Return true if errno is EAGAIN. eAlready() as Boolean Return true if errno is EALREADY. eBadAddr() as Boolean Return true if errno is EBADADDR. eDe
Page: ifSourceIdentity
Implemented By roChannelStoreEvent roUrlEvent Supported Methods Description of Methods GetSourceIdentity() as Integer Return the id currently associated with this source (event generating) or event object.
Page: ifSpringboardScreen
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 thi
Page: ifSprite
Implemented By roSprite Supported Methods Description of Methods MoveTo(x as Integer, y as Integer) as Void Move the sprite to coordinate x,y. MoveOffset(xOffset as Integer, yOffset as Integer) as Void Move the sprite to the current position plus the xOf
Page: ifString
Implemented by roChannelStoreEvent roPath roString roUrlEvent Supported Methods Description of Methods Interface equivalent for intrinsic type String. Also implemented by selected objects that can return a string representation. GetString() As String SetS
Page: ifStringOps
Implemented By roString Supported Methods Description of Methods ifStringOps provides various methods for manipulating string objects. Some of these duplicate functionality also available in the global string functions http://sdkdocs.roku.com/display/sdk
Page: ifSystemLog
Table of Contents Implemented By roSystemLog Supported Methods Description of Methods EnableType(logType as String) as Void Enables log message of type logType. When a log type is enabled, system log messages of that type are sent to the message port whic
Page: ifTextScreen
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 thi
Page: ifTextToSpeech
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 an
Page: ifTextureManager
Implemented By roTextureManager Supported Methods Description of Methods RequestTexture(req as Object) as Void req should be an roTextureRequest. Makes a request for an roBitmap with the attributes specified by the roTextureRequest. The roTextureManager
Page: ifTextureRequest
Implemented By roTextureRequest Supported Methods Description of Methods GetId() as Integer Returns a unique id for the request. GetState() as Integer Returns the state of the request. Value State 0 Requested 1 Downloading 2 Downloaded 3 Ready 4 Failed 5
Page: ifTimespan
Implemented By roTimespan Supported Methods Description of Methods Mark() as Void Sets the "Mark" point to the current time. The Mark point is also automatically set to the current time when an roTimespan object is created. TotalMilliseconds() as Integer
Page: ifToStr
Implemented By roBoolean roDouble roFloat roFunction roInt roInvalid roLongInteger roString Supported Methods Description of Methods ToStr() As String Returns the value as a string. This is available in firmware 7.0 or later.
Page: ifTuner
Implemented By roTuner Supported Methods Description of Methods GetChannelList() as Object Returns an roArray of channel descriptors, where each channel descriptor is a String. The contents of a channel descriptor string is to be considered opaque to appl
Page: ifUrlTransfer
Implemented By roUrlTransfer Supported Methods Note on asynchronous methods Each roUrlTransfer object can perform only one asynchronous operation at one time. After starting an asynchronous operation, you cannot perform any other data transfer operations
Page: ifVideoPlayer
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 thi
Page: ifVideoScreen
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 thi
Page: ifXMLElement
Because BrightScript has support for parsing XML built in to the language, it is often more convenient to use those features rather than ifXMLElement methods. See BrightScript XML Support for more details. Implemented By roXMLElement Supported Methods De
Page: ifXMLList
Implemented By roXMLList Supported Methods Description of Methods GetNamedElements(name As String) As Object Returns a new XMLList that contains all roXMLElements that matched the passed in name. This is the same as using the dot operator on an roXMLList.
Page: Index
Page: init()
Syntax sub init() ... end sub Synopsis Allows initialization and other scripted control of a Scene Graph XML component. Description If the <script> element contains the definition of a function named init() that has no parameters, that function will be
Page: Integrating the Roku Advertising Framework
Table of Contents Getting Started The RAF library is intended to allow developers to focus their effort on the core design of their applications, and provide them with the ability to quickly and easily integrate video advertising features with minimal imp
Page: interface
Description The <interface> element defines a set of fields to be exposed by a component, to allow instances of the component to be manipulated externally to the component, while hiding details of the component implementation, in much the same way that C+
Page: Interfaces

J

K

Page: Keyboard
Extends: Group Description The Keyboard node class allows a user to enter a string of alphanumeric characters. The string entered is displayed in a TextEditBox node that is part of the Keyboard node. The Keyboard node must have the key focus in order to
Page: KeyboardDialog
Extends: Dialog Description The KeyboardDialog node class is a special type of Dialog node that prompts the user to enter an alphanumeric text string. The KeyboardDialog node class includes an interrnal Keyboard node to allow the user to enter the string

L

Page: Label
Table of Contents Extends: Group Description The Label node class is used to display a string of text. The Label node class supports many options including: Specifying the color of the font Specifying the font to be used by specifying a TrueType/OpenType
Page: LabelList
Table of Contents Extends: ArrayGrid Also See Related Page: List and Grids Markup - LabelList https://sdkdocs.roku.com/display/sdkdoc/Lists+and+Grids+Markup Description The LabelList node class is a simple list class that can be used to display a list of
Page: Layout/Group Nodes
The following node classes allow you group and arrange sets of renderable node classes.
Page: Layout/Groups Markup
Table of Contents There are a few Roku Scene Graph node classes that group screen sub-elements together to allow them to be used as a group: ButtonGroup LayoutGroup ButtonGroup Markup Example Application: ButtonGroupExample.zip Node Class Reference: Butto
Page: LayoutGroup
Extends: Group Description The LayoutGroup node class manages the position of its child nodes by arranging them in a row from left to right (horizontal layout), or in a column from top to bottom (vertical layout). Fields provide options to control the sp
Page: List and Grid Nodes
The following are the list and grid node classes included in the Scene Graph API.
Page: ListPanel
Extends: Panel Description The ListPanel node class allows you to easily create a Panel that adheres to the Roku layout and behavior for panels that contain a LabelList or MarkupList node. The ListPanel provides the following functionality: Resolution ap
Page: Lists and Grids Markup
Table of Contents The lists and grids node classes are the foundation of a Roku Scene Graph user interface. You want to carefully select and configure a list or grid node class, and integrate it into your user interface design. You have the following list
Page: Loading and Running Your Application
Table of Contents Enabling Development Mode on your box Before you are able to load a development application to your box, you must enable development mode on your Roku Streaming device. Development mode can be enabled only on a linked device. Your device

M

Page: MarkupGrid
Table of Contents Extends: ArrayGrid Also See Related Page: List and Grids Markup - MarkupGrid https://sdkdocs.roku.com/display/sdkdoc/Lists+and+Grids+Markup Description The MarkupGrid node class is a is a generic grid class that can be used to display
Page: MarkupList
Table of Contents Extends: ArrayGrid Also See Related Page: List and Grids Markup - MarkupList https://sdkdocs.roku.com/display/sdkdoc/Lists+and+Grids+Markup Description The MarkupList node class is a generic list class that can be used to display a lis
Page: MaskGroup
Extends: Group Description The MaskGroup node class allows an alpha mask bitmap to be applied to the rendering of its children. This allows effects such as having a list fade out at the bottom to be easily created. MaskGroup nodes do not work on all Roku
Page: Media Playback Markup
Table of Contents Finally, let's see how to play streaming media files in a Roku Scene Graph application. We just have to add one of the following media playback nodes to the application (or maybe both): Audio Video These two media playback nodes both hav
Page: Media Playback Nodes
The following are the node classes that provide media playback.
Page: MiniKeyboard
Extends: Group Description The MiniKeyboard node class allows a user to enter a string of letters and numerals. The string entered is displayed in a TextEditBox node that is part of the MiniKeyboard node. The MiniKeyboard node is intended for users to en

N

Page: Node
Description The abstract base class of all SceneGraph nodes and the equivalent of the BrightScript roSGNode component. See roSGNode for supported interfaces. Node class objects do not draw anything and are skipped in the render traversal of the Scene Gra
Page: Node Field Observers
All node and component fields can have observers attached to them. These observers continuously monitor the state of the specified field, and if the field changes, a specified callback function is triggered to perform an action in response to the field st

O

Page: onKeyEvent()
Syntax function onKeyEvent(key as String, press as Boolean) as Boolean ... end function Synopsis The onKeyEvent() function receives remote control key events from the firmware, and allows you to write event handlers for a node or component in response t
Page: Other Inherited Properties
In addition to inheriting a transform matrix from its parent, each node in the scene graph also inherits visibility and opacity information. (Opacity is the opposite of transparency: 75% opacity is the same as 25% transparency.) The visible field stores a
Page: Overhang
Extends: Group http://sdkdocs.roku.com/display/sdkdoc/Group Description The Overhang node provides a information bar that is displayed at the top of a screen in many Roku channels. The regions occupied by the overhang can be filled with either a solid co
Page: OverhangPanelSetScene
Extends: Scene Description The OverhangPanelSetScene node class provides a convenient way to create a Scene node that has set with default Overhang and PanelSet nodes. The layout of the Overhang and PanelSet use the default sizes for SDK2 channels. The no

P

Page: Packaging Roku Channels
Publishing on the Roku Channel Store requires several core items — such as source code, images, and fonts — to be "packaged." This enables developers to publish channels while keeping all intellectual property safely encrypted. The process of “packaging a
Page: Panel
Extends: Group Description The Panel node is used to create sliding panels for channel UI, similar to those in the Roku OS home screen, Fields Field Type Default Use panelSize string narrow Write-Only Specifies one of the default panel sizes. Setting th
Page: PanelSet
Extends: Group Description The PanelSet node provides the panel sliding behavior seen in the Roku home screen. The PanelSet node manages the position of a set of child Panel nodes, and implements the left and right panel sliding behavior. Once a Panel no
Page: ParallelAnimation
Extends: AnimationBase Description The ParallelAnimation node class allows you to specify that a set of animations should occur simultaneously. The children of a ParallelAnimation node specify the set of animations to be executed. Note that the use of th
Page: PinDialog
Extends: Dialog Description The PinDialog node class is a special type of Dialog node that prompts the user to enter a numeric string. The PinDialog node class includes an internal PinPad node to allow the user to input a numeric value, such as a PIN. Th
Page: PinPad
Extends: Group Description The PinPad node is a simple widget that allows you to enter a fixed length numeric string. The string that is entered is displayed in a set of boxes above the PinPad node keyboard, with each box displaying a single numeral of t
Page: Playing Videos
Table of Contents Playing any type of video requires just one Scene Graph node class: Video. To play a video, you must first prepare the files to be served to the Roku Player: the video files must have been encoded in one of the formats supported by a Rok
Page: Poster
Table of Contents Extends: Group Description The Poster node class draws an image with the top/left corner located at the origin of the node local coordinate system. Because the Poster node class extends the Group node class, a Poster node can have child
Page: PosterGrid
Table of Contents Extends: ArrayGrid Also See Related Page: List and Grids Markup - PosterGrid https://sdkdocs.roku.com/display/sdkdoc/Lists+and+Grids+Markup Description The PosterGrid node is a simple grid class that can be used to display two-dimension
Page: Pre-certification Check List
Table of Contents In order to assure the overall quality of the Roku Platform, all public channels in the Roku Channel Store must first be reviewed for quality, design, and performance criteria before being published. This certification process also ens
Page: Private Channels
The Roku platform supports both public and private channels. Public channels are published in the Roku Channel Store and discoverable from the Search feature on the Roku home page. Private channels, however, are used for QA and beta testing purposes and
Page: Program Statements
Table of Contents DIM name (dim1, dim2, …, dimK) DIM ("dimension") is a statement that provides a short cut to creating roArray objects. It sets variable name to type "roArray", and creates Arrays of Arrays as needed for multi-dimensional arrays. The dime
Page: ProgressDialog
Extends: Dialog Description The ProgressDialog node class is a special type of Dialog node that includes the dialog title region and a spinning icon as the body of the dialog. The ProgressDialog node class uses a BusySpinner node to display the spinning
Page: Publishing Roku Channels
Once a Roku channel has been designed, developed and thoroughly tested - the final step is publishing on the Roku platform. The following guide goes over the channel distribution models available on the Roku platform and how to: Table of Contents Public c

Q

R

Page: RadioButtonList
Table of Contents Extends: LabelList Also See Related Page: List and Grids Markup - RadioButtonList https://sdkdocs.roku.com/display/sdkdoc/Lists+and+Grids+Markup Description The RadioButtonList node class is a simple list class that can be used to displa
Page: Rectangle
Table of Contents Extends: Group Description The Rectangle node class draws a solid color rectangle with the top/left corner of the rectangle drawn at the origin of the node local coordinate system. Because the Rectangle node class extends the Group node
Page: Remote Control Events
The Scene Graph architecture supports a notion of remote control key focus. At any time, any node in the Scene Graph node tree can be assigned the remote control key focus. The node with key focus is unique, so when focus is assigned to a node, the curren
Page: Renderable Node Markup
Table of Contents How to Create and Display Node Classes on the Screen As described in Scene Graph XML Guide, there are three basic renderable node classes (node classes that draw on the display screen): Rectangle Label Poster Rectangle Markup Example App
Page: Renderable Nodes
This section contains details of the fundamental Scene Graph node classes that can render to the screen. The rendered screen elements of all Scene Graph API node classes are derived from these fundamental renderable node classes.
Page: Reserved Words
Like other programming languages, BrightScript has a number of reserved words that have specific meanings to the Roku platform. These words cannot be used for other purposes in your channels. These words include: And Box CreateObject Dim Each Else ElseI
Page: roAppInfo
roAppInfo returns information about the application. Supported Interfaces ifAppInfo Description roAppInfo retrieves the developer ID, which can be useful during development. It also retrieves manifest values, such as the title and version number, avoiding
Page: roAppManager
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 c
Page: roArray
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. Supported Interfaces ifArray ifArrayGet ifArraySet ifEnum ifArrayJoin ifArraySort Description An roArray is cr
Page: roAssociativeArray
An associative array (also known as a map, dictionary or hash table) allows objects to be associated with string keys. Associative arrays are built in to the language. They can be accessed implicitly by using the dot or bracket operators, or by calling
Page: roAudioGuide
Available since firmware version 7.5 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 runni
Page: roAudioMetadata
The roAudioMetadata component provides developers access to audio file metadata included in many audio files. This should enable some audiofiles to deliver the information needed to fill out an roSpringboard screen without passing the info in a separate x
Page: roAudioPlayer
The Audio Player object provides the ability to setup the playing of a series of audio streams. The object accepts an array of content meta-data objects, describing the audio and providing url's for accessing each stream. The component understands the fol
Page: roAudioPlayerEvent
The roAudioPlayer sends the roAudioPlayerEvent with the following predicates that indicate its valid event types: isListItemSelected() as Boolean A stream has been selected to start playing. GetIndex() as Integer Returns index of audio stream. isStatusMes
Page: roAudioResource
The roAudioResouce allows .wav files to be cached to memory and quickly played at any time. Supported Interfaces ifAudioResource Description roAudioResource is intended to support short audio clips which need to be played with very little latency. The sy
Page: roBitmap
The roBitmap component contains image data and provides an interface (ifDraw2D) for drawing. Bitmaps can be used for a variety of purposes, such as for sprites, compositing, or as double buffers. Supported Interfaces ifDraw2D Description roBitmaps store f
Page: roBoolean
Object equivalent for intrinsic type Boolean. Supported Interfaces ifBoolean ifToStr Description This is useful in the following situations: When an object is needed, instead of an intrinsic value. For example, "roList" maintains a list of objects. If a
Page: roByteArray
The byte array component is used to contain and manipulate an arbitrary array of bytes. Supported Interfaces ifByteArray ifArray ifArrayGet ifArraySet ifEnum Description This object contains functions to convert strings to or from a byte array, as well as
Page: roCaptionRenderer
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
Page: roCaptionRendererEvent
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
Page: roChannelStore
Supported Interfaces ifChannelStore ifSetMessagePort http://sdkdocs.roku.com/display/sdkdoc/ifSetMessagePort ifGetMessagePort http://sdkdocs.roku.com/display/sdkdoc/ifGetMessagePort Supported Events roChannelStoreEvent Description The roChannelStore compo
Page: roChannelStoreEvent
The roChannelStore sends an roChannelStoreEvent in response to a call to any of several Get* methods in ifChannelStore. The following predicates indicate its valid event types: isRequestSucceeded() as Boolean The previous Get request has completed success
Page: roCodeRegistrationScreen
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
Page: roCodeRegistrationScreenEvent
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
Page: roCompositor
The roCompositor allows the composition and animation of multiple roBitmaps and roRegions. Supported Interfaces ifCompositor Description The roCompositor can create and manage roSprites in a z-ordered list. The sprites can be of arbitrary size and can be
Page: roDataGramSocket
The roDataGramSocket component enables Brightscript apps to send and receive UDP packets. The interface is modeled on and works much like standard Berkeley sockets. Supported Interfaces ifSocket ifSocketAsync ifSocketStatus ifSocketOption ifSocketCastOpti
Page: roDateTime
The roDateTime provides an interface to obtain the current date/time for the player and manipulate date/times. Supported Interfaces ifDateTime Note: some firmware versions may implement ifDateTime as ifRoDateTime. Description This component provides sever
Page: roDeviceInfo
The Device Info provides an interface to obtain attributes about the device. Supported Interfaces ifDeviceInfo ifSetMessagePort ifGetMessagePort Supported Events roDeviceInfoEvent Description These attributes are not changeable by the script, but may be q
Page: roDeviceInfoEvent
The roDeviceInfo object sends the roDeviceInfoEvent with the following predicates that indicate its valid event types: isStatusMessage() as Boolean Device status has changed. GetInfo() as Object Returns an roAssociativeArray containing the following membe
Page: roDouble
Object equivalent for intrinsic type 'Double'. Supported Interfaces ifDouble ifToStr Description roDouble is a legacy object name, corresponding to the intrinsic Double object. Applications should use Double literal values and/or Double-typed variables d
Page: roEVPCipher
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". Supported Interfaces ifEVPCipher Descripti
Page: roEVPDigest
The EVP Digest component provides an interface to the OpenSSL EVP library of message digest algorithms. The EVP library provides a high-level interface to cryptographic hash functions. Supported Interfaces ifEVPDigest Description roEVPDigest processes an
Page: roFileSystem
The roFilesystem component implements common filesystem inspection and modificationroutines. Supported Interfaces ifFileSystem ifSetMessagePort ifGetMessagePort Supported Events roFileSystemEvent Description All paths are matched case-insensitively, regar
Page: roFileSystemEvent
The roFileSystem component sends the roFileSystemEvent with the following predicates that indicate its valid event types: isStorageDeviceAdded() as Boolean A storage device was inserted in the USB port. GetMessage() as String Returns volume name of added
Page: roFloat
Object equivalent for intrinsic type 'Float'. Supported Interfaces ifFloat ifToStr Description This is useful in the following situations: If any object exposes the ifFloat interface, that object can be used in any expression that expects an intrinsic val
Page: roFont
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. Supported Interfaces ifFont Description roFont is used in conjunction with roFontRegistry to create and ma
Page: roFontMetrics (deprecated)
This class is deprecated. Developers should use roFont methods (GetOneLineHeight and GetOneLineWidth). The roFontMetrics object allows you to get display size information for a specific font returned by the roFontRegistry.Get() method. Supported Interf
Page: roFontRegistry
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. Supported Interfaces ifFontRegistry Description This object is created with no parame
Page: roFunction
Object equivalent for intrinsic type Function. Supported Interfaces ifFunction ifToStr Description
Page: roGridScreen
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
Page: roGridScreenEvent
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
Page: roHdmiHotPlugEvent
The roHdmiStatus sends the roHdmiHotPlugEvent with the following predicates that indicate its valid event types: isHdmiHotPlug() as Boolean An HDMI hot plug has occurred. GetMessage() as String Returns the string "HdmiHotPlug". GetIndex() as Integer The
Page: roHdmiStatus
The HDMI status component provides an interface to the current HDMI operational status. Supported Interfaces ifHdmiStatus ifSetMessagePort Description This component allows you to query the status of the HDMI connection for the device through the ifHdmiSt
Page: roHdmiStatusEvent
The roHdmiStatus sends the roHdmiStatusEvent with the following predicates that indicate its valid event types: isHdmiStatus() as Boolean An HDMI status event has occurred. GetMessage() as String Returns the string "HdmiHotPlug". GetIndex() as Integer T
Page: roHMAC
The HMAC component provides an interface to the OpenSSL HMAC functions. These functions generate a Message Authentication Code (MAC) based on a key, in such a way that no one without the key could plausibly generate the MAC. HMAC uses a digest (hash) al
Page: roHttpAgent
Available since firmware version 7.2 Supported Interfaces ifHttpAgent Description All Scene Graph nodes can use the roHttpAgent component to support cookies, custom HTTP headers, and support secure HTTP file transfer protocols, such as passing certificate
Page: roImageCanvas
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
Page: roImageCanvasEvent
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
Page: roImageMetadata
The roImageMetadata component provides developers access to image file metadata included in many .jpg EXIF headers. Supported Interfaces ifImageMetadata Description roImageMetadata currently only works with local file Urls. This object is created without
Page: roInput
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. Supported Interfaces ifInput Supported Events roInputEvent Description See External Control Service
Page: roInputEvent
The roInput component sends the roInputEvent with the following predicates that indicate its valid event types: isInput() as Boolean An input event was received. GetInfo() as Object Returns an roAssociativeArray describing the input event.
Page: roInt
Object equivalent for intrinsic type Integer. Supported Interfaces ifInt ifIntOps ifToStr Description This is useful in the following situations: When an object is needed, instead of an intrinsic value. For example, "roList" maintains a list of objects. I
Page: roInvalid
Object equivalent for intrinsic type 'Invalid'. Supported Interfaces ifToStr Description
Page: roKeyboardScreen
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
Page: roKeyboardScreenEvent
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
Page: Roku Advertising Framework
Overview The Roku Advertising Framework is a universal video ad solution integrated directly into the core Roku SDK as a common library. RAF natively integrates baseline and advanced advertising capabilities, including: IAB1 VAST2 2.0/3.0 processing IAB V
Page: Roku Billing and In-Channel Purchasing
This guide will focus on setting up an in-channel product and how to use that product in a sample Roku channel. For developers new to billing, check out the overview pages on Payments https://developer.roku.com/develop/monetization/payments and Purchases
Page: Roku Channel Manifest
Table of Contents Root Level The root level of all Roku Channels must contain a manifest file (pkg:/manifest http://pkg/manifest) containing important attributes for the application. These attributes include but are not limited to the following: name and
Page: Roku OS Release Notes
Table of Contents SDK Update Release Notes: version 7.7 - 06/20/2017 Roku OS 7.7 focuses mainly on bug fixes and firmware optimizations to increase performance of Roku SceneGraph (RSG) channels. The firmware also introduces: a manifest entry for confirmin
Page: Roku Plugin for Eclipse IDE
Table of Contents Sample Screen eclipse_1.png Key Features Building channel applications requires several items to work together in unison: A Roku device Your channel application Hosted media content (video, audio, games, etc) To make this happen, develop
Home page: Roku SDK Documentation
Welcome to the Roku Software Development Kit (SDK) documentation. To get started learning how to develop a Roku Channel, we recommend starting with the Developer Guide http://sdkdocs.roku.com/display/sdkdoc/Developer+Guide. It contains an overview of the
Page: Roku Search
Table of Contents Roku Search provides another way to convert Roku users into customers of your VOD channel, besides the Roku Channel Store. Roku Search is located on the main menu of the Roku home-screen, and allows Roku users to search for a particular
Page: roList
Supported Interfaces ifList ifArray ifArrayGet ifArraySet ifEnum Description The list object implements the interfaces: ifList, ifArray, ifEnum and therefore can behave like an array that can dynamically add members. The array operator [ ] can be used to
Page: roListScreen
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
Page: roListScreenEvent
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
Page: roLocalization
The roLocalization object provides functions to assist in localization. This component is available beginning with firmware version 4.3. Supported Interfaces ifLocalization Description This object provides functions to assist in localization. It is crea
Page: roLongInteger
Object equivalent for intrinsic type LongInteger. This is available in firmware 7.0 or later. Supported Interfaces ifLongInt ifToStr Description roLongInteger is the object name corresponding to the intrinsic LongInteger object.
Page: roMessageDialog
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
Page: roMessageDialogEvent
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
Page: roMessagePort
A Message Port is the place messages (events) are sent. Supported Interfaces ifMessagePort Description When using BrightScript, you would not call these functions directly. Instead, use the "Wait" BrightScript statement. This object is created with no pa
Page: roMicrophone
Available since firmware version 7.6 Supported Interfaces ifMicrophone ifSetMessagePort ifGetMessagePort Supported Events roMicrophoneEvent Description The roMicrophone API allows channel applications to receive audio data from the user’s microphone-suppo
Page: roMicrophoneEvent
Available since firmware version 7.6 The roMicrophone component sends the roMicrophoneEvent with the following predicates that indicate its valid event types: IsRecordingInfo() as Boolean True when the microphone is open. GetInfo() as Object Returns an ro
Page: roOneLineDialog
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
Page: roOneLineDialogEvent
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
Page: roParagraphScreen
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
Page: roParagraphScreenEvent
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
Page: roPath
The roPath component provides developers an easy way to create valid file system paths. Supported Interfaces ifPath ifString Description The roPath component is a convenience class that implements ifString while providing additional validation and path in
Page: roPinEntryDialog
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
Page: roPinEntryDialogEvent
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
Page: roPosterScreen
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
Page: roPosterScreenEvent
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
Page: roProgramGuide
Represents Electronic Program Guide (EPG) information from the Roku TV tuner. Supported Interfaces ifProgramGuide Description A Roku TV incorporates a tuner giving access to broadcast TV and radio received over an antenna or cable. In addition to the vide
Page: roRegex
The roRegex component provides the powerful regular expression processing of the PCRE library to Brightscript strings. Supported Interfaces ifRegex Description Please see the PCRE documentation (http://www.pcre.org/ http://www.pcre.org/) for documentation
Page: roRegion
The roRegion component is used to represent a subsection of a bitmap. Supported Interfaces ifRegion Description The region is specified with an x,y, width, and height as well as a time field for use with animated sprites and a wrap field which causes the
Page: roRegistry
The Registry is an area of non-volatile storage where a small number of persistent settings can be stored. Supported Interfaces ifRegistry Description The Registry provides a means for an application to write and read small amounts of data such as setting
Page: roRegistrySection
A Registry Section enables the organization of settings within the registry. Different registry sections may have their own keys with the same name. In other words, key names are scoped within the registry section to which they belong. Supported Interfa
Page: roRSA
The RSA component provides an interface to the OpenSSL RSA library of signing algorithms. The RSA component is available in firmware version 4.7 and later. Supported Interfaces ifRSA Description This component can be used to sign/verify using RSA. Typica
Page: roScreen
The roScreen component provides a full screen drawing surface that can be stacked and that you can receive input events from. Supported Interfaces ifScreen ifDraw2D ifSetMessagePort ifGetMessagePort Supported Events roUniversalControlEvent Description You
Page: roSearchHistory
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
Page: roSearchScreen
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
Page: roSearchScreenEvent
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
Page: roSGNode
The roSGNode object is the BrightScript equivalent of SceneGraph XML file node creation. Supported Interfaces ifAssociativeArray ifSGNodeChildren ifSGNodeField ifSGNodeDict ifSGNodeFocus ifSGNodeBoundingRect ifSGNodeHttpAgentAccess Supported Events roSGNo
Page: roSGNodeEvent
An roSGNode object sends roSGNodeEvent messages to a specified port when changes occur in nodes, to allow a Scene Graph application to respond to events in the application using the following methods. getData() Retrieves the new field value at the time of
Page: roSGScreen
The roSGScreen object is a Scene Graph canvas that displays the contents of a Scene Graph Scene node tree. Supported Interfaces ifRoSGScreen Supported Events roSGScreenEvent https://sdkdocs.roku.com/display/sdkdoc/roSGScreenEvent Description The object is
Page: roSGScreenEvent
roSGScreenEvents are events sent to a scene graph roSGScreen by the framework. Other than when notifying the channel's main BrightScript thread that the screen is being closed, and thus that the channel should be terminated, channels do not generally han
Page: roSlideShow
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
Page: roSlideShowEvent
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
Page: roSocketAddress
The roSocketAddress is used by the roStreamSocket and roDataGramSocket components for TCP and UDP traffic respectively. Supported Interfaces ifSocketAddress Description This object is created without any arguments: CreateObject("roSocketAddress") Methods
Page: roSocketEvent
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. GetSocketID() as Integer Returns the ID o
Page: roSpringboardScreen
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
Page: roSpringboardScreenEvent
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
Page: roSprite
Supported Interfaces ifSprite 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
Page: roStreamSocket
The roStreamSocket component enables BrightScript apps to accept and connect to TCP streams as well as send and receive data with them. The interface is modeled on and works much like standard Berkeley sockets. Supported Interfaces ifSocketConnection ifSo
Page: roString
Object equivalent for intrinsic type 'String'. Supported Interfaces ifString ifStringOps ifToStr Description This is useful in the following situations: When an object is needed, instead of an intrinsic value. For example, "roList" maintains a list of obj
Page: roSystemLog
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. Table of Contents Supported Interfaces ifSystemLog Descr
Page: roSystemLogEvent
roSystemLogEvents are sent when enabled via roSystemLog. roSystemLogEvent has the following method: GetInfo() as Object Returns an AssociativeArray containing information describing the event. All event AAs have the following base keys: LogType String
Page: roTextScreen
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
Page: roTextScreenEvent
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
Page: roTextToSpeech
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 an
Page: roTextToSpeechEvent
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 an
Page: roTextureManager
The Texture Manager provides a set of API's for managing an roBitmap cache. Supported Interfaces ifTextureManager http://sdkdocs.roku.com/display/rokudocs/ifSetMessagePort ifSetMessagePort http://sdkdocs.roku.com/display/sdkdoc/ifSetMessagePort ifGetMessa
Page: roTextureRequest
An roTextureRequest is used to make requests to the roTextureManager. Supported Interfaces ifTextureRequest ifHttpAgent Description An roTextureRequest object is created using the CreateObject() method and passing it a URI string. CreateObject("roTextureR
Page: roTextureRequestEvent
The roTextureManager sends the roTextureRequestEvent after completing a request. GetId() as Integer Returns the unique id of the request. GetState() as Integer Returns the state of the request. See ifTextureRequest.GetState() for the list of states. Ge
Page: roTimespan
The Timespan object provides an interface to a simple timer for tracking the duration of activities. It's useful for tracking how an action has taken or if a specified time has elapsed from some starting event. Supported Interfaces ifTimespan Description
Page: roTuner
The roTuner object provides an interface with the broadcast/cable tuner in a Roku TV. Supported Interfaces ifTuner Supported Events roTunerEvent Description The roTuner object is created with no arguments: createObject("roTuner") Checking for a Tuner and
Page: roTunerEvent
During playback of a stream from the tuner using roVideoPlayer or roVideoScreen, the corresponding event (roVideoPlayerEvent, roVideoScreenEvent) is raised with the following predicates: isSignalQuality() as Boolean This event is fired periodically during
Page: roUniversalControlEvent
The roScreen object sends the roUniversalControlEvent with the following related methods. If an app constrains the events processed to just the roUniversalControlEvent, the app will work with any controller. The GetID(), GetChar(), GetKey(), and IsPress()
Page: roUrlEvent
The roUrlTransfer component sends the roUrlEvent with the following methods: GetInt() as Integer Returns the type of event. The following event types are currently defined: 1 transfer complete 2 transfer started. Headers are available for suitable protoco
Page: roUrlTransfer
A roUrlTransfer object transfers data to or from remote servers specified by URLs. It can perform mutual authentication with a web server. Supported Interfaces ifUrlTransfer ifHttpAgent ifSetMessagePort ifGetMessagePort Events Supported roUrlEvent Descrip
Page: roVideoPlayer
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
Page: roVideoPlayerEvent
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
Page: roVideoScreen
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
Page: roVideoScreenEvent
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
Page: RowList
Table of Contents Extends: ArrayGrid Also See Related Page: List and Grids Markup - RowList https://sdkdocs.roku.com/display/sdkdoc/Lists+and+Grids+Markup RowList Overview The RowList node class provides a vertically-scrollable list, containing rows of in
Page: roXMLElement
roXMLElement is used to contain an XML tree. Supported Interfaces ifXMLElement Description Example: <tag1>this is some text</tag1> Would parse such that: Name = "tag1" Attributes = invalid Body = roString with "this is some text" Example:
Page: roXMLList
Contains a list of roXML objects. Supported Interfaces ifList ifXMLList Description Normally roXMLList objects are not created via CreateObject(), but are returned from various ifXMLElement functions such as GetChildElements() and GetBody().
Page: Runtime Functions
Table of Contents CreateObject(classname as String, [optional parameters]) as Object Creates a BrightScript Component of class classname specified. Return invalid if the object creation fails. Some Objects have optional parameters in their constructor tha

S

Page: Scene
Extends: Group Description The Scene node class serves as the root of a Scene Graph node tree. Every roSGScreen object must have a Scene node, or a node that derives from the Scene node class as its root, including an XML markup component that extends th
Page: Scene Graph Animations
The Scene Graph API includes several nodes to animate screen elements. You can move screen elements around, make them disappear and reappear, and change color. Animating screen elements requires the use of one of the node classes derived from AnimationBas
Page: Scene Graph BrightScript
Table of Contents Two new BrightScript objects, roSGScreen and roSGNode, have been defined to allow our Scene Graph technology to be used in scripting. BrightScript Scene Graph Scene Creation Currently, a fairly strict ordering must be used in BrightScrip
Page: Scene Graph Compilation
Scene Graph components are compiled as the application is started. All Scene Graph component files (with the extension *.xml), and any related BrightScript files (with the extension *.brs), in the pkg:/components directory, are compiled. BrightScript file
Page: Scene Graph Components
There are two BrightScript components that have been added to the Roku SDK to enable scripting Scene Graph applications. These are roSGScreen and roSGNode.
Page: Scene Graph Coordinate Systems
Each renderable node has a local coordinate system associated with it with an origin at (0,0) with x increasing left-to-right and y increasing top-to-bottom. Each node can also have a 2D transformation specified that transform its local coordinate system
Page: Scene Graph Data Scoping
Table of Contents Scene Graph applications have data object scoping rules that are similar to traditional programming languages. You have: function scope: objects that can only be accessed within the function in which they were defined component scope: ob
Page: Scene Graph Events
This section describes the events used by all Scene Graph nodes.
Page: Scene Graph Interfaces
This section describes the BrightScript interfaces used by all Scene Graph nodes.
Page: Scene Graph Localization
Table of Contents You can supply localized versions of the strings and package graphical images used in a Scene Graph application package. The Scene Graph application can then automatically insert the localized versions of the strings and graphical images
Page: Scene Graph Threads
Table of Contents Scene Graph introduced multi-threaded operations to Roku application programming. There are three basic threads available to a Scene Graph application programmer. Main BrightScript Thread This is the thread that is launched for all Roku
Page: Scene Graph XML Overview
Table of Contents The term Scene Graph refers to a design algorithm and associated programming constructs that are widely used in computer graphics systems, such as video games. A Scene Graph uses a tree structure of image element nodes to define an inter
Page: SceneGraph API Reference
The following provides complete reference information on all node classes, component XML file elements, component functions, and BrightScript components and interfaces, available in the Roku Scene Graph API. Each node description includes a table of the f
Page: SceneGraph Core Concepts
Roku has introduced a new programming framework for developing applications. This new framework incorporates two new key concepts: Scene Graph rendering of the application screens XML configuration of the Scene Graph screens The goal of this new programmi
Page: SceneGraph Performance Guide
Table of Contents Overview As a Roku developer, building a unique and visually appealing channel is likely one the first things on your mind - and rightfully so. While this is certainly possible (and highly encouraged!) with SceneGraph, it's important to
Page: SceneGraph Samples
Table of Contents SceneGraph XML Tutorial This Scene Graph XML tutorial walks you through the development of a complete Roku Scene Graph application using the following steps: We start with simple examples of defining renderable nodes to appear at certain
Page: Screensavers
Table of Contents Overview A screensaver is a channel which is run automatically when the system has been idle for a period of time. The length of the period is settable by the user. If more than one screensaver is installed, one is selected by the user a
Page: script
Description The <script> element allows the definition of functions to initialize the component, and to respond to events (including key events) and field value changes. The BrightScript interfaces for the Scene Graph nodes used by BrightScript are the sa
Page: ScrollableText
Extends: Group Description The ScrollableText node class provides an interactive, vertically scrolling pane of text. This is typically used to display several paragraphs of text to the user that are too long to fit onto the display, such as a license agr
Page: ScrollingLabel
Extends: Group Description The ScrollingLabel node class provides an automatic way to make a string scroll horizontally if it does not fit within the specified width. If the string can be drawn within the specified maximum width it is just drawn. If it d
Page: Security Overview
Table of Contents System Security The Roku Streaming Player is designed to play a variety of streaming content directly from the Internet. We understand that this content is valuable to the content owners and must be protected from unauthorized access to
Page: SequentialAnimation
Extends: AnimationBase Description The SequentialAnimation node class allows you to specify that a set of animations should occur sequentially. The children of the SequentialAnimation node specify the set of animations to be executed. Note that the use o
Page: Sliding Panels Markup
Table of Contents Roku Scene Graph pioneers the use of sliding panels in a TV user interface, providing instant familiarity for smart phone users who "swipe" screens of information billions of times a day. The sliding panels node classes consist of three
Page: Sliding Panels Nodes
The following are the sliding panel node classes that allow you set up panels of content that slide on and off the display screen.
Page: SoundEffect
Available since firmware version 7.5 Extends: Node Description The SoundEffect node class is used to play audio sound effects that can be triggered from events that occur in the UI. Typically, these sound effects are short audio clips, but there is no inh
Page: Specifying Display Resolution
Table of Contents Scene Graph applications allow you to specify an intended display screen resolution for your user interface application. But Scene Graph applications also automatically scale the screen elements for screen displays and Roku players that
Page: Statement Summary
BrightScript supports the following familiar looking statement types: If / Then / Else If / Else / End If For / To / End For / Step / Exit For For Each / In / End For / Exit For While / End While / Exit While Function / End Function / As / Return Print Re
Page: Streaming Specifications

T

Page: TargetGroup
Available since firmware version 7.5 Extends: Group Description The TargetGroup node class associates a set of rectangular regions that children of the group will occupy. Like MarkupList, the TargetGroup has a content field containing the data for each it
Page: TargetList
Available since firmware version 7.5 Table of Contents Extends: TargetGroup https://sdkdocs.roku.com/display/sdkdoc/TargetGroup Also See Related Page: List and Grids Markup - TargetList https://sdkdocs.roku.com/display/sdkdoc/Lists+and+Grids+Markup Descri
Page: TargetSet
Available since firmware version 7.5 Table of Contents Extends: Node https://sdkdocs.roku.com/display/sdkdoc/node Also See Related Page: List and Grids Markup - TargetSet https://sdkdocs.roku.com/display/sdkdoc/Lists+and+Grids+Markup Description The Targe
Page: Task
Extends: Node Description The 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
Page: Text to Speech
Note: This feature 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.
Page: TextEditBox
Extends: Group Description The TextEditBox node class is intended to display a string of characters as they are typed. When focused, it displays a flashing cursor to indicate the text insertion position. TextEditBox nodes are automatically included in th
Page: The Roku Channel Developer Program
Table of Contents Roku offers content owners and publishers the ability to create their own channels on the Roku devices and to make those channels available to Roku users. The Roku SDK documentation contains the necessary information for creating a Roku
Page: Timer
Extends: Node Description The Timer node class generates an observable event after a specified amount of time has elapsed. Fields Field Type Default Use control string "none" Used to control the operation of the Timer node. Recognized values include: Val
Page: Top Development Tips for the Roku Platform
Make sure you capture all of the events sent by the roVideoScreen or you may miss important playability information. Know the remote control codes for special screens: Dump Core: Home 5x, Up, Rew 2x, FF 2x Debug Info on screen: Home 5x, Rew 3x, FF 2x Chan
Page: Transitioning to Scene Graph
The following summarizes how to transition from the older Roku API to Scene Graph applications. In general, Scene Graph handles events without requiring you to write custom event loops, and allows you easily add custom event handlers by observing virtuall
Page: Trick Mode Support
Table of Contents Two types of trick mode support (FF/REW/SEEK) are provided. For developers who generate and publish image archives in the Roku BIF (Base Index Frame) file format, scene-based trick-mode using index frames will be supported. A specificati
Page: Tutorial Overview
Every ZIP file example in this tutorial is a complete application, in that it consists of at least a scene component (a component extended from a scene node class, such as Scene, or OverhangPanelSetScene), and possibly any other components needed for the
Page: Typographic Nodes
The following node classes allow you to set the font characteristics of the text in a Scene Graph application, and display scrolling text.
Page: Typography
The Scene Graph API includes the Font node class for specifying the font characteristics to be used by your application. Each node class that renders text on the screen display includes a font field to set the font characteristics for the node. There is a
Page: Typography Markup
Table of Contents Roku Scene Graph offers two special node classes to display text: ScrollingLabel ScrollableText ScrollingLabel Markup Example Application: ScrollingLabelExample.zip Node Class Reference: ScrollingLabel The ScrollingLabel node class is a

U

Page: Using Widgets
The Scene Graph API includes several widget node classes suh as buttons and keyboards that can be incorporated into your scenes and custom Scene Graph components. Widget Nodes The following are the widget node classes supplied by Roku as part of the Scene

V

Page: Vector2DFieldInterpolator
Table of Contents Extends: Node Description Vector2DFieldInterpolator specifies a keyframe animation sequence to be applied to a pair Vector2D field of a node. Most typically, this is used to animate the (x,y) coordinates of a node's translation field. A
Page: Video
Table of Contents Extends: Group Description The Video node class provides controlled play of live or VOD video. The Video node includes a wide variety of internal nodes to support trick play, playback buffering indicators, and so forth. Playback bufferin

W

Page: Web Service API
Roku Web Services is integral to allow subscribers who signed up on Roku to use your service on other platforms. This API can be used to determine whether a subscription on Roku is still valid so the subscriber can be entitled access on a platform other t
Page: Widget Nodes
The following node classes are the various widget node classes that you can incorporate into your Scene Graph components.
Page: Widgets Markup
Table of Contents Roku Scene Graph provides several "widget" node classes. Most of these should be very familiar if you have set up user interfaces for applications on other operating systems and platforms; others are more specific to the Roku platform: B
Page: Working with Screens
Table of Contents This section applies to non-Scene Graph based channels only. For best practices for Scene Graph channel program flow and navigation, see Controlling Screen Program Flow. Screens The primary user interface abstraction in the Roku object

X

Page: XML Components
An XML-based markup language has been added to the Scene Graph API that allows new Scene Graph components to be defined consisting of a set of Scene Graph nodes loaded from a declarative description, with interactive or animated behaviors added using Brig
Page: XML Elements
The following are the component XML file elements used in Scene Graph applications.

Y

Z

Page: Z-Order/Parent-Child Markup
Table of Contents This section of the tutorial shows the sequence that several renderable nodes are drawn on the screen, and the general concepts of inheritance of properties in child nodes from parent nodes. You'll see how to organize a node tree to achi

!@#$

  • No labels