mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 12:32:29 +00:00
python: Bind the new Timeline editing mode API
This commit is contained in:
parent
cb29c31337
commit
a03da389f7
3 changed files with 161 additions and 0 deletions
|
@ -396,3 +396,27 @@
|
|||
'("smart-render" "TIMELINE_MODE_SMART_RENDER")
|
||||
)
|
||||
)
|
||||
|
||||
(define-enum Edge
|
||||
(in-module "GES")
|
||||
(c-name "GESEdge")
|
||||
(gtype-id "GES_TYPE_EDGE")
|
||||
(values
|
||||
'("edge_start" "GES_EDGE_START")
|
||||
'("edge_end" "GES_EDGE_END")
|
||||
'("edge_none" "GES_EDGE_NONE")
|
||||
)
|
||||
)
|
||||
|
||||
(define-enum EditMode
|
||||
(in-module "GES")
|
||||
(c-name "GESEditMode")
|
||||
(gtype-id "GES_TYPE_EDIT_MODE")
|
||||
(values
|
||||
'("edit_normal" "GES_EDIT_MODE_NORMAL")
|
||||
'("edit_ripple" "GES_EDIT_MODE_RIPPLE")
|
||||
'("edit_roll" "GES_EDIT_MODE_ROLL")
|
||||
'("edit_trim" "GES_EDIT_MODE_TRIM")
|
||||
'("edit_slide" "GES_EDIT_MODE_SLIDE")
|
||||
)
|
||||
)
|
||||
|
|
|
@ -351,6 +351,30 @@
|
|||
)
|
||||
)
|
||||
|
||||
(define-enum Edge
|
||||
(in-module "GES")
|
||||
(c-name "GESEdge")
|
||||
(gtype-id "GES_TYPE_EDGE")
|
||||
(values
|
||||
'("edge_start" "GES_EDGE_START")
|
||||
'("edge_end" "GES_EDGE_END")
|
||||
'("edge_none" "GES_EDGE_NONE")
|
||||
)
|
||||
)
|
||||
|
||||
(define-enum EditMode
|
||||
(in-module "GES")
|
||||
(c-name "GESEditMode")
|
||||
(gtype-id "GES_TYPE_EDIT_MODE")
|
||||
(values
|
||||
'("edit_normal" "GES_EDIT_MODE_NORMAL")
|
||||
'("edit_ripple" "GES_EDIT_MODE_RIPPLE")
|
||||
'("edit_roll" "GES_EDIT_MODE_ROLL")
|
||||
'("edit_trim" "GES_EDIT_MODE_TRIM")
|
||||
'("edit_slide" "GES_EDIT_MODE_SLIDE")
|
||||
)
|
||||
)
|
||||
|
||||
(define-enum TextHAlign
|
||||
(in-module "GES")
|
||||
(c-name "GESTextHAlign")
|
||||
|
@ -1157,6 +1181,20 @@
|
|||
)
|
||||
)
|
||||
|
||||
(define-method edit
|
||||
(of-object "GESTimelineObject")
|
||||
(c-name "ges_timeline_object_edit")
|
||||
(return-type "gboolean")
|
||||
(parameters
|
||||
'("GList*" "layers")
|
||||
'("guint" "move_layer")
|
||||
'("GESEditMode" "mode")
|
||||
'("GESEdge" "edge")
|
||||
'("guint64" "position")
|
||||
'("guint64" "snap_distance")
|
||||
)
|
||||
)
|
||||
|
||||
(define-method get_supported_formats
|
||||
(of-object "GESTimelineObject")
|
||||
(c-name "ges_timeline_object_get_supported_formats")
|
||||
|
@ -2021,6 +2059,18 @@
|
|||
(varargs #t)
|
||||
)
|
||||
|
||||
(define-method edit
|
||||
(of-object "GESTrackObject")
|
||||
(c-name "ges_track_object_edit")
|
||||
(return-type "gboolean")
|
||||
(parameters
|
||||
'("GList*" "layers")
|
||||
'("GESEditMode" "mode")
|
||||
'("GESEdge" "edge")
|
||||
'("guint64" "position")
|
||||
'("guint64" "snap_distance")
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; From ges-track-operation.h
|
||||
|
|
|
@ -488,6 +488,93 @@ _wrap_ges_version (PyObject *self)
|
|||
}
|
||||
|
||||
|
||||
%%
|
||||
override ges_track_object_edit kwargs
|
||||
static PyObject *
|
||||
_wrap_ges_track_object_edit (PyGObject *self, PyObject *args, PyObject *kwargs)
|
||||
{
|
||||
GList *layers = NULL;
|
||||
GESEditMode mode;
|
||||
GESEdge edge;
|
||||
guint64 position;
|
||||
guint i;
|
||||
gboolean ret;
|
||||
|
||||
PyObject *py_position = NULL;
|
||||
PyObject *list = NULL, *pymode = NULL, *pyedge = NULL;
|
||||
PyGObject *tmpobj = NULL;
|
||||
Py_ssize_t list_size;
|
||||
|
||||
GESTrackObject *tckobj = GES_TRACK_OBJECT (self->obj);
|
||||
|
||||
if (!PyArg_ParseTuple(args, "OOOl:GESTrackObject.edit",
|
||||
&list, &pymode, &pyedge, &py_position))
|
||||
return NULL;
|
||||
|
||||
position = PyLong_AsUnsignedLongLong(py_position);
|
||||
|
||||
list_size = PyList_GET_SIZE(list);
|
||||
|
||||
for (i = 0; i < list_size; i++) {
|
||||
tmpobj = (PyGObject*)PyList_GetItem(list, i);
|
||||
layers = g_list_prepend (layers, GES_TIMELINE_LAYER (tmpobj->obj));
|
||||
}
|
||||
|
||||
if (pyg_enum_get_value(GES_TYPE_EDIT_MODE, pymode, (gpointer)&mode))
|
||||
return FALSE;
|
||||
|
||||
if (pyg_enum_get_value(GES_TYPE_EDGE, pyedge, (gpointer)&edge))
|
||||
return FALSE;
|
||||
|
||||
ret = ges_track_object_edit (tckobj, layers, mode, edge, position);
|
||||
|
||||
return PyBool_FromLong(ret);
|
||||
}
|
||||
|
||||
%%
|
||||
override ges_timeline_object_edit kwargs
|
||||
static PyObject *
|
||||
_wrap_ges_timeline_object_edit (PyGObject *self, PyObject *args, PyObject *kwargs)
|
||||
{
|
||||
GList *layers = NULL;
|
||||
GESEditMode mode;
|
||||
GESEdge edge;
|
||||
gint64 position;
|
||||
guint move_layer, i;
|
||||
gboolean ret;
|
||||
|
||||
PyObject *py_position = NULL;
|
||||
PyObject *list = NULL, *pymode = NULL, *pyedge = NULL;
|
||||
PyGObject *tmpobj = NULL;
|
||||
Py_ssize_t list_size;
|
||||
|
||||
GESTimelineObject *tlobj = GES_TIMELINE_OBJECT (self->obj);
|
||||
|
||||
if (!PyArg_ParseTuple(args, "OiOOO:GESTimelineObject.edit",
|
||||
&list, &move_layer, &pymode, &pyedge, &py_position))
|
||||
return NULL;
|
||||
|
||||
position = PyLong_AsUnsignedLongLong(py_position);
|
||||
|
||||
list_size = PyList_GET_SIZE(list);
|
||||
|
||||
for (i = 0; i < list_size; i++) {
|
||||
tmpobj = (PyGObject*)PyList_GetItem(list, i);
|
||||
layers = g_list_prepend (layers, GES_TIMELINE_LAYER (tmpobj->obj));
|
||||
}
|
||||
|
||||
if (pyg_enum_get_value(GES_TYPE_EDIT_MODE, pymode, (gpointer)&mode))
|
||||
return FALSE;
|
||||
|
||||
if (pyg_enum_get_value(GES_TYPE_EDGE, pyedge, (gpointer)&edge))
|
||||
return FALSE;
|
||||
|
||||
ret = ges_timeline_object_edit (tlobj, layers, move_layer, mode, edge, position);
|
||||
|
||||
return PyBool_FromLong(ret);
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
ignore-glob
|
||||
|
||||
|
|
Loading…
Reference in a new issue