HMS

Home Media Server for Roku Players
git clone https://www.brianlane.com/git/HMS
Log | Files | Refs | README | LICENSE

commit d34dca55b42e78baadcb141977e7533f134a3e36
parent 10a751ba8ca912a2d5f3b55394b6057c67fe86c9
Author: Brian C. Lane <bcl@brianlane.com>
Date:   Sun, 24 Oct 2010 14:37:48 -0700

Basic category screen display is running.

Diffstat:
MHMS/source/appDisplayDirectory.brs | 52+++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 47 insertions(+), 5 deletions(-)

diff --git a/HMS/source/appDisplayDirectory.brs b/HMS/source/appDisplayDirectory.brs @@ -41,10 +41,14 @@ Sub displayDirectory( url ) As Void return LCase(k[0]) end function) - for each f in displayList - print f[0] - print f[1] - end for +' for each f in displayList +' print f[0] +' print f[1] +' end for + if dirType = 0 then + ret = showCategories( displayList ) + end if + End Sub '****************************************************** @@ -58,7 +62,7 @@ Sub displayFiles( files As Object, fileTypes As Object, dirs=false As Boolean ) for each f in files ' This expects the path to have a system volume at the start p = CreateObject("roPath", "pkg:/" + f) - if p.IsValid() then + if p.IsValid() and f.Left(1) <> "." then fileType = fileTypes[p.Split().extension.mid(1)] if (dirs and f.Right(1) = "/") or fileType = true then list.push([f, p.Split()]) @@ -69,3 +73,41 @@ Sub displayFiles( files As Object, fileTypes As Object, dirs=false As Boolean ) return list End Sub +'****************************************************** +'** Display a flat-category poster screen of items +'** return the one selected by the user or nil? +'****************************************************** +Sub showCategories( files As Object ) As Object + screen = CreateObject("roPosterScreen") + screen.SetBreadcrumbText("bc-1", "bc-2") + screen.SetMessagePort(m.port) + screen.SetListStyle("flat-category") + screen.SetListDisplayMode("zoom-to-fill") + + list = CreateObject("roArray", files.Count(), true) + for each f in files + print f + + o = CreateObject("roAssociativeArray") + o.ContentType = "episode" + o.ShortDescriptionLine1 = f[1]["basename"] + + print o + list.Push(o) + end for + + screen.SetContentList(list) + screen.Show() + + done = false + while not done + msg = wait(0, m.port) + print msg + if msg = invalid or msg.isScreenClosed() then + return -1 + else if msg.isListItemSelected() then + print "msg: ";msg.GetMessage();" idx: ";msg.GetIndex() + end if + end while +End Sub +