commit 913c0a45e12f453dd0747a3eb5d5a3e91e24c8bb
parent fb8149a7614cd5dca2025988590999cffd068b02
Author: Brian C. Lane <bcl@brianlane.com>
Date:   Tue, 15 Nov 2022 17:16:22 -0800
Add clock and details text at the top of the screen
Diffstat:
2 files changed, 47 insertions(+), 4 deletions(-)
diff --git a/HMS/components/MainScene.brs b/HMS/components/MainScene.brs
@@ -5,6 +5,9 @@
 sub Init()
     print "MainScene->Init()"
     m.top.ObserveField("serverurl", "RunContentTask")
+    m.details = m.top.FindNode("details")
+
+    StartClock()
 
     url = RegRead("ServerURL")
     if url = invalid then
@@ -17,6 +20,38 @@ sub Init()
     SetupVideoPlayer()
 end sub
 
+sub StartClock()
+    m.clock = m.top.FindNode("clock")
+    m.clockTimer = m.top.FindNode("clockTimer")
+    m.clockTimer.ObserveField("fire", "UpdateClock")
+    m.clockTimer.control = "start"
+    UpdateClock()
+end sub
+
+sub UpdateClock()
+    now = CreateObject("roDateTime")
+    now.ToLocalTime()
+    hour = now.GetHours()
+    use_ampm = true
+    if use_ampm then
+        if hour < 12 then
+            ampm = " AM"
+        else
+            ampm = " PM"
+            if hour > 12 then
+                hour = hour - 12
+            end if
+        end if
+    end if
+    hour = tostr(hour)
+    minutes = now.GetMinutes()
+    if minutes < 10 then
+        minutes = "0"+tostr(minutes)
+    else
+        minutes = tostr(minutes)
+    end if
+    m.clock.text = now.GetWeekday()+" "+hour+":"+minutes+ampm
+end sub
 
 sub RunContentTask()
     print "MainScene->RunContentTask()"
@@ -56,6 +91,7 @@ sub OnCreateNextPanelIndex()
     print "MainScene->OnCreateNextPanelIndex()"
     print m.listPanel.createNextPanelIndex
     print m.categories[m.listPanel.createNextPanelIndex]
+    m.details.text = ""
     RunCategoryLoadTask(m.categories[m.listPanel.createNextPanelIndex])
 end sub
 
@@ -118,8 +154,11 @@ end sub
 sub OnPosterSelected()
     print "MainScene->OnPosterSelected()"
     print m.posterGrid.itemSelected
+    StartVideoPlayer(m.posterGrid.itemSelected)
+end sub
 
-    item = m.metadata[m.posterGrid.itemSelected]
+sub StartVideoPlayer(index as integer)
+    item = m.metadata[index]
     print item.ShortDescriptionLine1
 
     content = CreateObject("roSGNode", "ContentNode")
@@ -140,8 +179,7 @@ sub OnPosterFocused()
     print "MainScene->OnPosterFocused()"
     print m.posterGrid.itemFocused
     print m.metadata[m.posterGrid.itemFocused].ShortDescriptionLine1
-
-    ' TODO update something at the top with the full name of the video
+    m.details.text = m.categories[m.listPanel.createNextPanelIndex] + " | " + m.metadata[m.posterGrid.itemFocused].ShortDescriptionLine1
 end sub
 
 sub OnLabelListSelected()
@@ -233,6 +271,8 @@ function onKeyEvent(key as String, press as Boolean) as Boolean
             else
                 return false
             end if
+        else if key = "play"
+            StartVideoPlayer(m.posterGrid.itemFocused)
         end if
     end if
 end Function
diff --git a/HMS/components/MainScene.xml b/HMS/components/MainScene.xml
@@ -9,7 +9,10 @@
         <field id="categories" type="roArray" />
     </interface>
     <children>
-        <PanelSet id="panels" translation="[0, 0]" />
+        <Label id="details" height="88" width="1500" horizAlign="left" translation="[15, 15]" />
+        <Label id="clock" height="88" width="300" horizAlign="right" translation="[1610, 15]" />
+        <Timer id="clockTimer" repeat="true" duration="5" />
+        <PanelSet id="panels" translation="[-20, 0]" />
         <Video id="player" width="1920" height="1080" visible="false"/>
     </children>
 </component>