mirror of
https://github.com/jellyfin/jellyfin-roku.git
synced 2024-11-23 06:09:41 +00:00
Store release issues (#180)
* Remove TrackerTask * Change deprecated BookmarkPosition to PlayStart * Accept (print & ignore) roInput commands * Updated icon image sizes * Added InputData Task (Not hooked up) * Added signal beacons for Roku Performance Measuring * Reverting ineffective roInput code * Manually recreated changed channel poster images * Use app_loaded global variable to control when performance beacons are sent * Sorting missed performance signal beacon
This commit is contained in:
parent
ddae9b5862
commit
b313d57515
4
app.mk
4
app.mk
@ -181,8 +181,8 @@ get_images:
|
||||
|
||||
echo "Creating image files"
|
||||
@convert -background "#000b25" -gravity center -scale 535x400 -extent 540x405 $(BANNER_SOURCE) $(OUTPUT_DIR)/channel-poster_fhd.png
|
||||
@convert -background "#000b25" -gravity center -scale 275x205 -extent 280x210 $(BANNER_SOURCE) $(OUTPUT_DIR)/channel-poster_hd.png
|
||||
@convert -background "#000b25" -gravity center -scale 182x135 -extent 187x140 $(BANNER_SOURCE) $(OUTPUT_DIR)/channel-poster_sd.png
|
||||
@convert -background "#000b25" -gravity center -scale 275x205 -extent 336x210 $(BANNER_SOURCE) $(OUTPUT_DIR)/channel-poster_hd.png
|
||||
@convert -background "#000b25" -gravity center -scale 182x135 -extent 246x140 $(BANNER_SOURCE) $(OUTPUT_DIR)/channel-poster_sd.png
|
||||
|
||||
@convert -background none -gravity center -scale 1000x48 -extent 180x48 $(BANNER_SOURCE) $(OUTPUT_DIR)/logo.png
|
||||
|
||||
|
33
components/InputTask.brs
Normal file
33
components/InputTask.brs
Normal file
@ -0,0 +1,33 @@
|
||||
Sub Init()
|
||||
m.top.functionName = "listenInput"
|
||||
End Sub
|
||||
|
||||
function ListenInput()
|
||||
port=createobject("romessageport")
|
||||
InputObject=createobject("roInput")
|
||||
InputObject.setmessageport(port)
|
||||
|
||||
while true
|
||||
msg=port.waitmessage(500)
|
||||
if type(msg)="roInputEvent" then
|
||||
print "INPUT EVENT!"
|
||||
if msg.isInput()
|
||||
inputData = msg.getInfo()
|
||||
'print inputData'
|
||||
for each item in inputData
|
||||
print item +": " inputData[item]
|
||||
end for
|
||||
|
||||
' pass the deeplink to UI
|
||||
if inputData.DoesExist("mediaType") and inputData.DoesExist("contentID")
|
||||
deeplink = {
|
||||
id: inputData.contentID
|
||||
type: inputData.mediaType
|
||||
}
|
||||
print "got input deeplink= "; deeplink
|
||||
m.top.inputData = deeplink
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
end while
|
||||
end function
|
9
components/InputTask.xml
Normal file
9
components/InputTask.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<component name="InputTask" extends="Task">
|
||||
<interface>
|
||||
<field id="inputData" type="assocarray" />
|
||||
</interface>
|
||||
|
||||
<script type="text/brightscript" uri="InputTask.brs" />
|
||||
</component>
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,4 @@
|
||||
sub init()
|
||||
m.tracker=m.top.createChild("TrackerTask")
|
||||
m.top.setFocus(true)
|
||||
end sub
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
sub init()
|
||||
m.tracker=m.top.createChild("TrackerTask")
|
||||
m.top.overhangTitle = "Home"
|
||||
end sub
|
||||
|
||||
|
@ -10,6 +10,8 @@ sub init()
|
||||
m.top.rowLabelOffset = [0, 20]
|
||||
m.top.showRowCounter = [true]
|
||||
|
||||
m.libariesToLoad = 0
|
||||
|
||||
updateSize()
|
||||
|
||||
m.top.setfocus(true)
|
||||
@ -168,6 +170,7 @@ function updateNextUpItems()
|
||||
|
||||
loadLatest.observeField("content", "updateLatestItems")
|
||||
loadLatest.control = "RUN"
|
||||
m.libariesToLoad += 1
|
||||
end if
|
||||
end for
|
||||
end function
|
||||
@ -221,6 +224,12 @@ function updateLatestItems(msg)
|
||||
homeRows.replaceChild(row, rowIndex)
|
||||
end if
|
||||
end if
|
||||
|
||||
m.libariesToLoad -= 1
|
||||
if m.libariesToLoad = 0 and m.global.app_loaded = false then
|
||||
m.top.signalBeacon("AppLaunchComplete") ' Roku Performance monitoring
|
||||
m.global.app_loaded = true
|
||||
end if
|
||||
end function
|
||||
|
||||
function getRowIndex(rowTitle as string)
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 10 KiB |
Binary file not shown.
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 6.5 KiB |
2
manifest
2
manifest
@ -20,3 +20,5 @@ ui_resolutions=fhd
|
||||
|
||||
screensaver_private=0
|
||||
screensaver_title=Jellyfin
|
||||
|
||||
supports_input_launch=1
|
@ -10,6 +10,10 @@ sub Main()
|
||||
m.scene = m.screen.CreateScene("JFScene")
|
||||
m.screen.show()
|
||||
|
||||
' Set any initial Global Variables
|
||||
m.global = m.screen.getGlobalNode()
|
||||
m.global.addFields( {app_loaded: false} )
|
||||
|
||||
m.overhang = CreateObject("roSGNode", "JFOverhang")
|
||||
m.scene.insertChild(m.overhang, 0)
|
||||
|
||||
@ -32,8 +36,9 @@ sub Main()
|
||||
m.scene.observeField("optionsPressed", m.port)
|
||||
m.scene.observeField("mutePressed", m.port)
|
||||
|
||||
m.device = CreateObject("roDeviceInfo")
|
||||
m.device.SetMessagePort(m.port)
|
||||
' Handle input messages
|
||||
input = CreateObject("roInput")
|
||||
input.SetMessagePort(m.port)
|
||||
|
||||
' This is the core logic loop. Mostly for transitioning between scenes
|
||||
' This now only references m. fields so could be placed anywhere, in theory
|
||||
@ -378,7 +383,9 @@ function LoginFlow(startOver = false as boolean)
|
||||
start_login:
|
||||
if get_setting("server") = invalid or ServerInfo() = invalid or startOver = true then
|
||||
print "Get server details"
|
||||
SendPerformanceBeacon("AppDialogInitiate") ' Roku Performance monitoring - Dialog Starting
|
||||
serverSelection = CreateServerGroup()
|
||||
SendPerformanceBeacon("AppDialogComplete") ' Roku Performance monitoring - Dialog Closed
|
||||
if serverSelection = "backPressed" then
|
||||
print "backPressed"
|
||||
wipe_groups()
|
||||
@ -387,6 +394,7 @@ function LoginFlow(startOver = false as boolean)
|
||||
end if
|
||||
|
||||
if get_setting("active_user") = invalid then
|
||||
SendPerformanceBeacon("AppDialogInitiate") ' Roku Performance monitoring - Dialog Starting
|
||||
publicUsers = GetPublicUsers()
|
||||
if publicUsers.count() then
|
||||
publicUsersNodes = []
|
||||
@ -402,12 +410,14 @@ function LoginFlow(startOver = false as boolean)
|
||||
userSelected = CreateUserSelectGroup(publicUsersNodes)
|
||||
m.scene.focusedChild.visible = false
|
||||
if userSelected = "backPressed" then
|
||||
SendPerformanceBeacon("AppDialogComplete") ' Roku Performance monitoring - Dialog Closed
|
||||
return LoginFlow(true)
|
||||
else
|
||||
'Try to login without password. If the token is valid, we're done
|
||||
get_token(userSelected, "")
|
||||
if get_setting("active_user") <> invalid then
|
||||
m.user = AboutMe()
|
||||
SendPerformanceBeacon("AppDialogComplete") ' Roku Performance monitoring - Dialog Closed
|
||||
return true
|
||||
end if
|
||||
end if
|
||||
@ -415,6 +425,7 @@ function LoginFlow(startOver = false as boolean)
|
||||
userSelected = ""
|
||||
end if
|
||||
passwordEntry = CreateSigninGroup(userSelected)
|
||||
SendPerformanceBeacon("AppDialogComplete") ' Roku Performance monitoring - Dialog Closed
|
||||
if passwordEntry = "backPressed" then
|
||||
m.scene.focusedChild.visible = false
|
||||
return LoginFlow(true)
|
||||
@ -491,3 +502,10 @@ sub RemoveCurrentGroup()
|
||||
end if
|
||||
group.visible = true
|
||||
end sub
|
||||
|
||||
' Roku Performance monitoring
|
||||
sub SendPerformanceBeacon(signalName as string)
|
||||
if m.global.app_loaded = false then
|
||||
m.scene.signalBeacon(signalName)
|
||||
end if
|
||||
end sub
|
@ -37,7 +37,7 @@ function VideoContent(video) as object
|
||||
position = 0
|
||||
end if
|
||||
end if
|
||||
video.content.BookmarkPosition = int(position/10000000)
|
||||
video.content.PlayStart = int(position/10000000)
|
||||
|
||||
video.PlaySessionId = ItemGetSession(video.id, position)
|
||||
transcodeParams = getTranscodeParameters(meta)
|
||||
|
@ -43,7 +43,7 @@ sub changeSubtitleDuringPlayback(newid)
|
||||
video.SelectedSubtitle = newid
|
||||
|
||||
if newTrack.IsTextSubtitleStream then
|
||||
if video.content.BookmarkPosition > video.position
|
||||
if video.content.PlayStart > video.position
|
||||
'User has rewinded to before playback was initiated. The Roku never loaded this portion of the text subtitle
|
||||
'Changing the track will cause plaback to jump to initial bookmark position.
|
||||
video.suppressCaptions = true
|
||||
@ -159,6 +159,6 @@ sub rebuildURL(captions as boolean)
|
||||
end if
|
||||
|
||||
video.content.url = buildURL(base, params)
|
||||
video.content.BookmarkPosition = int(video.position + playBackBuffer)
|
||||
video.content.PlayStart = int(video.position + playBackBuffer)
|
||||
video.control = "play"
|
||||
end sub
|
||||
|
Loading…
Reference in New Issue
Block a user