save and parse videoMode to global device object
This commit is contained in:
parent
05a04062fb
commit
9f2fe6e8fc
|
@ -43,6 +43,57 @@ sub SaveDeviceToGlobal()
|
||||||
' remove special characters
|
' remove special characters
|
||||||
regex = CreateObject("roRegex", "[^a-zA-Z0-9\ \-\_]", "")
|
regex = CreateObject("roRegex", "[^a-zA-Z0-9\ \-\_]", "")
|
||||||
filteredFriendly = regex.ReplaceAll(deviceInfo.getFriendlyName(), "")
|
filteredFriendly = regex.ReplaceAll(deviceInfo.getFriendlyName(), "")
|
||||||
|
' 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 = invalid
|
||||||
|
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({
|
m.global.addFields({
|
||||||
device: {
|
device: {
|
||||||
id: deviceInfo.getChannelClientID(),
|
id: deviceInfo.getChannelClientID(),
|
||||||
|
@ -58,7 +109,12 @@ sub SaveDeviceToGlobal()
|
||||||
hasVoiceRemote: deviceInfo.HasFeature("voice_remote"),
|
hasVoiceRemote: deviceInfo.HasFeature("voice_remote"),
|
||||||
|
|
||||||
displayType: deviceInfo.GetDisplayType(),
|
displayType: deviceInfo.GetDisplayType(),
|
||||||
displayMode: deviceInfo.GetDisplayMode()
|
displayMode: deviceInfo.GetDisplayMode(),
|
||||||
|
videoMode: videoMode,
|
||||||
|
videoHeight: videoHeight,
|
||||||
|
videoWidth: videoWidth,
|
||||||
|
videoRefresh: Val(refreshRate),
|
||||||
|
videoBitDepth: Val(bitDepth)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
end sub
|
end sub
|
||||||
|
|
Loading…
Reference in New Issue
Block a user