return 1;
}
+int InputStateInfo_get_frame_height(lua_State* L)
+{
+ 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]) {
+ height *= 2;
+ }
+ lua_pushnumber(L, height);
+ return 1;
+}
+
int InputStateInfo_get_interlaced(lua_State* L)
{
assert(lua_gettop(L) == 2);
string str;
if (!input_state_info->last_is_connected[signal_num]) {
str = "disconnected";
- } else if (input_state_info->last_height[signal_num]) {
+ } else if (input_state_info->last_height[signal_num] <= 0) {
str = "no signal";
} else if (!input_state_info->last_has_signal[signal_num]) {
- if (input_state_info->last_height[signal_num]) {
+ if (input_state_info->last_height[signal_num] == 525) {
// Special mode for the USB3 cards.
str = "no signal";
} else {
const luaL_Reg InputStateInfo_funcs[] = {
{ "get_width", InputStateInfo_get_width },
{ "get_height", InputStateInfo_get_height },
+ { "get_frame_width", InputStateInfo_get_width }, // Same as get_width().
+ { "get_frame_height", InputStateInfo_get_frame_height },
{ "get_interlaced", InputStateInfo_get_interlaced },
{ "get_has_signal", InputStateInfo_get_has_signal },
{ "get_is_connected", InputStateInfo_get_is_connected },
Theme::MenuEntry::~MenuEntry()
{
if (is_submenu) {
- luaL_unref(entry.L, LUA_REGISTRYINDEX, entry.lua_ref);
- } else {
destroy(submenu);
+ } else {
+ luaL_unref(entry.L, LUA_REGISTRYINDEX, entry.lua_ref);
}
}
for (int i = 1; i <= num_elements; ++i) {
root_menu.emplace_back(create_theme_menu_entry(L, i));
}
- fprintf(stderr, "now creating a new one\n");
theme_menu.reset(new MenuEntry("", move(root_menu)));
- fprintf(stderr, "DONE reset\n");
lua_pop(L, num_elements);
assert(lua_gettop(L) == 0);