From: Steinar H. Gunderson Date: Sun, 30 Dec 2018 12:17:57 +0000 (+0100) Subject: Use the new subtitle functionality for getting Futatabi status. X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=4579f96e452c663b429cfa321c11f970c6ccff74;p=ultimatescore Use the new subtitle functionality for getting Futatabi status. --- diff --git a/nageru/ultimate.lua b/nageru/ultimate.lua index 63512bf..7a9d97d 100644 --- a/nageru/ultimate.lua +++ b/nageru/ultimate.lua @@ -1,8 +1,5 @@ -- 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 = { @@ -39,30 +36,6 @@ 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 @@ -491,6 +464,20 @@ function get_channel_resolution_raw(res) 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 @@ -514,8 +501,12 @@ function channel_name(channel) 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 @@ -834,7 +825,8 @@ function fetch_input_resolution(signals, signal_num) 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