infobeamer-testcard/node.lua

69 lines
1.6 KiB
Lua

util.init_hosted()
local json = require "json"
local serial = sys.get_env "SERIAL"
local location = ""
local description = "<please wait>"
local upper_text = ""
local lower_text = ""
local size_multiplier = 1
local card = nil
util.data_mapper{
["device_info"] = function(info)
info = json.decode(info)
location = info.location
description = info.description
if location ~= nil and location ~= '' then
upper_text = description .. " (" .. serial .. ")"
lower_text = location
else
upper_text = description
lower_text = serial
end
end
}
gl.setup(NATIVE_WIDTH, NATIVE_HEIGHT)
if NATIVE_WIDTH > 2000 then
card = resource.load_image("testcard_3840.png")
size_multiplier = 2
else
card = resource.load_image("testcard_1920.png")
end
font = resource.load_font("vera.ttf")
function node.render()
local render_width = 1920
local render_height = 1080
local upper_text_pos = 631
local lower_text_pos = 679
local upper_text_size = 40
local lower_text_size = 20
gl.clear(0,0,0,1)
card:draw(0, 0, 1920*size_multiplier, 1080*size_multiplier)
upper_width = font:width(upper_text, 40*size_multiplier)
lower_width = font:width(lower_text, 20*size_multiplier)
font:write(
(render_width*size_multiplier/2)-(upper_width/2),
upper_text_pos*size_multiplier,
upper_text,
40*size_multiplier,
1,1,1,1)
font:write(
(render_width*size_multiplier/2)-(lower_width/2),
lower_text_pos*size_multiplier,
lower_text,
20*size_multiplier,
1,1,1,1)
end