]> git.sesse.net Git - ultimatescore/commitdiff
Update the Nageru theme for more cameras.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Wed, 25 Oct 2017 18:20:23 +0000 (20:20 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Sat, 28 Oct 2017 09:39:24 +0000 (11:39 +0200)
nageru/ultimate.lua

index ecd43c72c23517d0b29f18cb2cf2cf28475ab07e..89d48de24f052969661a8650a13ad96b89304297 100644 (file)
@@ -9,7 +9,9 @@ local transition_dst_signal = 0
 local neutral_colors = {
        {0.5, 0.5, 0.5},  -- Input 0.
        {0.5, 0.5, 0.5},  -- Input 1.
-       {0.5, 0.5, 0.5}   -- Input 2.
+       {0.5, 0.5, 0.5},  -- Input 2.
+       {0.5, 0.5, 0.5},  -- Input 3.
+       {0.5, 0.5, 0.5}   -- Input 4.
 }
 
 local overlay_transition_start = -2.0
@@ -20,16 +22,19 @@ local overlay_enabled = false
 
 local live_signal_num = 0
 local preview_signal_num = 1
+local NUM_CAMERAS = 5  -- Remember to update neutral_colors, too.
 
 -- Valid values for live_signal_num and preview_signal_num.
 local INPUT0_SIGNAL_NUM = 0
 local INPUT1_SIGNAL_NUM = 1
 local INPUT2_SIGNAL_NUM = 2
-local STATIC_SIGNAL_NUM = 3
+local INPUT3_SIGNAL_NUM = 3
+local INPUT4_SIGNAL_NUM = 4
+local STATIC_SIGNAL_NUM = NUM_CAMERAS
 
 -- Preview-only signal showing the current signal with the overlay.
 -- Not valid for live_signal_num!
-local OVERLAY_SIGNAL_NUM = 4
+local OVERLAY_SIGNAL_NUM = NUM_CAMERAS + 1
 
 -- Valid values for transition_type. (Cuts are done directly, so they need no entry.)
 local NO_TRANSITION = 0
@@ -265,11 +270,11 @@ end
 -- Returns the number of outputs in addition to the live (0) and preview (1).
 -- Called only once, at the start of the program.
 function num_channels()
-       return 5
+       return NUM_CAMERAS + 2  -- static picture and overlay
 end
 
 function is_plain_signal(num)
-       return num >= INPUT0_SIGNAL_NUM and num <= INPUT2_SIGNAL_NUM
+       return num >= INPUT0_SIGNAL_NUM and num <= INPUT4_SIGNAL_NUM
 end
 
 -- Helper function to write e.g. “720p60”. The difference between this
@@ -320,12 +325,16 @@ end
 -- channels in case they change resolution.
 function channel_name(channel)
        local signal_num = channel - 2
-       if signal_num == 0 then
+       if signal_num == INPUT0_SIGNAL_NUM then
                return "Main (" .. get_channel_resolution(signal_num) .. ")"
-       elseif signal_num == 1 then
-               return "Goal 1 (" .. get_channel_resolution(signal_num) .. ")"
-       elseif signal_num == 2 then
-               return "Goal 2 (" .. get_channel_resolution(signal_num) .. ")"
+       elseif signal_num == INPUT1_SIGNAL_NUM then
+               return "Secondary (" .. get_channel_resolution(signal_num) .. ")"
+       elseif signal_num == INPUT2_SIGNAL_NUM then
+               return "Goal L (" .. get_channel_resolution(signal_num) .. ")"
+       elseif signal_num == INPUT3_SIGNAL_NUM then
+               return "Goal R (" .. get_channel_resolution(signal_num) .. ")"
+       elseif signal_num == INPUT4_SIGNAL_NUM then
+               return "Ambience (" .. get_channel_resolution(signal_num) .. ")"
        elseif signal_num == STATIC_SIGNAL_NUM then
                return "Static picture"
        elseif signal_num == OVERLAY_SIGNAL_NUM then
@@ -341,10 +350,8 @@ end
 -- Called once for each channel, at the start of the program.
 -- Will never be called for live (0) or preview (1).
 function channel_signal(channel)
-       if channel == 2 then
-               return 0
-       elseif channel == 3 then
-               return 1
+       if is_plain_signal(channel) then
+               return channel - 2
        else
                return -1
        end
@@ -377,7 +384,7 @@ function channel_involved_in(channel, signal_num)
                return channel == (signal_num + 2)
        end
        if signal_num == STATIC_SIGNAL_NUM then
-               return (channel == 5)
+               return (channel == NUM_CAMERAS)
        end
        return false
 end
@@ -593,7 +600,7 @@ end
 -- if and only if num==0.
 function get_chain(num, t, width, height, signals)
        local input_resolution = {}
-       for signal_num=0,2 do
+       for signal_num=0,(NUM_CAMERAS-1) do
                local res = {
                        width = signals:get_width(signal_num),
                        height = signals:get_height(signal_num),