X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Fsimple.lua;h=e799f80a683c49ab0831a348186a2414aa75154b;hb=5e9f3fe04e04a7c53a8e64106797e14e44fe9024;hp=3960505175e9637d1a2f627e1586c83691c59d41;hpb=337e2d06624b4b46eb2e7e5365e2ece219f9f100;p=nageru diff --git a/nageru/simple.lua b/nageru/simple.lua index 3960505..e799f80 100644 --- a/nageru/simple.lua +++ b/nageru/simple.lua @@ -25,41 +25,24 @@ local input = scene:add_input() local wb_effect = scene:add_effect(WhiteBalanceEffect.new()) scene:finalize() --- API ENTRY POINT --- 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 2 -end +-- Set some global state. Unless marked otherwise, these can only be set once, +-- at the start of the program. +Nageru.set_num_channels(2) --- 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 --- channels in case they change resolution. -function channel_name(channel) - if channel == 2 then - return "First input" - elseif channel == 3 then - return "Second input" - end -end +-- Sets, for each channel, which signal it corresponds to (starting from 0). +-- The information is used for whether right-click on the channel should bring up +-- an input selector or not. Only call this for channels that actually correspond +-- directly to a signal (ie., live inputs, not live (0) or preview (1)). +Nageru.set_channel_signal(2, 0) +Nageru.set_channel_signal(3, 1) --- API ENTRY POINT --- Returns, given a channel number, which signal it corresponds to (starting from 0). --- Should return -1 if the channel does not correspond to a simple signal. --- (The information is used for whether right-click on the channel should bring up --- an input selector or not.) --- 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 - else - return -1 - end -end +-- Set whether a given channel supports setting white balance. (Default is false.) +Nageru.set_supports_wb(2, true) +Nageru.set_supports_wb(3, true) + +-- These can be set at any time. +Nageru.set_channel_name(2, "First input") +Nageru.set_channel_name(3, "Second input") -- API ENTRY POINT -- Called every frame. Returns the color (if any) to paint around the given @@ -70,13 +53,6 @@ function channel_color(channel) return "transparent" end --- API ENTRY POINT --- Returns if a given channel supports setting white balance (starting from 2). --- Called only once for each channel, at the start of the program. -function supports_set_wb(channel) - return channel == 2 or channel == 3 -end - -- API ENTRY POINT -- Gets called with a new gray point when the white balance is changing. -- The color is in linear light (not sRGB gamma). @@ -123,8 +99,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 the scene to use, after having set any parameters you -- want to set (through set_int() etc.). The parameters will be snapshot