This seems to be a common request for people starting out - the videoplayer example app includes multiple levels of categories and a lot of people want to start with only one level of categories. I just ran through it and this will get you started, how to modify the example videoplayer to remove the category leafs:
in the xml folder, change categories.xml to be like this, each "category" will now include a "feed":
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<categories>
<!-- banner_ad: optional element which displays an at the top level category screen -->
<banner_ad sd_img="http://rokudev.roku.com/rokudev/examples/videoplayer/images/missing.png" hd_img="http://rokudev.roku.com/rokudev/examples/videoplayer/images/missing.png"/>
<category title="Technology" description="TED Talks on Technology" sd_img="http://rokudev.roku.com/rokudev/examples/videoplayer/images/TED_Technology.png" hd_img="http://rokudev.roku.com/rokudev/examples/videoplayer/images/TED_Technology.png" feed="http://rokudev.roku.com/rokudev/examples/videoplayer/xml/themind.xml"/>
<category title="Entertainment" description="TED Talks on Entertainment" sd_img="http://rokudev.roku.com/rokudev/examples/videoplayer/images/TED_Entertainment.png" hd_img="http://rokudev.roku.com/rokudev/examples/videoplayer/images/TED_Entertainment.png" feed="http://rokudev.roku.com/rokudev/examples/videoplayer/xml/music.xml" />
<category title="Design" description="TED Talks on Design" sd_img="http://rokudev.roku.com/rokudev/examples/videoplayer/images/TED_Design.png" hd_img="http://rokudev.roku.com/rokudev/examples/videoplayer/images/TED_Design.png" feed="http://rokudev.roku.com/rokudev/examples/videoplayer/xml/creativity.xml"/>
</categories>
now put the categories.xml file on a web server your roku can access. (In my case I tested with a local web server on the LAN ip address 192.168.0.155)
update categoryFeed.brs as follows, use your own server address in place of 192.168.0.155
'conn.UrlPrefix = "http://rokudev.roku.com/rokudev/examples/videoplayer/xml"
conn.UrlPrefix = "http://192.168.0.155"
next make the following change / addition to categoryFeed.brs, change
o.HDPosterURL = xml@hd_img
to this
o.HDPosterURL = xml@hd_img
o.Feed = xml@feed
and also in CategoryFeed.brs change this
kid.HDPosterURL = xml@hd_img
o.AddKid(kid)
to
kid.HDPosterURL = xml@hd_img
kid.Feed = e@feed
o.AddKid(kid)
in appDetailSceen.brs Replace:
Function preShowDetailScreen(breadA=invalid, breadB=invalid) As Object
port=CreateObject("roMessagePort")
screen = CreateObject("roSpringboardScreen")
screen.SetDescriptionStyle("video")
screen.SetMessagePort(port)
if breadA<>invalid and breadB<>invalid then
screen.SetBreadcrumbText(breadA, breadB)
end if
with
Function preShowDetailScreen(breadA=invalid) As Object
port=CreateObject("roMessagePort")
screen = CreateObject("roSpringboardScreen")
screen.SetDescriptionStyle("video")
screen.SetMessagePort(port)
in appPosterScreen.brs change
screen = preShowDetailScreen(category.Title, category.kids[m.curCategory].Title)
showIndex = showDetailScreen(screen, shows, showIndex)
to
'screen = preShowDetailScreen(category.Title, category.kids[m.curCategory].Title)
screen = preShowDetailScreen(category.Title)
showIndex = showDetailScreen(screen, shows, showIndex)
and also in appPosterScreen.brs change this
categoryList = CreateObject("roArray", 100, true)
for each subCategory in topCategory.Kids
categoryList.Push(subcategory.Title)
next
return categoryList
to this
categoryList = CreateObject("roArray", 100, true)
categoryList.Push(topCategory)
return categoryList
and also in appPosterScreen.brs change this
conn = InitShowFeedConnection(category.kids[item])
to this
conn = InitShowFeedConnection(category)
that should do it - zip up images, source, manifest and Makefile and you should now have a videoplayer with only one level of categories.
aspiring