obs-scripting: Add obs_sceneitem_group_enum_items function call

Adds function call to enumerate over items contained in a source group.
This commit is contained in:
PatTheMav
2022-10-11 15:19:41 +02:00
committed by Patrick Heyer
parent 277dafab98
commit d9f89be35a
2 changed files with 31 additions and 0 deletions
+12
View File
@@ -644,6 +644,17 @@ static int scene_enum_items(lua_State *script)
return 1;
}
static int sceneitem_group_enum_items(lua_State *script)
{
obs_sceneitem_t *sceneitem;
if (!ls_get_libobs_obj(obs_sceneitem_t, 1, &sceneitem))
return 0;
lua_newtable(script);
obs_sceneitem_group_enum_items(sceneitem, enum_items_proc, script);
return 1;
}
/* -------------------------------------------- */
static void defer_hotkey_unregister(void *p_cb)
@@ -1014,6 +1025,7 @@ static void add_hook_functions(lua_State *script)
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("obs_sceneitem_group_enum_items", sceneitem_group_enum_items);
add_func("source_list_release", source_list_release);
add_func("sceneitem_list_release", sceneitem_list_release);
add_func("calldata_source", calldata_source);
+19
View File
@@ -1108,6 +1108,23 @@ static PyObject *scene_enum_items(PyObject *self, PyObject *args)
return list;
}
static PyObject *sceneitem_group_enum_items(PyObject *self, PyObject *args)
{
PyObject *py_sceneitem;
obs_sceneitem_t *sceneitem;
UNUSED_PARAMETER(self);
if (!parse_args(args, "O", &py_sceneitem))
return python_none();
if (!py_to_libobs(obs_sceneitem_t, py_sceneitem, &sceneitem))
return python_none();
PyObject *list = PyList_New(0);
obs_sceneitem_group_enum_items(sceneitem, enum_items_proc, list);
return list;
}
/* -------------------------------------------- */
static PyObject *source_list_release(PyObject *self, PyObject *args)
@@ -1235,6 +1252,8 @@ static void add_hook_functions(PyObject *module)
DEF_FUNC("sceneitem_list_release", sceneitem_list_release),
DEF_FUNC("obs_enum_sources", enum_sources),
DEF_FUNC("obs_scene_enum_items", scene_enum_items),
DEF_FUNC("obs_sceneitem_group_enum_items",
sceneitem_group_enum_items),
DEF_FUNC("obs_remove_tick_callback",
obs_python_remove_tick_callback),
DEF_FUNC("obs_add_tick_callback", obs_python_add_tick_callback),