X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=theme.cpp;h=485fa433de9f043345c87db7820a7024792bb62e;hb=refs%2Fheads%2Fcef;hp=bc57b0d209cb329571c594ed904991c6ff57d150;hpb=cd48c8ab6d7425d4b4d9fdb2493da69b44848c9e;p=nageru diff --git a/theme.cpp b/theme.cpp index bc57b0d..485fa43 100644 --- a/theme.cpp +++ b/theme.cpp @@ -28,7 +28,9 @@ #include #include "defs.h" +#ifdef HAVE_CEF #include "cef_capture.h" +#endif #include "ffmpeg_capture.h" #include "flags.h" #include "image_input.h" @@ -233,6 +235,7 @@ int EffectChain_add_video_input(lua_State* L) return ret; } +#ifdef HAVE_CEF int EffectChain_add_html_input(lua_State* L) { assert(lua_gettop(L) == 2); @@ -254,6 +257,7 @@ int EffectChain_add_html_input(lua_State* L) } return ret; } +#endif int EffectChain_add_effect(lua_State* L) { @@ -411,6 +415,7 @@ int VideoInput_get_signal_num(lua_State* L) int HTMLInput_new(lua_State* L) { +#ifdef HAVE_CEF assert(lua_gettop(L) == 1); string url = checkstdstring(L, 1); int ret = wrap_lua_object_nonowned(L, "HTMLInput", url, global_flags.width, global_flags.height); @@ -420,8 +425,14 @@ int HTMLInput_new(lua_State* L) theme->register_html_input(*capture); } return ret; +#else + fprintf(stderr, "This version of Nageru has been compiled without CEF support.\n"); + fprintf(stderr, "HTMLInput is not available.\n"); + exit(1); +#endif } +#ifdef HAVE_CEF int HTMLInput_set_url(lua_State* L) { assert(lua_gettop(L) == 2); @@ -431,6 +442,32 @@ int HTMLInput_set_url(lua_State* L) return 0; } +int HTMLInput_reload(lua_State* L) +{ + assert(lua_gettop(L) == 1); + CEFCapture **video_input = (CEFCapture **)luaL_checkudata(L, 1, "HTMLInput"); + (*video_input)->reload(); + return 0; +} + +int HTMLInput_set_max_fps(lua_State* L) +{ + assert(lua_gettop(L) == 2); + CEFCapture **video_input = (CEFCapture **)luaL_checkudata(L, 1, "HTMLInput"); + int max_fps = lrint(luaL_checknumber(L, 2)); + (*video_input)->set_max_fps(max_fps); + return 0; +} + +int HTMLInput_execute_javascript_async(lua_State* L) +{ + assert(lua_gettop(L) == 2); + CEFCapture **video_input = (CEFCapture **)luaL_checkudata(L, 1, "HTMLInput"); + string js = checkstdstring(L, 2); + (*video_input)->execute_javascript_async(js); + return 0; +} + int HTMLInput_get_signal_num(lua_State* L) { assert(lua_gettop(L) == 1); @@ -438,6 +475,7 @@ int HTMLInput_get_signal_num(lua_State* L) lua_pushnumber(L, -1 - (*video_input)->get_card_index()); return 1; } +#endif int WhiteBalanceEffect_new(lua_State* L) { @@ -619,7 +657,9 @@ const luaL_Reg EffectChain_funcs[] = { { "__gc", EffectChain_gc }, { "add_live_input", EffectChain_add_live_input }, { "add_video_input", EffectChain_add_video_input }, +#ifdef HAVE_CEF { "add_html_input", EffectChain_add_html_input }, +#endif { "add_effect", EffectChain_add_effect }, { "finalize", EffectChain_finalize }, { NULL, NULL } @@ -648,10 +688,14 @@ const luaL_Reg VideoInput_funcs[] = { }; const luaL_Reg HTMLInput_funcs[] = { - // TODO: reload, execute_javascript, perhaps set_max_fps? { "new", HTMLInput_new }, +#ifdef HAVE_CEF { "set_url", HTMLInput_set_url }, + { "reload", HTMLInput_reload }, + { "set_max_fps", HTMLInput_set_max_fps }, + { "execute_javascript_async", HTMLInput_execute_javascript_async }, { "get_signal_num", HTMLInput_get_signal_num }, +#endif { NULL, NULL } };