Text to speech for season posters, season episoded and extras (cast and crew)
This commit is contained in:
parent
e9509a68c5
commit
9dffe0f769
|
@ -5,6 +5,8 @@ sub init()
|
|||
|
||||
m.backdrop = m.top.findNode("backdrop")
|
||||
|
||||
m.deviceInfo = CreateObject("roDeviceInfo")
|
||||
|
||||
' Randmomise the background colors
|
||||
posterBackgrounds = m.global.constants.poster_bg_pallet
|
||||
m.backdrop.color = posterBackgrounds[rnd(posterBackgrounds.count()) - 1]
|
||||
|
@ -68,6 +70,13 @@ sub focusChanged()
|
|||
m.staticTitle.visible = false
|
||||
m.title.visible = true
|
||||
|
||||
' text to speech for accessibility
|
||||
if m.deviceInfo.IsAudioGuideEnabled() = true
|
||||
txt2Speech = CreateObject("roTextToSpeech")
|
||||
txt2Speech.Flush()
|
||||
txt2Speech.Say(m.title.text)
|
||||
end if
|
||||
|
||||
else
|
||||
m.title.repeatCount = 0
|
||||
m.staticTitle.visible = true
|
||||
|
|
31
components/extras/ExtrasItem.brs
Normal file
31
components/extras/ExtrasItem.brs
Normal file
|
@ -0,0 +1,31 @@
|
|||
sub init()
|
||||
m.posterImg = m.top.findNode("posterImg")
|
||||
m.name = m.top.findNode("pLabel")
|
||||
m.role = m.top.findNode("subTitle")
|
||||
|
||||
m.deviceInfo = CreateObject("roDeviceInfo")
|
||||
end sub
|
||||
|
||||
sub showContent()
|
||||
if m.top.itemContent <> invalid
|
||||
cont = m.top.itemContent
|
||||
m.name.text = cont.labelText
|
||||
m.name.maxWidth = cont.imageWidth
|
||||
m.role.Width = cont.imageWidth
|
||||
m.posterImg.uri = cont.posterUrl
|
||||
m.posterImg.width = cont.imageWidth
|
||||
m.role.Text = cont.subTitle
|
||||
else
|
||||
m.role.text = "Who??"
|
||||
m.posterImg.uri = "pkg:/images/baseline_person_white_48dp.png"
|
||||
end if
|
||||
end sub
|
||||
|
||||
sub focusChanged()
|
||||
if m.deviceInfo.IsAudioGuideEnabled() = true
|
||||
txt2Speech = CreateObject("roTextToSpeech")
|
||||
txt2Speech.Flush()
|
||||
txt2Speech.Say(m.name.text)
|
||||
txt2Speech.Say(m.role.text)
|
||||
end if
|
||||
end sub
|
|
@ -2,31 +2,9 @@
|
|||
<component name="ExtrasItem" extends="JFGroup">
|
||||
<interface>
|
||||
<field id="itemContent" type="node" onChange="showContent" />
|
||||
<field id="itemHasFocus" type="boolean" onChange="focusChanged" />
|
||||
</interface>
|
||||
<script type="text/brightscript">
|
||||
<![CDATA[
|
||||
function init() as void
|
||||
m.posterImg = m.top.findNode("posterImg")
|
||||
m.name = m.top.findNode("pLabel")
|
||||
m.role = m.top.findNode("subTitle")
|
||||
end function
|
||||
|
||||
sub showContent()
|
||||
if m.top.itemContent <> Invalid
|
||||
cont = m.top.itemContent
|
||||
m.name.text = cont.labelText
|
||||
m.name.maxWidth = cont.imageWidth
|
||||
m.role.Width = cont.imageWidth
|
||||
m.posterImg.uri = cont.posterUrl
|
||||
m.posterImg.width = cont.imageWidth
|
||||
m.role.Text = cont.subTitle
|
||||
else
|
||||
m.role.text = "Who??"
|
||||
m.posterImg.uri = "pkg:/images/baseline_person_white_48dp.png"
|
||||
end if
|
||||
end sub
|
||||
]]>
|
||||
</script>
|
||||
<script type="text/brightscript" uri="ExtrasItem.brs" />
|
||||
<children>
|
||||
<LayoutGroup layoutDirection="vert" >
|
||||
<Poster id="posterImg" width="234" height="300" translation="[8,243]" failedBitmapUri="pkg:/images/baseline_person_white_48dp.png" />
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
sub init()
|
||||
m.title = m.top.findNode("title")
|
||||
m.title.text = tr("Loading...")
|
||||
m.overview = m.top.findNode("overview")
|
||||
|
||||
m.deviceInfo = CreateObject("roDeviceInfo")
|
||||
end sub
|
||||
|
||||
sub itemContentChanged()
|
||||
|
@ -11,9 +14,9 @@ sub itemContentChanged()
|
|||
else
|
||||
indexNumber = ""
|
||||
end if
|
||||
m.top.findNode("title").text = indexNumber + item.title
|
||||
m.title.text = indexNumber + item.title
|
||||
m.top.findNode("poster").uri = item.posterURL
|
||||
m.top.findNode("overview").text = item.overview
|
||||
m.overview.text = item.overview
|
||||
|
||||
if type(itemData.RunTimeTicks) = "LongInteger"
|
||||
m.top.findNode("runtime").text = stri(getRuntime()).trim() + " mins"
|
||||
|
@ -65,3 +68,15 @@ function getEndTime() as string
|
|||
|
||||
return formatTime(date)
|
||||
end function
|
||||
|
||||
sub focusChanged()
|
||||
if m.top.itemHasFocus = true
|
||||
' text to speech for accessibility
|
||||
if m.deviceInfo.IsAudioGuideEnabled() = true
|
||||
txt2Speech = CreateObject("roTextToSpeech")
|
||||
txt2Speech.Flush()
|
||||
txt2Speech.Say(m.title.text)
|
||||
txt2Speech.Say(m.overview.text)
|
||||
end if
|
||||
end if
|
||||
end sub
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
</children>
|
||||
<interface>
|
||||
<field id="itemContent" type="node" onChange="itemContentChanged"/>
|
||||
<field id="itemHasFocus" type="boolean" onChange="focusChanged" />
|
||||
</interface>
|
||||
<script type="text/brightscript" uri="TVListDetails.brs" />
|
||||
<script type="text/brightscript" uri="pkg:/source/utils/misc.brs" />
|
||||
|
|
|
@ -135,17 +135,22 @@ function round(f as float) as integer
|
|||
end function
|
||||
|
||||
function onKeyEvent(key as string, press as boolean) as boolean
|
||||
if not press then return false
|
||||
|
||||
overview = m.top.findNode("overview")
|
||||
topGrp = m.top.findNode("seasons")
|
||||
bottomGrp = m.top.findNode("extrasGrid")
|
||||
|
||||
|
||||
if key = "down" and topGrp.isinFocusChain()
|
||||
if key = "down" and overview.hasFocus()
|
||||
topGrp.setFocus(true)
|
||||
return true
|
||||
else if key = "down" and topGrp.hasFocus()
|
||||
bottomGrp.setFocus(true)
|
||||
m.top.findNode("VertSlider").reverse = false
|
||||
m.top.findNode("extrasFader").reverse = false
|
||||
m.top.findNode("pplAnime").control = "start"
|
||||
return true
|
||||
else if key = "up" and bottomGrp.isinFocusChain()
|
||||
else if key = "up" and bottomGrp.hasFocus()
|
||||
if bottomGrp.itemFocused = 0
|
||||
m.top.findNode("VertSlider").reverse = true
|
||||
m.top.findNode("extrasFader").reverse = true
|
||||
|
@ -153,6 +158,10 @@ function onKeyEvent(key as string, press as boolean) as boolean
|
|||
topGrp.setFocus(true)
|
||||
return true
|
||||
end if
|
||||
else if key = "up" and topGrp.hasFocus()
|
||||
overview.setFocus(true)
|
||||
return true
|
||||
end if
|
||||
|
||||
return false
|
||||
end function
|
||||
|
|
Loading…
Reference in New Issue
Block a user