const luaL_Reg Block_funcs[] = {
{ "display", Block_display },
- { "choose_alternative", Block_choose_alternative },
+ { "choose", Block_choose },
{ "enable", Block_enable },
{ "disable", Block_disable },
{ "set_int", Block_set_int },
register_class("ImageInput", ImageInput_funcs);
register_class("VideoInput", VideoInput_funcs);
register_class("HTMLInput", HTMLInput_funcs);
- register_class("IdentityEffect", IdentityEffect_funcs);
- register_class("WhiteBalanceEffect", WhiteBalanceEffect_funcs);
- register_class("ResampleEffect", ResampleEffect_funcs);
- register_class("PaddingEffect", PaddingEffect_funcs);
- register_class("IntegralPaddingEffect", IntegralPaddingEffect_funcs);
- register_class("OverlayEffect", OverlayEffect_funcs);
- register_class("ResizeEffect", ResizeEffect_funcs);
- register_class("MultiplyEffect", MultiplyEffect_funcs);
- register_class("MixEffect", MixEffect_funcs);
- register_class("LiftGammaGainEffect", LiftGammaGainEffect_funcs);
+ register_class("IdentityEffect", IdentityEffect_funcs, IDENTITY_EFFECT);
+ register_class("WhiteBalanceEffect", WhiteBalanceEffect_funcs, WHITE_BALANCE_EFFECT);
+ register_class("ResampleEffect", ResampleEffect_funcs, RESAMPLE_EFFECT);
+ register_class("PaddingEffect", PaddingEffect_funcs, PADDING_EFFECT);
+ register_class("IntegralPaddingEffect", IntegralPaddingEffect_funcs, INTEGRAL_PADDING_EFFECT);
+ register_class("OverlayEffect", OverlayEffect_funcs, OVERLAY_EFFECT);
+ register_class("ResizeEffect", ResizeEffect_funcs, RESIZE_EFFECT);
+ register_class("MultiplyEffect", MultiplyEffect_funcs, MULTIPLY_EFFECT);
+ register_class("MixEffect", MixEffect_funcs, MIX_EFFECT);
+ register_class("LiftGammaGainEffect", LiftGammaGainEffect_funcs, LIFT_GAMMA_GAIN_EFFECT);
register_class("InputStateInfo", InputStateInfo_funcs);
register_class("ThemeMenu", ThemeMenu_funcs);
assert(lua_gettop(L) == 0);
}
-void Theme::register_class(const char *class_name, const luaL_Reg *funcs)
+void Theme::register_class(const char *class_name, const luaL_Reg *funcs, EffectType effect_type)
{
assert(lua_gettop(L) == 0);
luaL_newmetatable(L, class_name); // mt = {}
luaL_setfuncs(L, funcs, 1); // for (name,f in funcs) { mt[name] = f, with upvalue {theme} }
lua_pushvalue(L, -1);
lua_setfield(L, -2, "__index"); // mt.__index = mt
+ if (effect_type != NO_EFFECT_TYPE) {
+ lua_pushnumber(L, effect_type);
+ lua_setfield(L, -2, "__effect_type_id"); // mt.__effect_type_id = effect_type
+ }
lua_setglobal(L, class_name); // ClassName = mt
assert(lua_gettop(L) == 0);
}