133 lines
4.3 KiB
Plaintext
133 lines
4.3 KiB
Plaintext
' Set global constants
|
|
sub setConstants()
|
|
globals = m.screen.getGlobalNode()
|
|
|
|
' Set Global Constants
|
|
globals.addFields({
|
|
constants: {
|
|
|
|
jellyfin_server: "jellyfin server",
|
|
|
|
poster_bg_pallet: ["#00455c", "#44bae1", "#00a4db", "#1c4c5c", "#007ea8"],
|
|
|
|
colors: {
|
|
button: "#006fab",
|
|
blue: "#00a4dcFF"
|
|
},
|
|
|
|
icons: {
|
|
ascending_black: "pkg:/images/icons/up_black.png",
|
|
ascending_white: "pkg:/images/icons/up_white.png",
|
|
descending_black: "pkg:/images/icons/down_black.png",
|
|
descending_white: "pkg:/images/icons/down_white.png",
|
|
check_black: "pkg:/images/icons/check_black.png",
|
|
check_white: "pkg:/images/icons/check_white.png"
|
|
}
|
|
}
|
|
})
|
|
end sub
|
|
|
|
' Save information from roAppInfo to m.global.app
|
|
sub SaveAppToGlobal()
|
|
appInfo = CreateObject("roAppInfo")
|
|
lastRunVersion = get_setting("LastRunVersion")
|
|
m.global.addFields({
|
|
app: {
|
|
id: appInfo.GetID(),
|
|
isDev: appInfo.IsDev(),
|
|
version: appInfo.GetVersion(),
|
|
lastRunVersion: lastRunVersion
|
|
}
|
|
})
|
|
end sub
|
|
|
|
' Save information from roDeviceInfo to m.global.device
|
|
sub SaveDeviceToGlobal()
|
|
deviceInfo = CreateObject("roDeviceInfo")
|
|
|
|
' remove special characters
|
|
regex = CreateObject("roRegex", "[^a-zA-Z0-9\ \-\_]", "")
|
|
filteredFriendly = regex.ReplaceAll(deviceInfo.getFriendlyName(), "")
|
|
' parse out serial
|
|
displayName = deviceInfo.getModelDisplayName()
|
|
deviceSerial = Mid(filteredFriendly, len(displayName) + 4)
|
|
' determine max playback resolution
|
|
' https://developer.roku.com/en-ca/docs/references/brightscript/interfaces/ifdeviceinfo.md#getvideomode-as-string
|
|
videoMode = deviceInfo.GetVideoMode()
|
|
iPos = Instr(1, videoMode, "i")
|
|
pPos = Instr(1, videoMode, "p")
|
|
videoHeight = invalid
|
|
videoWidth = invalid
|
|
refreshRate = "0"
|
|
bitDepth = 8
|
|
extraData = invalid
|
|
heightToWidth = {
|
|
"480": "720",
|
|
"576": "720",
|
|
"720": "1280",
|
|
"1080": "1920",
|
|
"2160": "3840",
|
|
"4320": "7680"
|
|
|
|
}
|
|
if iPos > 0 and pPos = 0
|
|
' videMode = 000i
|
|
videoHeight = mid(videoMode, 1, iPos - 1)
|
|
' save refresh rate
|
|
if Len(videoMode) > iPos
|
|
refreshRate = mid(videoMode, iPos + 1, 2)
|
|
end if
|
|
' save whats left of string
|
|
if Len(videoMode) > iPos + 2
|
|
extraData = mid(videoMode, iPos + 3)
|
|
end if
|
|
else if iPos = 0 and pPos > 0
|
|
' videMode = 000p
|
|
videoHeight = mid(videoMode, 1, pPos - 1)
|
|
' save refresh rate
|
|
if Len(videoMode) > pPos
|
|
refreshRate = mid(videoMode, pPos + 1, 2)
|
|
end if
|
|
' save whats left of string
|
|
if Len(videoMode) > pPos + 2
|
|
extraData = mid(videoMode, pPos + 3)
|
|
end if
|
|
else
|
|
'i and p not present in videoMode
|
|
print "ERROR parsing deviceInfo.GetVideoMode()"
|
|
end if
|
|
videoWidth = heightToWidth[videoHeight]
|
|
if videoHeight = "2160" and extraData = "b10"
|
|
bitDepth = 10
|
|
else if videoHeight = "4320"
|
|
bitDepth = 12
|
|
end if
|
|
|
|
m.global.addFields({
|
|
device: {
|
|
id: deviceInfo.getChannelClientID(),
|
|
uuid: deviceInfo.GetRandomUUID(),
|
|
name: displayName,
|
|
friendlyName: filteredFriendly,
|
|
serverDeviceName: deviceInfo.getChannelClientID(),
|
|
model: deviceInfo.GetModel(),
|
|
modelType: deviceInfo.GetModelType(),
|
|
modelDetails: deviceInfo.GetModelDetails(),
|
|
serial: deviceSerial,
|
|
osVersion: deviceInfo.GetOSVersion(),
|
|
locale: deviceInfo.GetCurrentLocale(),
|
|
clockFormat: deviceInfo.GetClockFormat(),
|
|
isAudioGuideEnabled: deviceInfo.IsAudioGuideEnabled(),
|
|
hasVoiceRemote: deviceInfo.HasFeature("voice_remote"),
|
|
|
|
displayType: deviceInfo.GetDisplayType(),
|
|
displayMode: deviceInfo.GetDisplayMode(),
|
|
videoMode: videoMode,
|
|
videoHeight: videoHeight,
|
|
videoWidth: videoWidth,
|
|
videoRefresh: StrToI(refreshRate),
|
|
videoBitDepth: bitDepth
|
|
}
|
|
})
|
|
end sub
|