X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=theme.cpp;h=31eb23d2e36a67a4c7c14737d18cfb8bd3d1ef41;hb=6d011e4760be6e45680b41a98b9049c1ec44c951;hp=5d42c3d661d8a05d99f05613bb18c1eb2470e4c7;hpb=1e4d9085b0fd09607c8da23008cbee3be8ff119d;p=nageru diff --git a/theme.cpp b/theme.cpp index 5d42c3d..31eb23d 100644 --- a/theme.cpp +++ b/theme.cpp @@ -191,14 +191,24 @@ Theme::Theme(const char *filename, ResourcePool *resource_pool) register_class("LiveInputWrapper", LiveInputWrapper_funcs); register_class("WhiteBalanceEffect", WhiteBalanceEffect_funcs); - // Run script. - lua_settop(L, 0); - if (luaL_dofile(L, filename)) { - fprintf(stderr, "error: %s\n", lua_tostring(L, -1)); - lua_pop(L, 1); - exit(1); - } - assert(lua_gettop(L) == 0); + // Run script. + lua_settop(L, 0); + if (luaL_dofile(L, filename)) { + fprintf(stderr, "error: %s\n", lua_tostring(L, -1)); + lua_pop(L, 1); + exit(1); + } + assert(lua_gettop(L) == 0); + + // Ask it for the number of channels. + lua_getglobal(L, "num_channels"); + + if (lua_pcall(L, 0, 1, 0) != 0) { + fprintf(stderr, "error running function `num_channels': %s", lua_tostring(L, -1)); + exit(1); + } + + num_channels = luaL_checknumber(L, 1); } void Theme::register_class(const char *class_name, const luaL_Reg *funcs)