Roku Fast Engine SDK

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:
Roku-EPG-Code.png

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