Ver Fonte

Merge pull request #1237 from kkartaltepe/fix-lua

 deps/obs-scripting: Add obs_source_enum_filters
Jim há 7 anos atrás
pai
commit
25e92e5d07

+ 27 - 0
deps/obs-scripting/obs-scripting-lua.c

@@ -579,6 +579,32 @@ static int enum_sources(lua_State *script)
 	return 1;
 }
 
+/* -------------------------------------------- */
+
+static bool source_enum_filters_proc(obs_source_t *source, obs_source_t *filter, void *param)
+{
+	lua_State *script = param;
+
+	obs_source_get_ref(filter);
+	ls_push_libobs_obj(obs_source_t, filter, false);
+
+	size_t idx = lua_rawlen(script, -2);
+	lua_rawseti(script, -2, (int)idx + 1);
+	return true;
+}
+
+static int source_enum_filters(lua_State *script)
+{
+	obs_source_t *source;
+	if (!ls_get_libobs_obj(obs_source_t, 1, &source))
+		return 0;
+
+	lua_newtable(script);
+	obs_source_enum_filters(source, source_enum_filters_proc, script);
+	return 1;
+}
+
+
 /* -------------------------------------------- */
 
 static bool enum_items_proc(obs_scene_t *scene, obs_sceneitem_t *item,
@@ -972,6 +998,7 @@ static void add_hook_functions(lua_State *script)
 	add_func("timer_remove", timer_remove);
 	add_func("timer_add", timer_add);
 	add_func("obs_enum_sources", enum_sources);
+	add_func("obs_source_enum_filters", source_enum_filters);
 	add_func("obs_scene_enum_items", scene_enum_items);
 	add_func("source_list_release", source_list_release);
 	add_func("sceneitem_list_release", sceneitem_list_release);

+ 1 - 0
deps/obs-scripting/obslua/obslua.i

@@ -59,6 +59,7 @@ static inline void wrap_blog(int log_level, const char *message)
 %ignore obs_add_main_render_callback;
 %ignore obs_remove_main_render_callback;
 %ignore obs_enum_sources;
+%ignore obs_source_enum_filters;
 %ignore obs_properties_add_button;
 %ignore obs_property_set_modified_callback;
 %ignore signal_handler_connect;