-- Nageru theme for TFK mini-tournament 2017, based on the default theme.
-local http_request = require("http.request")
-local cqueues = require("cqueues")
-local cq = cqueues.new()
local futatabi_server = "http://gruessi.trd.sesse.net:9096"
local state = {
}
local NUM_CAMERAS = 6 -- Remember to update neutral_colors, too.
--- Update the Futatabi status in the title.
-replay_title = "IPTV"
-cq:wrap(function()
- local req = http_request.new_from_uri(futatabi_server .. "/queue_status")
- while true do
- local headers, stream = req:go()
- if headers == nil then
- replay_title = "IPTV"
- print(futatabi_server .. ": Could not connect to get queue_status")
- elseif headers:get(":status") == "200" then
- local body = stream:get_body_as_string()
- if body then
- replay_title = "IPTV (" .. body .. ")"
- else
- replay_title = "IPTV"
- print(futatabi_server .. ": Empty body on HTTP request")
- end
- else
- replay_title = "IPTV"
- print(futatabi_server .. ": HTTP error " .. headers:get(":status"))
- end
- end
-end)
-
-- Valid values for live_signal_num and preview_signal_num.
local INPUT0_SIGNAL_NUM = 0
local INPUT1_SIGNAL_NUM = 1
end
end
+function get_futatabi_status(str)
+ local num_fields = 0
+ local fields = {}
+ for word in string.gmatch(str, '([^;]+)') do
+ table.insert(fields, word)
+ num_fields = num_fields + 1
+ end
+ if num_fields >= 4 then
+ return fields[4]
+ else
+ return "???"
+ end
+end
+
-- API ENTRY POINT
-- Returns the name for each additional channel (starting from 2).
-- Called at the start of the program, and then each frame for live
elseif signal_num == STATIC_SIGNAL_NUM then
return "Static picture"
elseif signal_num == VIDEO_SIGNAL_NUM then
- -- return "IPTV input (" .. get_channel_resolution(iptv_video:get_signal_num()) .. ")"
- return replay_title
+ local res = last_resolution[iptv_video:get_signal_num()]
+ if (not res) or res.last_subtitle == nil then
+ return "IPTV"
+ else
+ return "IPTV (" .. get_futatabi_status(res.last_subtitle) .. ")"
+ end
elseif signal_num == OVERLAY_SIGNAL_NUM then
return "Overlay"
end
has_signal = signals:get_has_signal(signal_num),
is_connected = signals:get_is_connected(signal_num),
frame_rate_nom = signals:get_frame_rate_nom(signal_num),
- frame_rate_den = signals:get_frame_rate_den(signal_num)
+ frame_rate_den = signals:get_frame_rate_den(signal_num),
+ last_subtitle = signals:get_last_subtitle(signal_num)
}
if res.interlaced then