obs-scripting: add transition duration functions

This commit is contained in:
Scratch 2020-12-15 22:49:22 +11:00 committed by Jim
parent 96449877ef
commit a78558b46a
4 changed files with 43 additions and 0 deletions

View File

@ -113,6 +113,22 @@ static int set_current_transition(lua_State *script)
return 0;
}
static int get_transition_duration(lua_State *script)
{
int duration = obs_frontend_get_transition_duration();
lua_pushinteger(script, duration);
return 1;
}
static int set_transition_duration(lua_State *script)
{
if (lua_isnumber(script, 1)) {
int duration = (int)lua_tointeger(script, 1);
obs_frontend_set_transition_duration(duration);
}
return 0;
}
static int get_scene_collections(lua_State *script)
{
char **names = obs_frontend_get_scene_collections();
@ -299,6 +315,8 @@ void add_lua_frontend_funcs(lua_State *script)
add_func(get_transitions);
add_func(get_current_transition);
add_func(set_current_transition);
add_func(get_transition_duration);
add_func(set_transition_duration);
add_func(get_scene_collections);
add_func(get_current_scene_collection);
add_func(set_current_scene_collection);

View File

@ -161,6 +161,26 @@ static PyObject *set_current_transition(PyObject *self, PyObject *args)
return python_none();
}
static PyObject *get_transition_duration(PyObject *self, PyObject *args)
{
int duration = obs_frontend_get_transition_duration();
PyObject *ret = PyLong_FromLong(duration);
UNUSED_PARAMETER(self);
UNUSED_PARAMETER(args);
return ret;
}
static PyObject *set_transition_duration(PyObject *self, PyObject *args)
{
int duration;
if (!parse_args(args, "i", &duration))
return python_none();
obs_frontend_set_transition_duration(duration);
UNUSED_PARAMETER(self);
return python_none();
}
static PyObject *get_scene_collections(PyObject *self, PyObject *args)
{
char **names = obs_frontend_get_scene_collections();
@ -415,6 +435,8 @@ void add_python_frontend_funcs(PyObject *module)
DEF_FUNC(get_transitions),
DEF_FUNC(get_current_transition),
DEF_FUNC(set_current_transition),
DEF_FUNC(set_transition_duration),
DEF_FUNC(get_transition_duration),
DEF_FUNC(get_scene_collections),
DEF_FUNC(get_current_scene_collection),
DEF_FUNC(set_current_scene_collection),

View File

@ -81,6 +81,7 @@ bool import_python(const char *python_path)
IMPORT_FUNC(PyUnicode_FromFormat);
IMPORT_FUNC(PyUnicode_Concat);
IMPORT_FUNC(PyLong_FromVoidPtr);
IMPORT_FUNC(PyLong_FromLong);
IMPORT_FUNC(PyBool_FromLong);
IMPORT_FUNC(PyGILState_Ensure);
IMPORT_FUNC(PyGILState_GetThisThreadState);

View File

@ -69,6 +69,7 @@ PY_EXTERN PyObject *(*Import_PyObject_Init)(PyObject *, PyTypeObject *);
PY_EXTERN PyObject *(*Import_PyUnicode_FromFormat)(const char *format, ...);
PY_EXTERN PyObject *(*Import_PyUnicode_Concat)(PyObject *left, PyObject *right);
PY_EXTERN PyObject *(*Import_PyLong_FromVoidPtr)(void *);
PY_EXTERN PyObject *(*Import_PyLong_FromLong)(long);
PY_EXTERN PyObject *(*Import_PyBool_FromLong)(long);
PY_EXTERN PyGILState_STATE (*Import_PyGILState_Ensure)(void);
PY_EXTERN PyThreadState *(*Import_PyGILState_GetThisThreadState)(void);
@ -169,6 +170,7 @@ extern bool import_python(const char *python_path);
#define PyUnicode_FromFormat Import_PyUnicode_FromFormat
#define PyUnicode_Concat Import_PyUnicode_Concat
#define PyLong_FromVoidPtr Import_PyLong_FromVoidPtr
#define PyLong_FromLong Import_PyLong_FromLong
#define PyBool_FromLong Import_PyBool_FromLong
#define PyGILState_Ensure Import_PyGILState_Ensure
#define PyGILState_GetThisThreadState Import_PyGILState_GetThisThreadState