1 ` OBJECT REFERENCE MANUAL Firmware Versions 5.1.x BrightSign, LLC. 16780 Lark Ave., Suite B Los Gatos, CA 95032 | 408-852-9263 | www.br
2 INTERFACES AND METHODS OVERVIEW Every BrightScript object consists of one or more "interfaces." An interface consists of one or more &qu
92 vm.SetMode("1280x720x60p") r = CreateObject("roRectangle", 0, 0, 1280, 720) v.SetRectangle(r) i.SetInput("s-video"
93 roVideoMode This object allows you to configure resolution and other video output settings. The same video resolution is applied to all video ou
94 • GetBestMode(connector As String) As String • GetMode() As String: Returns the current video mode of the device, which is specified using the
95 • GetSafeY() As Integer: Returns the vertical coordinate for the upper-left corner of the "safe area". For modes that are generally di
96 • AdjustGraphicsColor(parameters As roAssociativeArray) As Boolean: Adjusts the video and graphics output of the player using the following para
97 x_percentage = (width_of_bezel_between_active_screens / width_of_active_screen) * 100 y_percentage = (height_of_bezel_between_active_screens /
98 The ifSetMessagePort interface provides the following: • SetPort(obj As Object) As Void "Auto" Video Mode If the mode is set to "
99 roVideoPlayer This object is used to play back video files (using the generic ifMediaTransport interface). If the message port is set, the object
100 The ifVideoControl interface provides the following: • PlayStaticImage(filename As String) As Boolean • SetViewMode(mode As Integer) As Boolea
101 o rot90: 90 degree clockwise rotation o rot180: 180 degree rotation o rot270: 270 degree clockwise rotation o mirror: Horizontal mirror tran
3 Classes A "class name" is used to create a BrightScript object. For example, the class name for a video playback instance is roVideoPlay
102 The ifMediaTransport interface provides the following: • PlayFile(source As Object) As Boolean: Plays a video file or HDMI Input. To play a f
103 o SyncIsoTimeStamp: The time stamp for resuming synchronized video. This value is provided by the roSyncManager.Synchronize() method on the mas
104 To display the video in a zone, SetRectangle must be called. EnableZoneSupport must be called to use the zones functionality. MPEG2 video files
105 110 print msg.GetData() ' Print out index when the time event happens 120 goto 90 Calling PlayStaticImage() displays an image on the video
106 The filename is the same as documented earlier, but the multiscreen parameters are new. MultiscreenWidth and MultiscreenHeight specify the width
107 a["SourceHeight"] = 500 v.PlayFile(a) This displays a windowed portion of the test.ts video file starting at coordinates SourceX, Sou
108 o H264-MVC o AVSC • AudioCodec o MPEG-Audio o AAC o AAC+ o AC3 o AC3+ o DTS • VideoPid • AudioPid • PcrPid The VirtualChannel and R
109 a video may contain English and Spanish audio tracks, you can call SetPreferredAudio() to specify that the Spanish track should be played if it
110 Example: "pid=7680, codec=H264, width=1280, height=720, aspect=1.78, colordepth=8;;" SetPreferredAudio(description As String) As Boole
111 o Clean effects o Hearing impaired o Visual impaired commentary Example: “pid=4192, codec=AC3, channels=5, freq=48000, lang=eng, type=Main a
4 When zones are enabled, the image layer is on top of the video layer by default. The default behavior can be modified using the roVideoMode.SetGr
112 • All value comparisons are case-insensitive, and all integer values must have no leading zeroes. • Numerical values must match the stream des
113 • The following template list specifies a 48KHz audio stream if there is one; otherwise, no audio stream will be played. Observe that the list
114 roTouchCalibrationEvent Interfaces: ifInt, ifIntOps The ifInt interface provides the following: • GetInt() As Integer • SetInt(a As Integer)
115 roTouchEvent Interfaces: ifInt, ifPoint, ifEvent The ifInt interface provides the following: • GetInt() As Integer • SetInt(a As Integer) T
116 roTouchScreen This object allows you to accept events from touchscreen panels or mice. Not all touchscreens are supported. However, we are alway
117 The ifTouchScreen interface provides the following: • SetResolution(x As Integer, y As Integer) As Void • AddRectangleRegion(x As Integer, y A
118 regions default to "enabled" when created, but you can set up all of the regions at the start of your script and then enable the curre
119 • SetMode(a As String) As Boolean • NotUsed2(a As Boolean) As Boolean The roTouchScreen interface sends events of type roTouchEvent, which pr
120 print "x,y=";msg.GetX();msg.GetY() endif goto loop: Example: This code includes mouse support. t=CreateObject("r
121 t.SetCursorBitmap("cursor.bmp", 16, 16) t.SetResolution(1024, 768) t.SetCursorPosition(512, 389) t.EnableCursor(1) img.DisplayFile(&
5 4. If multiple event types are possible, your script should determine which event the wait function received, then process it. The script then ju
122 FILE OBJECTS roAppendFile This object can be used to create a new file or append information to the end of an existing file. CreateObject("
123 • AtEof() As Boolean: Returns True if an attempt has been made to read beyond the end of the file. If the current position is at the end of the
124 roCreateFile This object can be used to write a new file or overwrite an existing file. CreateObject("roCreateFile", filename As Stri
125 • SetSendEol(eol_sequence As String) As Void: Sets the EOL sequence when writing to the stream. • SendByte(byte As Integer) As Void: Writes th
126 roReadFile This object opens and reads a specified file. Object Creation: Creating an roReadFile object opens the specified file for reading on
127 The ifStreamSend interface provides the following: • SetSendEol(eol_sequence As String) As Void: Sets the EOL sequence when writing to the str
128 roReadWriteFile The object opens a file and allows both reading and writing operations on that file. Object Creation: Creating an roReadWriteFi
129 The ifStreamSend interface provides the following: • SetSendEol(eol_sequence As String) As Void: Sets the EOL sequence when writing to the str
130 HASHING AND STORAGE OBJECTS roBlockCipher This object provides a means for symmetric block encryption. It currently supports AES and CBC ciphers
131 zeroes). The IV will typically contain arbitrary characters and be in the form of an roByteArray, though it can also be a string. • Encrypt(key
6 BRIGHTSCRIPT CORE OBJECTS roArray This object stores objects in a continuous array of memory locations. Since an roArray contains BrightScript com
132 ' Second example selecting PKCS#7 padding c = CreateObject("roBlockCipher", { mode: "aes-128-cbc", padding: "pkcs7
133 roBrightPackage An roBrightPackage object represents a .zip file. The .zip file can include arbitrary content or can be installed on a storage d
134 Using roBrightPackage to distribute new content BrightSign checks storage devices for autorun scripts in the following order: 1. External US
135 package = CreateObject("roBrightPackage", "autorun.zip") package.SetPassword("test") package.Unpack("SD:/&qu
136 roDiskErrorEvent This object is returned while waiting on a message port that is connected to an roDiskMonitor object. Interfaces: ifUserData,
137 roDiskMonitor This object provides access to low-level information about disk errors. It provides an event-based interface that delivers roDiskE
138 msgp=CreateObject("roMessagePort") diskmon.Setport(msgp)
139 roHashGenerator This object provides an API for generating a variety of message digests. Object Creation: The hash algorithm is specified when
140 roPassKey This object provides a means for generating keys (hashes) from a password and salt. Object Creation: The object is passed an associa
141 pass = CreateObject("roByteArray") pass.FromAsciiString("password") salt.FromAsciiString("salt") ' Create the
7 • Delete(a As Integer) As Boolean: Deletes the indicated array entry and shifts all above entries down by one unit. • Count() As Integer Returns
142 roRegistry The registry is an area of memory where a small number of persistent settings can be stored. Access to the registry is available thro
143 roRegistrySection This object represents a section of the registry, enabling the organization of settings within the registry. It allows the sec
144 Writes do not always take effect immediately to prevent the system from exceeding the maximum number of writes on the onboard persistent storage
145 roSqliteDatabase This is the main SQLite object that "owns" the database. You can create as many of these objects as you need. Interf
146 Example: Creating a Database db = CreateObject("roSqliteDatabase") print db openResult = db.Create("SD:/test.db") if open
147 print sqlResult if sqlResult = SQLITE_COMPLETE print "Table Created OK" else print "Table Creation FAILED" endif
148 roSqliteEvent This event object is returned when a RunBackground() operation is called by the associated roSqliteDatabase object. Interfaces:
149 roSqliteStatement This object is created by calling the CreateStatement() method on an roSqliteDatabase object. Interfaces: ifSqliteStatement
150 • GetData() As Object: Returns an associative array of name/value pairs that are available after a SELECT (or similar) operation. • Finalise()
151 sqlResult = insertStmt.Run() print sqlResult if sqlResult = SQLITE_COMPLETE print "Table Insertion OK" else print "Tab
8 roAssociativeArray An associative array (also known as a map, dictionary, or hash table) that allows objects to be associated with string keys. T
152 params[ 1 ] = "/foo/bar/bing/bong" params[ 2 ] = 10 bindResult = insertStmt.BindByOffset(params) if bindResult print "BindB
153 ' insertStmt = db.CreateStatement("INSERT INTO playback (md5,path,playback_count) VALUES(:md5_param,:path_param,:pc_param);") p
154 if type(e) = "roSqliteEvent" then transId = e.GetTransactionId() sqlResult = e.GetSqlResult() print transI
155 if type(selectStmt) <> "roSqliteStatement" then print "We didn't get a statement returned!!" end endif
156 roStorageAttached, roStorageDetached Interfaces: ifString, ifStringOps The ifString interface provides the following: • GetString() As String
157 • GetEntityEncode() As String • Tokenize(delim As String) As Object • Trim() As String • ToInt() As Integer • ToFloat() As Float • Left(ch
158 roStorageHotplug This object provides roStorageAttached messages when storage devices appear and roStorageDetached messages when storage devices
159 finished = false while not finished ev = mp.WaitMessage(0) if type(ev) = "roControlDown" finished = true
160 roStorageInfo This object is used to report storage device usage information. Object Creation: The roStorageInfo object is created with a param
161 sd_mfr_id Int Card manufacturer ID as assigned by the SD Card Association sd_oem_id String Two-character card OEM identifier as assigned by the
9 • SetModeCaseSensitive(): Makes all subsequent actions case sensitive. All roAssociativeArray lookups are case insensitive by default. • LookupC
162 CONTENT MANAGEMENT OBJECTS roAssetCollection This object is used to represent a collection of assets. Object Creation: The roAssetCollection o
163 • AddAssets(asset_info_array As Object) As Boolean: Adds multiple assets from an enumerable object (roList or roArray) that contains compatible
164 Important: Any "optional" fields that are specified when populating the pool must also be specified when retrieving assets from the po
165 roAssetFetcher This object contains functions for downloading files to the pool. Object Creation: The roAssetFetcher object must be passed an r
166 • EnableUnsafeProxyAuthentication(enable As Boolean) As Boolean: Supports basic HTTP authentication against proxies if True (which, unlike Enab
167 below bytes_per_second when averaged over period_in_seconds. Note that if the transfer is over the Internet, you may not want to set period_in_s
168 • GetUserData() As Object: Returns the user data that has previously been set via SetUserData(). It will return Invalid if no data has been set
169 roAssetFetcherEvent This event is generated by an roAssetFetcher object when a file transfer succeeds or fails, or when population of the asset
170 -6 CURLE_COULDNT_RESOLVE_HOST -7 CURLE_COULDNT_CONNECT -8 CURLE_FTP_WEIRD_SERVER_REPLY -9 CURLE_REMOTE_ACCESS_DENIED A service was denied by
171 -47 CURLE_TOO_MANY_REDIRECTS Catch endless re-direct loops. -48 CURLE_UNKNOWN_TELNET_OPTION User specified an unknown option. -49 CURLE_TELNET_O
10 roBoolean This is the object equivalent for the Boolean intrinsic type. It is useful in the following situations: • When an object is needed ins
172 CURLOPT_CONV_FROM_UTF8_FUNCTION -77 CURLE_SSL_CACERT_BADFILE Could not load CACERT file, missing or wrong format. -78 CURLE_REMOTE_FILE_NOT_FOUN
173 • GetUserData() As Object: Returns the user data that has previously been set via SetUserData(). It will return Invalid if no data has been set
174 roAssetFetcherProgressEvent This event is generated by the roAssetFetcher object at regular intervals during file downloads. Use the roAssetFetc
175 roAssetPool An roAssetPool instance represents a pool of files for synchronization. You can instruct this object to populate the pool based on a
176 • ReserveMegabytes(size As Integer) As Boolean: Reserves the specified amount of storage space. This method is dynamic: The system software att
177 roAssetPoolFiles This object works similarly to the roSyncPoolFiles object. Object Creation: The roAssetPoolFiles object is created with two pa
178 Field Value Description name String Asset name link String Asset URL size String hash String Hash in algorithm ":" hash format change
179 roAssetRealizer This object contains functions for realizing files. Object Creation: The roAssetRealizer object requires two parameters upon cr
180 required files, then this method will immediately fail before any files are changed (this method will always attempt to do as much work as possi
181 roAssetRealizerEvent This event object is returned when the roAssetRealizer.Realize() method is called. It yields information about the success
11 roByteArray This object contains functions for converting strings to or from a byte array, as well as to or from ASCII hex or ASCII base64. Note
182 The ifUserData interface provides the following: • SetUserData(user_data As Object): Sets the user data that will be returned when events are r
183 roSyncSpec This object represents a parsed sync spec. It allows you to retrieve various parts of the specification with methods. Interfaces: if
184 • GetFile(section As String, index As Integer) As roAssociativeArray: Returns an roAssociativeArray object for the file in the specified sectio
185 NETWORKING OBJECTS roDatagramSender, roDatagramReceiver, roDatagramSocket, roDatagramEvent The roDatagramSender and roDatagramReceiver objects a
186 sender.SetDestination("255.255.255.255", 21075) sender.Send("Hello") roDatagramReceiver This object sends roDatagramEvent in
187 print "Datagram: "; event endif end while roDatagramSocket This object both sends and receives UDP packets. Use roDatagramSocket
188 doesn’t matter which local port is used), pass a port number of 0, and the player will select an unused port. This method returns True upon succ
189 The ifString interface provides the following: • GetString() As String The ifDatagramEvent interface provides the following: • GetByteArray(
190 roHttpEvent This event object is used to handle requests generated by the roHttpServer object. Interfaces: ifHttpEvent, ifUserData The ifHttpE
191 • GetRequestParams() As Object: Returns an roAssociativeArray containing all the URI parameters. • AddResponseHeader(header As String, value A
TABLE OF CONTENTS INTRODUCTION ...
12 • ReadFile(file_path As String, start_index As Integer, length As Integer) As Boolean: Reads a section of the specified file into the byte array
192 roHttpServer This object allows for processing of RESTful HTTP requests from remote URLs to the embedded web server of the BrightSign player. Ma
193 • AddGetFromEvent(parameters As roAssociativeArray) As Boolean: Requests that an event of type roHttpEvent be sent to the configured message po
194 available via the roHttpEvent.GetRequestBodyString() method. A response can be sent in the same manner as the AddGettoEvent method. • SetupDWSL
195 Name Applies to Value url_path all The path for which the handler method will be used user_data GetFromEvent(),PostToString(), PostToFile()
196 The ifSetMessagePort interface provides the following: • SetPort(a As Object) The ifGetMessagePort interface provides the following: • GetPor
197 roMediaServer The roMediaServer object waits for client requests, deals with negotiation, and ultimately generates an roMediaStreamer pipeline t
198 A number of optional parameters can be added after the port parameter using an "&" (ampersand): o trace: Displays a trace of mess
199 roMediaStreamer The current implementation of this object allows an XD player to stream .ts files over UDP and RTP. Additional streaming protoco
200 • Stop() As Boolean: Stops the pipeline stream. Some internal pipeline stages may continue running. • Disconnect() As Boolean: Regresses the s
201 roMediaStreamerEvent This object is sent by instances of roMediaStreamer. It provides information about the current state of an IP stream being
13 roDouble, roIntrinsicDouble Interfaces: ifDouble The ifDouble interface provides the following: GetDouble() As Double SetDouble(a As Double)
202 roMimeStream This object passes an MJPEG stream in MIME format to the roVideoPlayer.PlayFile() method. There are some limitations to what MJPEG
203 roMimeStreamEvent This object will return an integer corresponding to the event that has occurred: Interfaces: ifInt The ifInt interface provi
204 roNetworkAdvertisement This object is used to advertise services running on a BrightSign player to other devices on the network. The current imp
205 ... ' Stop advertising advert = invalid
206 roNetworkAttached, roNetworkDetached roNetworkAttached This object implements ifInt to report the index of the attached network interface. Inst
207 roNetworkConfiguration This object provides various interfaces for configuring the network interfaces on a BrightSign player. Object Creation: T
208 o open: An unobfuscated password for the DWS. This method uses digest access authentication. Specifying this parameter without setting a port n
209 • SetIP4Broadcast(broadcast As String) As Boolean (interface) • SetIP4Gateway(gateway As String) As Boolean (interface): Sets the IPv4 interfa
210 • SetTimeServer(time_server As String) As Boolean (host): Sets the default time server, which is "time.brightsignnetwork.com". You ca
211 metric Integer Interface Returns the current routing metric for the interface. See SetRoutingMetric for more details. dhcp Boolean Interface Re
14 roFunction Interfaces: ifFunction • GetSub() As Function • SetSub(value As Function)
212 time_server String Host The current time server configured_proxy String Host The currently configured proxy. This may contain magic characters a
213 • TestInternetConnectivity() As Object: Performs various tests on the Internet connection (via any available network interface, not necessaril
214 18 STS STS street suffix Ave, Platz 19 HNO HNO house number 123 20 HNS HNS house number suffix A, 1/2 21 LMK LMK landmark or vanity address Colu
215 reported value on other networks or in different locations. The ifMessagePort interface provides the following: • SetPort(a As Object): Posts
216 roNetworkHotplug This object can be used to generate events when a network interface becomes available or unavailable. It will post events of th
217 roNetworkStatistics This object allows you to monitor and post how much bandwidth the player is using. Object Creation: The roNetworkStatistics
218 o tx_bytes o rx_errors o tx_collisions o rx_dropped o tx_compressed o rx_multicast o tx_dropped o rx_fifo_errors o rx_bytes o tx_fifo_
219 roRssParser, roRssArticle roRssParser and roRssArticle are used to display an RSS ticker on the screen. Object Creation: The roRssParser and r
220 Example: Note: For firmware versions 4.7.x and above, if no alpha value is specified when roTextWidget.SetForegroundColor() is called, the text
221 roRtspStream This is a simple object that is passed to the roVideoPlayer.PlayFile() method. There are some limitations to the RTSP streams this
15 roGlobal This object provides a set of standard, module-scope functions that are stored in the global object. If one of these global functions is
222 roShoutcastStream Object creation: The roShoutcastStream object takes a URL object, a maximum buffer size (in seconds), and an initial bufferin
223 roShoutcastStreamEvent Interfaces: ifInt, ifSourceIdentity The ifInt interface provides the following: • GetInt() As Integer • SetInt(a As I
224 roSnmpAgent When this object is created, it starts an SNMP process that handles some standard SNMP MIBs such as system uptime. Prior to starting
225 roSnmpEvent Interfaces: ifString, ifStringOps The ifString interface provides the following: • GetString() As String • SetString(a As String
226 • GetEntityEncode() As String • Tokenize(delim As String) As Object • Trim() As String • ToInt() As Integer • ToFloat() As Float • Left(ch
227 roStreamByteEvent Interfaces: ifInt, ifUserData The ifInt interface provides the following: • GetInt() As Integer • SetInt(a As Integer) Th
228 roStreamConnectResultEvent This event is sent to a message port associated with an roTCPStream object when an AsyncConnectTo() request has been
229 roStreamEndEvent Interfaces: ifInt, ifUserData The ifInt interface provides the following: • GetInt() As Integer • SetInt(a As Integer) The
230 roStreamLineEvent Interfaces: ifUserData, ifString The ifUserData interface provides the following: • SetUserData(user_data As Object): Sets
231 roSyncManager This object provides advanced synchronization capabilities for video walls and other deployments that require closely calibrated i
16 • str(value As Double) As String: Converts a specified float value to a string. This method also returns a string equal to the character represe
232 • MulticastAddress: A string specifying to which multicast address synchronization messages are communicated. The default address is "224.
233 Currently, there are two objects that can accept synchronization parameters: The roVideoPlayer PlayFile() call accepts the parameters provided b
234 msg=Wait(4000, p) ' EVERYONE DOES THE REST aa=CreateObject("roAssociativeArray") aa.Filename = "Text_1.mov" aa.SyncDom
235 roSyncManagerEvent These events are generated on slave units in response to roSyncManager.Synchronize() calls from the master unit. The roSyncMa
236 roTCPConnectEvent The event is posted when a new connection is made to an roTCPServer port. The normal response to receiving such an event is to
237 roTCPServer Interfaces: ifTCPServerInstance, ifUserData The ifTCPServerInstance interface provides the following: • GetFailureReason() As Str
238 roTCPStream Interfaces: ifStreamReceive, ifUserData, ifStreamSend, ifTCPStream The ifStreamReceive interface provides the following: • SetLin
239 • GetFailureReason() As String: Yields additional useful information if an roTCPStream method fails. • ConnectTo(a As String, b As Integer) As
240 roUrlStream This object allows playback of content from a URL; the current implementation is only designed to work from local NAS storage. This
241 roUrlTransfer This object is used for reading from and writing to remote servers through URLs. It reports transfer status using the roUrlEvent o
17 • sgn(x As Double) As Integer: Returns an integer representing how the float argument x is signed: -1 for negative, 0 for zero, and 1 for positi
242 • GetPort() As Object The ifUrlTransfer interface provides the following: • SetUrl(URL As String) As Boolean: Sets the URL for the transfer r
243 • AsyncGetToString As Boolean: Begins a GET request to a string asynchronously. Events will be sent to the message port associated with the obj
244 associated with the object A False return indicates that the request could not be issued and no events will be delivered. • SetUserAndPassword(
245 • EnablePeerVerification(a As Boolean) As Boolean • EnableHostVerification(a As Boolean) As Boolean • SetCertificatesFile(a As String) As Boo
246 • PutFromFile(a As String) As Integer: Uses the HTTP PUT method to write the contents of the specified file to the current URL and return the r
247 • SetRelativeLinkPrefix(prefix As String) As Boolean: Places the specified prefix in front of the URL if the URL is relative. Use this method t
248 header is sent based on the current size of the file, which is written in place rather than using a temporary file. response_body_object String
249 url = CreateObject("roUrlTransfer") pipe = [ { decompress: "gzip"}, { hash: "MD5" }, { output_file: "test.txt
250 roUrlEvent This event is generated by the roUrlTransfer object. Interfaces: ifInt, ifUserData, ifUrlEvent, ifString, ifSourceIdentity The ifIn
251 -2 CURLE_FAILED_INIT -3 CURLE_URL_MALFORMAT -5 CURLE_COULDNT_RESOLVE_PROXY -6 CURLE_COULDNT_RESOLVE_HOST -7 CURLE_COULDNT_CONNECT -8 CURLE_
18 • Wait(timeout As Integer, port As Object) As Object: Instructs the script to wait on an object that has an ifMessagePort interface. This method
252 -42 CURLE_ABORTED_BY_CALLBACK -43 CURLE_BAD_FUNCTION_ARGUMENT -45 CURLE_INTERFACE_FAILED CURLOPT_INTERFACE failed. -47 CURLE_TOO_MANY_REDIRECT
253 URL_easy_setopt options: CURLOPT_CONV_FROM_NETWORK_FUNCTION CURLOPT_CONV_TO_NETWORK_FUNCTION CURLOPT_CONV_FROM_UTF8_FUNCTION -77 CURLE_SSL_CACER
254 • GetString() As String: Returns the string associated with the event. For transfer-complete AsyncGetToString(), AsyncPostFromString(), and Asy
255 INPUT/OUTPUT OBJECTS roCecInterface This object provides access to the HDMI CEC channel. Object Creation: The roCecInterface object is created
256 roCecRxFrameEvent, roCecTxCompleteEvent If an roMessagePort is attached to an roCecInterface instance, it will receive events of type roCecRxFra
257 0x84 Bit-timing error 0x85 Destination address not acknowledged 0x86 Data byte not acknowledged
258 roChannelManager You can use this object to manage RF channel scanning and tuning. The roVideoPlayer method also has channel scanning capabiliti
259 stores a list of all channels that are obtained using the CreateChannelDescriptor() method (described below). The list is cleared on each call t
260 <Channel class_id="1" tracking_level="0" version="0"> <RfChannel>42</RfChannel> <Modulati
261 aa["VirtualChannel"] = "24.1" print v.PlayFile(aa) c.EnableScanDebug("") • CreateChannelDescriptor(a As Object)
19 o […]-- Matches any single character specified within the brackets. The closing bracket is treated as a member of the character class if it imme
262 o VideoCodec o AudioPid o AudioCodec o SpectralInversion o ChannelMap o FirstRfChannel o LastRfChannel The last three entries in this ar
263 c.Scan(desc) Asynchronous API • AsyncScan(parameters As roAssociativeArray) As Boolean: Begins a channel scan on the RF input and returns the
264 cinfo = CreateObject("roAssociativeArray") cinfo["ChannelIndex"] = index desc = c.CreateChannelDescriptor(cinfo) ' Pl
265 loop: msg = Wait(2000,p) if msg = 0 then goto scan_complete goto loop scan_complete: ' Start at the first channel index = 0 cinfo =
266 roControlPort This object is an improved version of roGpioControlPort. It provides support for the I/O port of the BP200 and BP900 USB button bo
267 Interfaces: ifControlPort, ifSetMessagePort The ifControlPort interface provides the following: • GetVersion() As String: Returns the version
268 • SetOutputValue(offset As Integer, bit-mask As Integer): Configures the BP200/BP900 button board when roControlPort object is instantiated wit
269 gpioPort = CreateObject("roControlPort", "BrightSign") gpioPort.EnableOutput(2) gpioPort.SetOutputState(2, true) gpioPort.
270 BP200/BP900 Setup To send a configuration to the BP200/BP900 button board, instantiate roControlPort with the Touchboard-<n>-LED-SETUP par
271 specifies the button number (0-11), while the second integer uses a bit field to specify the on/off behavior of the button LED. The size of the
20 • CopyFile(source As String, destination As String) As Boolean: Copies the file at the specified source file-path name to the specified destinat
272 roControlUp, roControlDown These objects are posted by the control port to the configured message port when inputs change state. The roControlUp
273 roGpioControlPort, roGpioButton Note: New scripts should use roControlPort instead of roGpioControlPort. roGpioControlPort This object is used
274 roGpioButton Interfaces: ifInt, ifIntOps The ifInt interface contains the input ID listed above and provides the following: • GetInt() As Int
275 roIRReceiver This object supports receiving arbitrary Infrared remote control codes using the NEC and RC5 protocols. Object Creation: The roIR
276 Interfaces: ifUserData, ifMessagePort The ifUserData interface provides the following: • SetUserData(user_data As Object): Sets the user data
277 roIRDownEvent, roIRRepeatEvent, roIRUpEvent An IR event object is generated when an IR button input (button press, button repeat, button release
278 roIRTransmitter This object supports sending arbitrary remote control Infrared remote control codes using the NEC, RC5, or PHC (Pronto Hex Contr
279 roIRRemote This object supports receiving and transmitting arbitrary Infrared remote control codes using the NEC protocol. You can also use this
280 Pronto Hex Format Raw captures of Pronto Hex commands will likely not work with the inbuilt IR blaster, though they should work with Iguanaworks
281 roIRRemotePress Messages of the type roIRRemotePress are generated upon key presses from a Roku Soundbridge remote. Interfaces: ifInt, ifIntOp
21 floating point numbers, strings, roArray objects, and roAssociativeArray objects. The ParseJson() method has the following properties: o Invalid
282 Add 13 Shuffle 14 Repeat 15 Volume up 16 Volume down 17 Brightness 18
283 roKeyboard, roKeyboardPress roKeyboard This object is used to wait for events from a USB keyboard. It can also be used to configure the localiz
284 bt Bhutan hr Croatia mk Macedonia sy Syria bw Botswana hu Hungary ml Mali th Thailand by Belarus ie Ireland mm Myanmar tj Tajikistan ca Canada i
285 The rotINT32 returned can have one of the following values: Letter Keys Number Keys Function Keys Misc Keys Special Keys A - 97 R - 114 0 - 4
286 roMessagePort A message port is the destination where messages (events) are sent. See the Event Loops section for more details. You do not call
287 The ifEnum interface provides the following: • Reset(): Resets the position to the first element of enumeration. • Next() As Dynamic: Returns
288 roSequenceMatcher This object is used to send roSequenceMatchEvent events when the specified byte sequence patterns are matched. Once a pattern
289 button1_seq = FromHex("080a01040001e000") button2_seq = FromHex("080e01040001e000") matcher = CreateObject(&quo
290
291 roSequenceMatchEvent This object is generated whenever roSequenceMatcher matches a specified byte sequence pattern. Interfaces: ifUserData The
roXMLList ...
22 searchRequest = CreateObject("roUrlTransfer") searchRequest.SetURL("http://api.example.com/services/rest/getPhotos") response
292 roSerialPort This object controls the RS-232 serial port, allowing you to receive input and send responses. Object Creation: The roSerialPort o
293 • Flush() The ifStreamReceive interface provides the following: • SetLineEventPort(port As Object) As Void • SetByteEventPort(port As Object
294 c. duration_in_ms >= 100: Sets the break condition for the specified period of milliseconds (note that this integer is only accurate to the
295 SYSTEM OBJECTS roDeviceInfo This object provides information about the device hardware, firmware, and features. Interfaces: ifDeviceInfo The i
296 • HasFeature(feature As String) As Boolean: Returns True if the player feature, which is passed as a case-insensitive string parameter, is pres
297 o "sdhc": SDHC only Example: di = CreateObject("roDeviceInfo") print di.GetModel() print di.GetVersion(), di.GetVersionNum
298 roResourceManager The roResourceManager is used for managing strings in multiple languages. Object creation: The roResourceManager object is c
299 ita "Gen|Feb|Mar|Apr|Mag|Giu|Lug|Ago|Set|Ott|Nov|Dic" dut "Jan|Feb|Mar|Apr|Mei|Jun|Jul|Aug|Sep|Okt|Nov|Dec" swe "Jan|Fe
300 roSystemLog This object enables the application to receive events that are intended for reporting errors and trends, rather than for triggering
301 The ifSystemLog interface provides the following: • ReadLog() As Object
23 roInt, roFloat, roString The intrinsic types roInt32, roFloat, and roString have an object and interface equivalent. These are useful in the foll
302 DATE AND TIME OBJECTS roDateTime This object is used to represent an instant in time. Interfaces: ifDateTime, ifString The ifDateTime interfac
303 • AddMilliseconds(milliseconds As Integer) As Void • SubtractMilliseconds(milliseconds As Integer) As Void • Normalize() As Boolean: Checks t
304 roSystemTime This object provides the ability to read and write the time stored in the real-time clock (RTC). It can also be used to read and wr
305 Example: The following code specifies a POSIX-formatted time zone: t = CreateObject("roSystemTime") t.SetTimeZone("POSIX:GMT-0BST
306 • SAMT: Delta Time Zone (Samara) • YEKT: Echo Time Zone (Yekaterinburg) • IST: Indian Standard Time • NPT: Nepal Time • OMST: Foxtrot Time
307 • GMT-8: 8 hours behind Greenwich Mean Time • GMT-9: 9 hours behind Greenwich Mean Time • GMT-9:30: 9.5 hours behind Greenwich Mean Time • G
308 • GMT+11:30: 11.5 hours ahead of Greenwich Mean Time • GMT+12: 12 hours ahead of Greenwich Mean Time • GMT+12:30: 12.5 hours ahead of Greenwi
309 roTimer This object allows the script to trigger events at a specific date/time or during specified intervals. Events are triggered by deliverin
310 • SetElapsed(seconds As Integer, milliseconds As Integer): Configures a timer to trigger once the specified time period has elapsed. Unlike the
311 print "Another event arrived: "; type(ev) end if end while End Sub Example: This code creates a timer that triggers every
24 roInt also contains the ifIntOps interface, which provides the following: • ToStr() As String roFloat contains the ifFloat interface, which pro
312 Example: This code creates a timer that triggers once at a specific date/time. timer=CreateObject("roTimer") mp=CreateObject("roM
313 roTimerEvent This event object is generated by the roTimer object. Interfaces: ifSourceIdentity The ifSourceIdentity interface provides the fo
314 roTimeSpan This object provides an interface to a simple timer for tracking the duration of activities. It is useful for tracking how long an ac
315 LEGACY OBJECTS roRtspStreamEvent This object is no longer used to return events related to RTSP streams. The roVideoPlayer object now returns ev
316 roSyncPool We recommend using roAssetPool instead. Object Creation: The roSyncPool object is created with a single parameter that specifies the
317 • ProtectFiles(a As Object, b As Integer) As Boolean • ReserveMegabytes(a As Integer) As Boolean • GetPoolSizeInMegabytes() As Integer • Est
318 The ifMessagePort interface provides the following: • SetPort(a As Object) The ifUserData interface provides the following: • SetUserData(a A
319 roSyncPoolEvent We recommend using roAssetFetcherEvent instead. Interfaces: ifSourceIdentity, ifSyncPoolEvent, ifUserData The ifSourceIdentity
320 roSyncPoolFiles We recommend using roAssetPoolFiles instead. Interfaces: ifSyncPoolFiles The ifSyncPoolFiles interface provides the following:
321 roSyncPoolProgressEvent We recommend using roAssetFetcherProgressEvent instead. Interfaces: ifSourceIdentity, ifSyncPoolProgressEvent, ifUserDa
25 • Len() As Integer • GetEntityEncode() As String • Tokenize(delim As String) As Object • Trim() As String • ToInt() As Integer • ToFloat()
322 CHANGE LOG 4.4.x, 4.2.x, 3.10.x March 1, 2013 1.1 Added entries for roDatagramSocket [implemented in version 4.4.47], roXMLElement, roAudioPlaye
323 3.2 Revised roVideoPlayer entry to include information about new channel scanning functionality. April 8, 2013 4.1 Removed uses of "CF:&qu
324 July 22, 2013 5.1 Added descriptions of the ProtectAssets() and UnprotectAssets() methods to the roAssetPool entry. 5.2 Added a full description
325 3.5 Included additional explanation and an example for roStorageHotplug. 3.6 Added descriptions for the roVideoPlayer.AdjustVideoColor() and
326 November 18, 2013 6.1 Added descriptions for most roGlobal methods. 6.2 Expanded the description of the roNetworkConfiguration.SetHostName() m
327 March 25, 2014 11.1 Added documentation for the new roVideoMode.Screenshot() method. 11.2 Clarified some of the information in the entry for r
328 14.2 Added a deprication notice to the SetTempDirectory() method in the entry for roSqliteDatabase. 14.3 Added descriptions for most roSyncSpe
329 1.13 Revised the roMediaStreamer entry to reflect changes and additions to the XD media server. July 2, 2014 2.1 Clarified the language of th
330 5.0.x October 1, 2014 1.1 Added a note that roSqliteDatabase.SetTempDirectory() was removed in versions 5.0.x. 1.2 Added a caveat about option
331 5.1.x January 9, 2015 1.1 Listed events generated by the roIRReceiver object. 1.2 Documented alternate values that can be used to rotate an ro
26 Example: An integer value of 5 is converted to type roInt automatically because the AddTail() method expects a BrightScript Object as its paramet
332 3.8 Documented the new SyncIsoTimeStamp parameter for the Pause() and Resume() methods in the roVideoPlayer entry. 3.9 Expanded the roControlP
333 7.2 Added a description for the roHtmlWidget.StartInspectorServer() April 8, 2015 8.1 Added a description of the SetTransform() method to th
27 roList This object functions as a general-purpose, doubly linked list. It can be used as a container for arbitrary-length lists of BrightSign Obj
28 The ifArray interface provides the following: • Peek() As Dynamic: Returns the last (highest index) array entry without removing it. • Pop() A
29 list.AddTail(“d”) list.ResetIndex() x= list.GetIndex() while x <> invalid print x x = list.GetIndex() end while print list[2]
30 roRegex This object allows the implementation of the regular-expression processing provided by the PCRE library. This object is created with a s
31 • Match(a As String) As roArray: Returns an roArray of matched substrings from the string. The entire match is returned in the form array[0].Thi
roAppendFile ...
32 roXMLElement This object is used to contain an XML tree. The roXMLElement object is created with no parameters: CreateObject("roXMLElement
33 root.SetName("myroot") root.AddAttribute("key1","value1") root.AddAttribute("key2","value2") ne
34 • SetBody(a As Object): Generates an roXMLList for the body if needed. The method then adds the passed item (which should be an roXMLElement tag
35 print a;"=";left(element.GetAttributes()[a], 20); if element.GetAttributes().IsNext() then print ", "
36 roXMLList Interfaces: ifList, ifEnum, ifArray, ifArrayGet, ifArraySet, ifXMLList The ifList interface provides the following: • GetHead() As D
37 The ifArray interface provides the following: • Peek() As Dynamic: Returns the last (highest index) array entry without removing it. • Pop() As
38 • GetNamedElements(a As String) As Object: Returns a new XMLList that contains all roXmlElements that match the name of the passed element. This
39 PRESENTATION AND WIDGET OBJECTS roAudioEventMx The roAudioPlayerMx object can generate roAudioEventMx messages with the following values: • 8 EV
40 roAudioOutput This object allows individual control of audio outputs on the player. Object Creation: The roAudioOutput object requires a single
41 • GetOutput() As String: Returns the string with which the roAudioOutput object was created. • SetAudioDelay(delay_in_milliseconds As Integer)
roAssetPoolFiles ...
42 roAudioPlayer An audio player is used to play back audio files using the generic ifMediaTransport interface. If the message port is set, the obje
43 • SetMultichannelAudioOutputs(array As Object) As Boolean: • SetAudioOutput(audio_output As Integer) As Boolean • SetAudioMode(audio_mode As
44 • SetChannelVolumesAux(channel_mask As Integer, volume As Integer) As Boolean • SetAudioStreamAux(stream_index As Integer) As Boolean A call t
45 audio_output values 0 – Analog audio 1 – USB audio 2 – Digital audio, stereo PCM 3 – Digital audio, raw AC3 4 – Onboard ana
46 set_volume: Volume functions as a percentage and therefore takes a value between 0-100. The volume value is clipped prior to use (i.e. SetVoume(1
47 audio.SetChannelVolumes(&H03, 65) ‘all channels to 65% Playing Multiple Audio Files Simultaneously Multiple MP3 files, as well as the audio
48 video.SetAudioOutput(3) video.PlayFile("video.mpg") audio=CreateObject("roAudioPlayer") audio.MapStereoOutpu
49 roAudioPlayerMx This object allows you to mix audio files, as well as HLS audio streams. Each roAudioPlayerMx object conatins two internal audio
50 • Overlay: The overlay specification of an audio track. Set the parameter value to 1 to fade down the main audio playlist while playing the audi
51 Example: The following example illustrates a simple crossfade between audio tracks. a = CreateObject("roAudioPlayerMx") track1 = Creat
roStreamEndEvent ...
52 • SetLoopMode(a As Boolean) As Boolean • GetPlaybackStatus() As Object The ifSetMessagePort interface provides the following: • SetPort(a As
53 • SetDecoderCount(a As Integer) As Boolean
54 roCanvasWidget This object composites background color, text, and images into a single rectangle, allowing you to layer images on a z-axis. Obje
55 o When this function is enabled, each call to SetLayer, ClearLayer, or Clear results in a redraw. If you need to change multiple layers, then yo
56 o font: Small/medium/large/huge o fontSize: A point size that is used directly when creating the font. If the value is set to 0, then the font
57 • QrCode (simple form): Contains the string to encode into the QR code. • QrCode (complex form): Contains an array of parameters for the QR cod
58 array.Push({ color: "5c5d5f" }) array.Push({ filename: "transparent-balls.png" }) array.Push(aa) aa2=CreateObject("roAs
59 cw.SetLayer(aa3, 3) cw.SetLayer(aa4, 4) cw.SetLayer(aa5, 5) cw.EnableAutoRedraw(1) cw.ClearLayer(0)
60 roClockWidget This object places a clock on the screen. It has no extra interface, only construction arguments. Interfaces: ifTextWidget, ifWidg
61 [CLOCK_TIME_AM] eng "AM" [CLOCK_TIME_PM] eng "PM" [CLOCK_DATE_SHORT_MONTH] eng "Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|
roSerialPort ...
62 // %Y Four digit year // Time format // // %H The hour using 24-hour clock (00 to 23) // %I The hour using 12-hour clock (01 to 12) // %k The h
63 roHtmlWidget This object embeds the WebKit HTML renderer. You can use multiple instances of roHtmlWidget at the same time. Object creation: Like
64 • SetZoomLevel(scale_factor as Float): Adjusts the scale factor for the displayed page (the default equals 1.0). • EnableSecurity(a As Boolean)
65 storage. Depending on database-specific attributes, you will only be able to set the size in units that are equal to the page size of the databas
66 • PostJSMessage(data As roAssociativeArray) As Boolean: Posts a collection of key:value pairs to the BSMessagePort JavaScript class (see the Jav
67 • load-finished: The WebKit has completed loading a page. • load-error: The WebKit has failed to load a page. The uri key identifies the failin
68 roImageBuffer This object allows you to access decoded image-file data. Object Creation: An roImageBuffer object is instantiated with an roImag
69 roImagePlayer This object displays static bitmap images on the video display. The simplest way to use roImagePlayer is to make calls to DisplayFi
70 • PreloadFile(image_filename As String) As Boolean: Loads the specified image file into an offscreen memory buffer. • PreloadFile(parameters As
71 • SetDefaultTransition(transition As Integer) As Boolean: Sets the transition to be used when the next image is displayed. The following are ava
5.0.x ...
72 o mirror_rot90: Mirrored 90 degree clockwise rotation o mirror_rot180: Mirrored 180 degree clockwise rotation o mirror_rot270: Mirrored 270 de
73 Roku> image filename.bmp 0 0 0 Roku> image filename.bmp 2 0 0 The following example script uses preloaded images to improve the UI speed
74 roImageWidget This object can be used in place of roImagePlayer in cases where the image is displayed within a rectangle. Using a roImageWidget c
75 a["MultiscreenWidth"] = 3 a["MultiscreenHeight"] = 2 a["MultiscreenX"] = 0 a["MultiscreenY"] = 0 i.Preloa
76 a["Filename"] = "test.JPG" a["Mode"] = 0 a["SourceX"] = 600 a["SourceY"] = 600 a["SourceWi
77 roRectangle This object is created with several parameters: CreateObject("roRectangle", x As Integer, y As Integer, width As Integer,
78 roShoutcastStream This object allows playback of shoutcast streams. Object Creation: The roShoutcastStream object is created with a URL object,
79 roShoutcastStreamEvent Interfaces: ifInt, ifSourceIdentity The ifInt interface provides the following: • GetInt() As Integer • SetInt(a As In
80 roTextField A text field represents an area of the screen that can contain arbitrary text. This feature is intended for presenting diagnostic and
81 • "Size"= An alternative to "CharWidth" and "CharHeight" for specifying either normal size text (0) or double-size
1 INTRODUCTION BrightSign players use a standardized library of BrightScript objects to expose functionality for public software development. To pub
82 As with any object that implements the ifStreamSend interface, a text field can be written to using the PRINT #textfield syntax. See the example
83 roTextWidget This object is used to display text on the screen. Object Creation: This object is created with several parameters. CreateObject(&
84 • array: An associative array that can include the following values: o "LineCount": The number of lines of text to show within the re
85 • PopStrings(number_of_string_to_pop As Integer) As Boolean: Pops strings off the front of the list (using "last in, first out" orderi
86 o offset: The offset (in pixels) of the display in the multiscreen array. For example, using an offset of 1920 in a two-screen array of 1920x108
87 The top 8 bits of the color value are "alpha," affecting both the foreground text color and the widget background color. Zero is equiva
88 roVideoEvent, roAudioEvent Video and audio events can have one of these integer values. They are declared as separate classes as they are likely
89 • SetData(a As Integer) Example: vp_msg_loop: msg=Wait(tiut, p) if type(msg)="roVideoEvent" then if debug then prin
90 roVideoInput This object allows playback of HDMI input or video provided by a video capture dongle. Note that the ifVideoInput methods do not app
91 • GetCurrentControlValue(control_name As String) As roAssociativeArray: Returns an associative array with 3 members: "Value," "Mi
Comments to this Manuals