The Roku FAST Engine SDK is an comprehensive Electronic Program Guide (EPG) UI Component library designed for integration with Brightscript. It empowers developers to efficiently implement a feature-rich EPG experience, showcasing program and scheduling metadata. This SDK is dependent on the Roku Core SDK, ensuring a seamless integration of essential functionalities for an enhanced EPG interface.
Features
The dotstudioPRO Roku Fast Engine SDK excels in delivering a premier Electronic Program Guide (EPG) UI component, leveraging the capabilities of Roku. With a robust foundation in the Core SDK for efficient API data retrieval, this SDK offers a comprehensive set of features.
Key Features:
-
Now Next EPG Display Support: The Roku Fast Engine SDK seamlessly renders an Electronic Program Guide with a focus on the "Now | Next" paradigm, providing users with quick access to current and upcoming content.
-
Full EPG Display Support: Enjoy the flexibility of showcasing a complete Electronic Program Guide, offering a comprehensive overview of scheduled programming.
-
Callback Handling: The SDK skillfully manages necessary callbacks, ensuring smooth interactions and responsiveness within the application.
-
Lazy Loading for Enhanced Experience: The Roku Fast Engine SDK incorporates lazy loading of data, enhancing the user experience by loading content for a smoother and more responsive interface.
Requirements
Platform | Minimum Version | Status |
---|---|---|
Roku | 11.0+ | Fully Tested |
Installation
Utilize the commands below to effortlessly install the Roku FAST Engine SDK in your project:
git clone https://github.com/dotstudiopro/fast-engine-roku
Copy the fast-engine-roku/dotstudioPRO-fast-engine
folder into your channel so that the path to the folder is pkg:/components/dotstudioPRO-fast-engine
OR
Use Xcopy command for copy fast-engine-roku folder and put in Apps pkg:/components
folder Xcopy [source File Path] [destination File Path] /E /H /C /I.
How to Use
To add EpgComponent in your Roku Scene xml file:
After add EpgComponent in xml file provide below necessary inputs in Scene .brs file
sub Init()
m.timegridscreen = m.top.findNode("timegridscreen")
m.epgmodefull = false
config = {
translation:"[0,100]",
itemSize:"[1830,123]",
numRows:7,
duration:2000,
nowNextMode:m.epgmodefull,
nowNextHideAmPm:m.epgmodefull,
programNowNextTimeColor:"#EBEBEB",
programNowNextTimeFocusedColor:"#1D1D26",
nowBackgroundBitmapUri:"pkg:/images/backplate_now.9.png",
nextBackgroundBitmapUri :"pkg:/images/backplate_next.9.png",
channelInfoFocusable: true,
programBackgroundBitmapUri: "pkg:/images/programBG.9.png",
channelInfoBackgroundBitmapUri:"pkg:/images/channel_logo_.png",
focusBitmapUri:"pkg:/images/focus.9.png",
channelInfoComponentConfig:{
channelBackgroundRectangle:{
focusedUri:"pkg:/images/channel_backplate.9.png",
defaultUri:"pkg:/images/programBG.9.png"
}
}
}
dsconfig = {
totaldayscontent:2,
company_api_key:m.global.company_api_key ("get company_api_key from global variable file in source folder "appConfig.brs")
}
m.timegridscreen.CallFunc("setConfig",config,dsconfig)
m.timegridscreen.observefield("epgloaded", "screenLoad")
m.timegridscreen.ObserveField("rowchannelFocused", "onFocusedEpgChannel")
m.timegridscreen.ObserveField("rowprogramFocused", "onFocusedEpgProgram")
m.timegridscreen.ObserveField("rowItemSelected", "onSelectEpgChannelProgram")
m.timegridscreen.ObserveField("rowchannelInfoSelected", "onSelectEpgChannelInfo")
end sub
function screenLoad()
m.timegridscreen.visible = true
end function
Properties
The EPG Component necessitates the following instantiation options to be provided during initialization:
Key | Type | Description |
---|---|---|
m.epgmodefull | FullEPG / NowNext | To change EPG view mode / For NowNext set "true". |
epgloaded | Observer | Indicates EPG All Channels loaded to set observer. |
rowchannelFocused | Observer | Indicates the index of the focused channel when a program in the channel's row gains focus. |
rowprogramFocused | Observer | Indicates the index of the program in the currently focused channel row when the program gains focus. |
rowItemSelected | Observer | Indicates the index of the program in the currently focused channel row when the user selects a program. Response contains Array first index represents channel and the second index represent the product. |
rowchannelInfoSelected | Observer | Indicates the index of the selected channel when the user selects an item in the Channel Information column. |
Updated