I am using the videoplayer example and I have successfully created a channel up to the point where I had two categories with one leaf each, and I had another "special category" that was an About Us page with some paragraph text. As soon as I created a second category leaf, it gave me errors on the Debugger:
BrightScript Debugger> ------ Running ------
created feed connection for https://s3.amazonaws.com/select-broadcasting/roku/UE
A/XML/categories1.xml
url: https://s3.amazonaws.com/select-broadcasting/roku/UEA/XML/categories1.xml
Took: 27ms
testing-dean
Current Function:
105: Function initCategoryList() As Void
106:
107: conn = InitCategoryFeedConnection()
108:
109: m.Categories = conn.LoadCategoryFeed(conn)
110: m.Categories.Kids.Push({ Type: "About Us", ShortDescriptionLine1: "Abou
t Us", ShortDescriptionLine2: "Learn More about Theresa Garcia Ministry", HDPost
erUrl: "http://selectbroadcasting.org/roku/examples/source/SRBS/images/about-us-
HD.png", SDPosterUrl: "http://selectbroadcasting.org/roku/examples/source/SRBS/i
mages/about-us-SD.png" })
111: m.CategoryNames = conn.GetCategoryNames(m.Categories)
112:
113: End Function
'Dot' Operator attempted with invalid BrightScript Component or interface refere
nce. (runtime error &hec) in ...pkg:/source/appHomeScreen.brs(110)
110: m.Categories.Kids.Push({ Type: "About Us", ShortDescriptionLine1: "Abou
t Us", ShortDescriptionLine2: "Learn More about Theresa Garcia Ministry", HDPost
erUrl: "http://selectbroadcasting.org/roku/examples/source/SRBS/images/about-us-
HD.png", SDPosterUrl: "http://selectbroadcasting.org/roku/examples/source/SRBS/i
mages/about-us-SD.png" })
Backtrace:
Function initcategorylist() As
file/line: /tmp/plugin/JCAAAAOJB8...pkg:/source/appHomeScreen.brs(110)
Function showhomescreen(screen As ) As Integer
file/line: /tmp/plugin/JCAAAAOJB8...pkg:/source/appHomeScreen.brs(35)
Function main() As
file/line: /tmp/plugin/JCAAAAOJB8iu/pkg:/source/appMain.brs(20)
Local Variables:
global &h0020 rotINTERFACE:ifGlobal
m &h0010 bsc:roAssociativeArray, refcnt=4
conn &h0010 bsc:roAssociativeArray, refcnt=1
BrightScript Debugger>
My HomeScreen.brs is setup this way:
Function preShowHomeScreen(breadA=invalid, breadB=invalid) As Object
if validateParam(breadA, "roString", "preShowHomeScreen", true) = false return -1
if validateParam(breadA, "roString", "preShowHomeScreen", true) = false return -1
port=CreateObject("roMessagePort")
screen = CreateObject("roPosterScreen")
screen.SetMessagePort(port)
if breadA<>invalid and breadB<>invalid then
screen.SetBreadcrumbText(breadA, breadB)
end if
screen.SetListStyle("flat-category")
screen.setAdDisplayMode("scale-to-fit")
return screen
End Function
'******************************************************
'** Display the home screen and wait for events from
'** the screen. The screen will show retreiving while
'** we fetch and parse the feeds for the game posters
'******************************************************
Function showHomeScreen(screen) As Integer
if validateParam(screen, "roPosterScreen", "showHomeScreen") = false return -1
initCategoryList()
screen.SetContentList(m.Categories.Kids)
screen.SetFocusedListItem(0)
screen.Show()
while true
msg = wait(0, screen.GetMessagePort())
if type(msg) = "roPosterScreenEvent" then
print "showHomeScreen | msg = "; msg.GetMessage() " | index = "; msg.GetIndex()
if msg.isListFocused() then
print "list focused | index = "; msg.GetIndex(); " | category = "; m.curCategory
else if msg.isListItemSelected() then
print "list item selected | index = "; msg.GetIndex()
kid = m.Categories.Kids[msg.GetIndex()]
if kid.type = "About Us" then
ShowParagraphScreen()
else
displayCategoryPosterScreen(kid)
end if
else if msg.isScreenClosed() then
return -1
end if
end If
end while
return 0
End Function
'**********************************************************
'** When a poster on the home screen is selected, we call
'** this function passing an associative array with the
'** data for the selected show. This data should be
'** sufficient for the show detail (springboard) to display
'**********************************************************
Function displayCategoryPosterScreen(category As Object) As Dynamic
if validateParam(category, "roAssociativeArray", "displayCategoryPosterScreen") = false return -1
screen = preShowPosterScreen(category.Title, "")
showPosterScreen(screen, category)
return 0
End Function
'**********************************************************
'** Special categories can be used to have categories that
'** don't correspond to the content hierarchy, but are
'** managed from the server by data from the feed. In these
'** cases we might show a different type of screen other
'** than a poster screen of content. For example, a special
'** category could be search, music, options or similar.
'**********************************************************
Function displaySpecialCategoryScreen() As Dynamic
if validateParam(category, "roAssociativeArray", "displayCategoryPosterScreen") = false return -1
screen = preShowPosterScreen(category.Title, "")
showPosterScreen(screen, category)
return 0
End Function
'************************************************************
'** initialize the category tree. We fetch a category list
'** from the server, parse it into a hierarchy of nodes and
'** then use this to build the home screen and pass to child
'** screen in the heirarchy. Each node terminates at a list
'** of content for the sub-category describing individual videos
'************************************************************
Function initCategoryList() As Void
conn = InitCategoryFeedConnection()
m.Categories = conn.LoadCategoryFeed(conn)
m.Categories.Kids.Push({ Type: "About Us", ShortDescriptionLine1: "About Us", ShortDescriptionLine2: "Learn More about Theresa Garcia Ministry", HDPosterUrl: "http://selectbroadcasting.org/roku/examples/source/SRBS/images/about-us-HD.png", SDPosterUrl: "http://selectbroadcasting.org/roku/examples/source/SRBS/images/about-us-SD.png" })
m.CategoryNames = conn.GetCategoryNames(m.Categories)
End Function
Does anyone have any insight as to what might be happening here.
Thanks!
Dean