Table of Contents
- Sleep(milliseconds as Integer) as Void
- Wait(timeout as Integer, port as Object) as Object
- GetInterface(object as Object, ifname as String) as Interface
- FindMemberFunction(object as Object, funName as String) As Interface
- UpTime(dummy as Integer) as Float
- RebootSystem() as Void
- ListDir(path as String) as Object
- ReadAsciiFile(filepath as String) as String
- WriteAsciiFile(filepath as String, text as String) as Boolean
- CopyFile(source as String, destination as String) as Boolean
- MoveFile(source as String, destination as String) as Boolean
- MatchFiles(path as String, pattern_in as String) as Object
- DeleteFile(file as String) as Boolean
- DeleteDirectory(dir as String) as Boolean
- CreateDirectory(dir as String) as Boolean
- FormatDrive(drive as String , fs_type as String) as Boolean
- StrToI(str as String) as Dynamic
- RunGarbageCollector() as Object
- ParseJson(jsonString as String) as Object
- FormatJson(json as Object, flags = 0 as Integer) as String
- Tr(source as String) as String
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 member.
Sleep(milliseconds as Integer) as Void
This function causes the script to pause for the specified time, without wasting CPU cycles. There are 1000 milliseconds in one second.
sleep(1000) ' sleep for 1 second sleep(200) ' sleep 2/10 of a second sleep(3000) ' sleep three seconds
Wait(timeout as Integer, port as Object) as Object
This function waits on objects that are "waitable" (those that have a MessagePort interface). Wait() returns the event object that was posted to the message port. If timeout is zero, "wait" will wait for ever. Otherwise, Wait will return after timeout milliseconds if no messages are received. In this case, Wait returns a type "invalid".
p = CreateObject("roMessagePort") s = CreateObject("roScreen") s.SetPort(p) msg = Wait(0, p) print Type(msg) ' e.g. roUniversalControlEvent print msg.GetInt() ' button number
GetInterface(object as Object, ifname as String) as Interface
Each BrightScript Component has one or more interfaces. This function returns a value of type "Interface".
Note that generally BrightScript Components allow you to skip the interface specification. In which case, the appropriate interface within the object is used. This works as long as the function names within the interfaces are unique.
FindMemberFunction(object as Object, funName as String) As Interface
Returns the interface from the object that provides the specified function, or invalid if not found.
Example:
print FindMemberFunction({}, "Count") '= <Interface: ifAssociativeArray>
UpTime(dummy as Integer) as Float
Returns the uptime of the system since the last reboot in seconds.
RebootSystem() as Void
Requests the system to perform a soft reboot. The Roku platform has disabled this feature.
ListDir(path as String) as Object
Returns a List object containing the contents of the directory path specified.
For example:
BrightScript> l=ListDir("pkg:/movies")
BrightScript> print l
test_movie_3.vob
test_movie_4.vob
test_movie_1.vob
test_movie_2.vob
ReadAsciiFile(filepath as String) as String
This function reads the specified file and returns the data as a string.
The file can be encoded as either UTF-8 (which includes the 7-bit ASCII subset) or UTF-16.
An empty string is returned if the file can not be read.
Example:
text=ReadAsciiFile("tmp:/config.txt")
WriteAsciiFile(filepath as String, text as String) as Boolean
This function writes the specified string data to a file at the specified location.
The string data is written as UTF-8 encoded (which includes the 7-bit ASCII subset).
The function returns true if the file was successfully written.
For example:
WriteAsciiFile("tmp:/config.txt", "the text to write")
CopyFile(source as String, destination as String) as Boolean
Make a copy of a file.
MoveFile(source as String, destination as String) as Boolean
Rename a file.
MatchFiles(path as String, pattern_in as String) as Object
Search a directory for filenames that match a certain pattern. Pattern is a wildmat expression. Returns a List object.
This function checks all the files in the directory specified against the pattern specified and places any matches in the returned roList.
The returned list contains only the part of the filename that is matched against the pattern not the full path.
The pattern may contain certain special characters:
- A '?' matches any single character.
- A '*' matches zero or more arbitrary characters.
- The character class '[...]' matches any single character specified within the brackets. The closing bracket is treated as a member of the character class if it immediately follows the opening bracket. i.e. '[]]' matches a single close bracket. Within the class '-' can be used to specify a range unless it is the first or last character. e.g. '[A-Cf-h]' is equivalent to '[ABCfgh]'.
- A character class can be negated by specifying '^' as the first character. To match a literal '^' place it elsewhere within the class.
- The characters '?', '*' and '[' lose their special meaning if preceded by a single '\'. A single '\' can be matched as '\\'.
Example:
files = MatchFiles(".", "*.mpg")
DeleteFile(file as String) as Boolean
Delete the specified file.
DeleteDirectory(dir as String) as Boolean
Deletes the specified directory. It is only possible to delete an empty directory.
CreateDirectory(dir as String) as Boolean
Creates the specified Directory. Only one directory can be created at a time
FormatDrive(drive as String , fs_type as String) as Boolean
Formats a specified drive using the specified filesystem.
StrToI(str as String) as Dynamic
Return the integer value of the string, or 0 if nothing is parsed.
RunGarbageCollector() as Object
This function runs the garbage collector. It returns and Associative Array with some statistics regarding the garbage collection.
See the Garbage Collection section of this manual for more detail. You don't normally need to call this function.
Example:
BrightScript Debugger> a=[]
BrightScript Debugger> a[0]=a
BrightScript Debugger> a=invalid
BrightScript Debugger> print RunGarbageCollector()
COUNT: 3
ORPHANED: 1
ROOT: 2
ParseJson(jsonString as String) as Object
This function will parse a string formatted according to RFC4627 and return an equivalent BrightScript object (consisting of booleans, integer and floating point numbers, strings, roArray, and roAssociativeArray objects). If the string is not syntactically correct, Invalid will be returned. A few other things to note:
- Any roAssociativeArray objects in the returned objects will be case sensitive.
- An error will be returned if arrays/associative arrays are nested more than 256 levels deep.
{ "photos" : [ { "title" : "View from the hotel", "url" : "http://example.com/images/00012.jpg" }, { "title" : "Relaxing at the beach", "url" : "http://example.com/images/00222.jpg" }, { "title" : "Flat tire", "url" : "http://example.com/images/00314.jpg" } ] }
You could process it with something like the following:
searchRequest = CreateObject("roUrlTransfer") searchRequest.SetURL("http://api.example.com/services/rest/getPhotos") response = ParseJson(searchRequest.GetToString()) For Each photo In response.photos GetImage(photo.title, photo.url) End For
FormatJson(json as Object, flags = 0 as Integer) as String
Formats a supported data type as a JSON string.
Data types supported are booleans, integer and floating point numbers, strings, roArray, and roAssociativeArray objects.
An error will be returned if arrays/associative arrays are nested more than 256 levels deep.
If an error occurs an empty string will be returned.
Normally non-ASCII characters are escaped in the output string as "\uXXXX" where XXXX is the hexadecimal representation of the Unicode character value. If flags=1, non-ASCII characters are not escaped.
Tr(source as String) as String
Translates the source string into the language of the current locale. The function looks for a translations.xml file in the XLIFF format in the pkg:/locale subdirectory named for the current locale (see ifDeviceInfo.GetCurrentLocale for the list of currently-supported locales). If the translations.xml file exists for the current locale, and contains the source string with a translated string, the function returns the translated string. Otherwise, the function returns the original source string.
In some cases you may want to include a placeholder marker in a localizable string that gets dynamically substituted with a value at runtime.
One way to accomplish that is to use the Replace method on the string value returned from the Tr() lookup.
For example:
text = Tr("Video will start in %1 seconds").Replace("%1", numSeconds.ToStr())