InputStateInfo *input_state_info = get_input_state_info(L, 1);
Theme *theme = get_theme_updata(L);
- int signal_num = theme->map_signal(luaL_checknumber(L, 2));
- lua_pushnumber(L, input_state_info->last_width[signal_num]);
+ int card_idx = theme->map_signal_to_card(luaL_checknumber(L, 2));
+ lua_pushnumber(L, input_state_info->last_width[card_idx]);
return 1;
}
assert(lua_gettop(L) == 2);
InputStateInfo *input_state_info = get_input_state_info(L, 1);
Theme *theme = get_theme_updata(L);
- int signal_num = theme->map_signal(luaL_checknumber(L, 2));
- lua_pushnumber(L, input_state_info->last_height[signal_num]);
+ int card_idx = theme->map_signal_to_card(luaL_checknumber(L, 2));
+ lua_pushnumber(L, input_state_info->last_height[card_idx]);
return 1;
}
assert(lua_gettop(L) == 2);
InputStateInfo *input_state_info = get_input_state_info(L, 1);
Theme *theme = get_theme_updata(L);
- int signal_num = theme->map_signal(luaL_checknumber(L, 2));
- unsigned height = input_state_info->last_height[signal_num];
- if (input_state_info->last_interlaced[signal_num]) {
+ int card_idx = theme->map_signal_to_card(luaL_checknumber(L, 2));
+ unsigned height = input_state_info->last_height[card_idx];
+ if (input_state_info->last_interlaced[card_idx]) {
height *= 2;
}
lua_pushnumber(L, height);
assert(lua_gettop(L) == 2);
InputStateInfo *input_state_info = get_input_state_info(L, 1);
Theme *theme = get_theme_updata(L);
- int signal_num = theme->map_signal(luaL_checknumber(L, 2));
- lua_pushboolean(L, input_state_info->last_interlaced[signal_num]);
+ int card_idx = theme->map_signal_to_card(luaL_checknumber(L, 2));
+ lua_pushboolean(L, input_state_info->last_interlaced[card_idx]);
return 1;
}
assert(lua_gettop(L) == 2);
InputStateInfo *input_state_info = get_input_state_info(L, 1);
Theme *theme = get_theme_updata(L);
- int signal_num = theme->map_signal(luaL_checknumber(L, 2));
- lua_pushboolean(L, input_state_info->last_has_signal[signal_num]);
+ int card_idx = theme->map_signal_to_card(luaL_checknumber(L, 2));
+ lua_pushboolean(L, input_state_info->last_has_signal[card_idx]);
return 1;
}
assert(lua_gettop(L) == 2);
InputStateInfo *input_state_info = get_input_state_info(L, 1);
Theme *theme = get_theme_updata(L);
- int signal_num = theme->map_signal(luaL_checknumber(L, 2));
- lua_pushboolean(L, input_state_info->last_is_connected[signal_num]);
+ int card_idx = theme->map_signal_to_card(luaL_checknumber(L, 2));
+ lua_pushboolean(L, input_state_info->last_is_connected[card_idx]);
return 1;
}
assert(lua_gettop(L) == 2);
InputStateInfo *input_state_info = get_input_state_info(L, 1);
Theme *theme = get_theme_updata(L);
- int signal_num = theme->map_signal(luaL_checknumber(L, 2));
- lua_pushnumber(L, input_state_info->last_frame_rate_nom[signal_num]);
+ int card_idx = theme->map_signal_to_card(luaL_checknumber(L, 2));
+ lua_pushnumber(L, input_state_info->last_frame_rate_nom[card_idx]);
return 1;
}
assert(lua_gettop(L) == 2);
InputStateInfo *input_state_info = get_input_state_info(L, 1);
Theme *theme = get_theme_updata(L);
- int signal_num = theme->map_signal(luaL_checknumber(L, 2));
- lua_pushnumber(L, input_state_info->last_frame_rate_den[signal_num]);
+ int card_idx = theme->map_signal_to_card(luaL_checknumber(L, 2));
+ lua_pushnumber(L, input_state_info->last_frame_rate_den[card_idx]);
return 1;
}
assert(lua_gettop(L) == 2);
InputStateInfo *input_state_info = get_input_state_info(L, 1);
Theme *theme = get_theme_updata(L);
- int signal_num = theme->map_signal(luaL_checknumber(L, 2));
- if (!input_state_info->has_last_subtitle[signal_num]) {
+ int card_idx = theme->map_signal_to_card(luaL_checknumber(L, 2));
+ if (!input_state_info->has_last_subtitle[card_idx]) {
lua_pushnil(L);
} else {
- lua_pushstring(L, input_state_info->last_subtitle[signal_num].c_str());
+ lua_pushstring(L, input_state_info->last_subtitle[card_idx].c_str());
}
return 1;
}
assert(lua_gettop(L) == 2);
InputStateInfo *input_state_info = get_input_state_info(L, 1);
Theme *theme = get_theme_updata(L);
- int signal_num = theme->map_signal(luaL_checknumber(L, 2));
+ int card_idx = theme->map_signal_to_card(luaL_checknumber(L, 2));
string str;
- if (!input_state_info->last_is_connected[signal_num]) {
+ if (!input_state_info->last_is_connected[card_idx]) {
str = "disconnected";
- } else if (input_state_info->last_height[signal_num] <= 0) {
+ } else if (input_state_info->last_height[card_idx] <= 0) {
str = "no signal";
- } else if (!input_state_info->last_has_signal[signal_num]) {
- if (input_state_info->last_height[signal_num] == 525) {
+ } else if (!input_state_info->last_has_signal[card_idx]) {
+ if (input_state_info->last_height[card_idx] == 525) {
// Special mode for the USB3 cards.
str = "no signal";
} else {
- str = get_human_readable_resolution(input_state_info, signal_num) + ", no signal";
+ str = get_human_readable_resolution(input_state_info, card_idx) + ", no signal";
}
} else {
- str = get_human_readable_resolution(input_state_info, signal_num);
+ str = get_human_readable_resolution(input_state_info, card_idx);
}
lua_pushstring(L, str.c_str());
return true;
}
- signal_num = theme->map_signal(signal_num);
- connect_signal_raw(signal_num, *theme->input_state);
+ int card_idx = theme->map_signal_to_card(signal_num);
+ connect_card(card_idx, *theme->input_state);
return true;
}
-void LiveInputWrapper::connect_signal_raw(int signal_num, const InputState &input_state)
+void LiveInputWrapper::connect_card(int card_idx, const InputState &input_state)
{
- BufferedFrame first_frame = input_state.buffered_frames[signal_num][0];
+ BufferedFrame first_frame = input_state.buffered_frames[card_idx][0];
if (first_frame.frame == nullptr) {
// No data yet.
return;
}
}
- movit::YCbCrLumaCoefficients ycbcr_coefficients = input_state.ycbcr_coefficients[signal_num];
- bool full_range = input_state.full_range[signal_num];
+ movit::YCbCrLumaCoefficients ycbcr_coefficients = input_state.ycbcr_coefficients[card_idx];
+ bool full_range = input_state.full_range[card_idx];
- if (input_state.ycbcr_coefficients_auto[signal_num]) {
+ if (input_state.ycbcr_coefficients_auto[card_idx]) {
full_range = false;
// The Blackmagic driver docs claim that the device outputs Y'CbCr
BufferedFrame last_good_frame = first_frame;
for (unsigned i = 0; i < max(ycbcr_inputs.size(), rgba_inputs.size()); ++i) {
- BufferedFrame frame = input_state.buffered_frames[signal_num][i];
+ BufferedFrame frame = input_state.buffered_frames[card_idx][i];
if (frame.frame == nullptr) {
// Not enough data; reuse last frame (well, field).
// This is suboptimal, but we have nothing better.
}
if (deinterlace) {
- BufferedFrame frame = input_state.buffered_frames[signal_num][0];
+ BufferedFrame frame = input_state.buffered_frames[card_idx][0];
CHECK(deinterlace_effect->set_int("current_field_position", frame.field_number));
}
}
// each FFmpeg or CEF input, so we'll do it here.
if (video_signal_connections.count(effect_chain)) {
for (const VideoSignalConnection &conn : video_signal_connections[effect_chain]) {
- conn.wrapper->connect_signal_raw(conn.source->get_card_index(), input_state);
+ conn.wrapper->connect_card(conn.source->get_card_index(), input_state);
}
}
#ifdef HAVE_CEF
if (html_signal_connections.count(effect_chain)) {
for (const CEFSignalConnection &conn : html_signal_connections[effect_chain]) {
- conn.wrapper->connect_signal_raw(conn.source->get_card_index(), input_state);
+ conn.wrapper->connect_card(conn.source->get_card_index(), input_state);
}
}
#endif
return retstr;
}
-int Theme::get_channel_signal(unsigned channel)
+int Theme::map_channel_to_signal(unsigned channel)
{
lock_guard<mutex> lock(m);
lua_getglobal(L, "channel_signal");
void Theme::set_wb(unsigned channel, float r, float g, float b)
{
- int signal = get_channel_signal(channel);
+ int signal = map_channel_to_signal(channel);
lock_guard<mutex> lock(m);
if (signal != -1) {
- white_balance_for_signal[signal] = RGBTriplet{ r, g, b };
+ int card_idx = map_signal_to_card(signal);
+ white_balance_for_card[card_idx] = RGBTriplet{ r, g, b };
}
call_lua_wb_callback(channel, r, g, b);
}
-void Theme::set_wb_for_signal(int signal, float r, float g, float b)
+void Theme::set_wb_for_card(int card_idx, float r, float g, float b)
{
lock_guard<mutex> lock(m);
- white_balance_for_signal[signal] = RGBTriplet{ r, g, b };
+ white_balance_for_card[card_idx] = RGBTriplet{ r, g, b };
for (const auto &channel_and_signal : channel_signals) {
- if (channel_and_signal.second == signal) {
+ if (map_signal_to_card(channel_and_signal.second) == card_idx) {
call_lua_wb_callback(channel_and_signal.first, r, g, b);
}
}
assert(lua_gettop(L) == 0);
}
-RGBTriplet Theme::get_white_balance_for_signal(int signal)
+RGBTriplet Theme::get_white_balance_for_card(int card_idx)
{
- if (white_balance_for_signal.count(signal)) {
- return white_balance_for_signal[signal];
+ if (white_balance_for_card.count(card_idx)) {
+ return white_balance_for_card[card_idx];
} else {
return RGBTriplet{ 1.0, 1.0, 1.0 };
}
return ret;
}
-int Theme::map_signal(int signal_num)
+int Theme::map_signal_to_card(int signal_num)
{
// Negative numbers map to raw signals.
if (signal_num < 0) {
return card_index;
}
-void Theme::set_signal_mapping(int signal_num, int card_num)
+void Theme::set_signal_mapping(int signal_num, int card_idx)
{
lock_guard<mutex> lock(map_m);
- assert(card_num < int(num_cards));
- signal_to_card_mapping[signal_num] = card_num;
+ assert(card_idx < int(num_cards));
+ signal_to_card_mapping[signal_num] = card_idx;
}
void Theme::transition_clicked(int transition_num, float t)