X-Git-Url: https://git.sesse.net/?p=nageru;a=blobdiff_plain;f=nageru%2Ftheme.lua;h=349d33b865fa7ebbfae90179ab8d05235cd363e9;hp=6137cae6c0705fd39fb6c6631f0a9c7b38fb7838;hb=6b5340251a6b759f9f5dc790a677e3b764806349;hpb=fe13490dcc54882e6f1fc9293cbdffabf6daa290 diff --git a/nageru/theme.lua b/nageru/theme.lua index 6137cae..349d33b 100644 --- a/nageru/theme.lua +++ b/nageru/theme.lua @@ -110,9 +110,6 @@ local static_scene = Scene.new(16, 9) static_scene:add_input(static_image) -- Note: Locks this input to images only. static_scene:finalize() --- Set some global state. -Nageru.set_num_channels(4) -- Can only be called at the start of the program. - -- Set some global state. Unless marked otherwise, these can only be set once, -- at the start of the program. Nageru.set_num_channels(4) @@ -132,10 +129,6 @@ Nageru.set_supports_wb(3, true) Nageru.set_channel_name(SBS_SIGNAL_NUM + 2, "Side-by-side") Nageru.set_channel_name(STATIC_SIGNAL_NUM + 2, "Static picture") -function is_plain_signal(num) - return num == INPUT0_SIGNAL_NUM or num == INPUT1_SIGNAL_NUM -end - -- API ENTRY POINT -- Called every frame. Returns the color (if any) to paint around the given -- channel. Returns a CSS color (typically to mark live and preview signals); @@ -158,6 +151,10 @@ function channel_color(channel) return "transparent" end +function is_plain_signal(num) + return num == INPUT0_SIGNAL_NUM or num == INPUT1_SIGNAL_NUM +end + function channel_involved_in(channel, signal_num) if is_plain_signal(signal_num) then return channel == (signal_num + 2) @@ -346,8 +343,10 @@ end -- -- is basically an exposed InputState, which you can use to -- query for information about the signals at the point of the current --- frame. In particular, you can call get_width() and get_height() +-- frame. In particular, you can call get_frame_width() and get_frame_height() -- for any signal number, and use that to e.g. assist in scene selection. +-- (You can also use get_width() and get_height(), which return the +-- _field_ size. This has half the height for interlaced signals.) -- -- You should return scene to use, after having set any parameters you -- want to set (through set_int() etc.). The parameters will be snapshot @@ -356,26 +355,9 @@ function get_scene(num, t, width, height, signals) local input_resolution = {} for signal_num=0,1 do local res = { - width = signals:get_width(signal_num), - height = signals:get_height(signal_num), - interlaced = signals:get_interlaced(signal_num), - is_connected = signals:get_is_connected(signal_num), - has_signal = signals:get_has_signal(signal_num), - frame_rate_nom = signals:get_frame_rate_nom(signal_num), - frame_rate_den = signals:get_frame_rate_den(signal_num) + width = signals:get_frame_width(signal_num), + height = signals:get_frame_height(signal_num), } - - if res.interlaced then - -- Convert height from frame height to field height. - -- (Needed for e.g. place_rectangle.) - res.height = res.height * 2 - - -- Show field rate instead of frame rate; really for cosmetics only - -- (and actually contrary to EBU recommendations, although in line - -- with typical user expectations). - res.frame_rate_nom = res.frame_rate_nom * 2 - end - input_resolution[signal_num] = res local text_res = signals:get_human_readable_resolution(signal_num)