2022-04-24 03:49:42 +00:00
|
|
|
sub init()
|
|
|
|
m.rows = m.top.findNode("tvEpisodeRow")
|
|
|
|
m.tvListOptions = m.top.findNode("tvListOptions")
|
|
|
|
|
|
|
|
m.rows.observeField("doneLoading", "rowsDoneLoading")
|
|
|
|
end sub
|
|
|
|
|
|
|
|
sub setupRows()
|
|
|
|
objects = m.top.objects
|
|
|
|
m.rows.objects = objects
|
|
|
|
end sub
|
|
|
|
|
|
|
|
sub rowsDoneLoading()
|
|
|
|
m.top.doneLoading = true
|
|
|
|
end sub
|
|
|
|
|
|
|
|
sub SetUpAudioOptions(streams)
|
|
|
|
tracks = []
|
|
|
|
|
|
|
|
for i = 0 to streams.Count() - 1
|
|
|
|
if streams[i].Type = "Audio"
|
|
|
|
tracks.push({ "Title": streams[i].displayTitle, "Description": streams[i].Title, "Selected": m.top.objects.items[m.currentSelected].selectedAudioStreamIndex = i, "StreamIndex": i })
|
|
|
|
end if
|
|
|
|
end for
|
|
|
|
|
|
|
|
if tracks.count() > 1
|
|
|
|
options = {}
|
|
|
|
options.audios = tracks
|
|
|
|
m.tvListOptions.options = options
|
|
|
|
m.tvListOptions.visible = true
|
|
|
|
m.tvListOptions.setFocus(true)
|
|
|
|
end if
|
|
|
|
end sub
|
|
|
|
|
|
|
|
'
|
|
|
|
'Check if options updated and any reloading required
|
|
|
|
sub audioOptionsClosed()
|
2023-05-06 21:54:30 +00:00
|
|
|
if m.currentSelected <> invalid
|
|
|
|
' If the user opened the audio options, we report back even if they left the selection alone.
|
|
|
|
' Otherwise, the users' lang peference from the server will take over.
|
2023-05-12 12:43:14 +00:00
|
|
|
' To do this, we interpret anything other than "0" as the user opened the audio options.
|
2023-05-06 21:54:30 +00:00
|
|
|
m.top.objects.items[m.currentSelected].selectedAudioStreamIndex = m.tvListOptions.audioStreamIndex = 0 ? 1 : m.tvListOptions.audioStreamIndex
|
2022-04-24 03:49:42 +00:00
|
|
|
end if
|
|
|
|
end sub
|
|
|
|
|
|
|
|
function onKeyEvent(key as string, press as boolean) as boolean
|
|
|
|
if not press then return false
|
|
|
|
|
2022-04-26 12:01:53 +00:00
|
|
|
if key = "options" and m.rows.focusedChild <> invalid and m.rows.focusedChild.rowItemFocused <> invalid
|
2022-04-24 03:49:42 +00:00
|
|
|
m.currentSelected = m.rows.focusedChild.rowItemFocused[0]
|
|
|
|
mediaStreams = m.rows.objects.items[m.currentSelected].json.MediaStreams
|
|
|
|
SetUpAudioOptions(mediaStreams)
|
|
|
|
return true
|
2022-04-26 12:01:53 +00:00
|
|
|
else if m.tvListOptions.visible = true and key = "back" or key = "options"
|
2022-04-24 03:49:42 +00:00
|
|
|
m.tvListOptions.setFocus(false)
|
|
|
|
m.tvListOptions.visible = false
|
|
|
|
m.rows.setFocus(true)
|
|
|
|
audioOptionsClosed()
|
|
|
|
return true
|
|
|
|
else if key = "up" and m.rows.hasFocus() = false
|
|
|
|
m.rows.setFocus(true)
|
|
|
|
else if key = "down" and m.rows.hasFocus() = false
|
|
|
|
m.rows.setFocus(true)
|
|
|
|
end if
|
|
|
|
|
|
|
|
return false
|
|
|
|
end function
|