mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
gst/: Handle 'gchar**' (GStrv) arguments in a uniform way.
Original commit message from CVS: Patch by: Rene Stadler <mail@renestadler.de> * gst/arg-types.py: * gst/gst.defs: * gst/gst.override: Handle 'gchar**' (GStrv) arguments in a uniform way. Fixes #385841
This commit is contained in:
parent
69c458d2dc
commit
f86fb60e09
5 changed files with 34 additions and 28 deletions
|
@ -1,3 +1,12 @@
|
|||
2007-07-05 Edward Hervey <bilboed@bilboed.com>
|
||||
|
||||
Patch by: Rene Stadler <mail@renestadler.de>
|
||||
* gst/arg-types.py:
|
||||
* gst/gst.defs:
|
||||
* gst/gst.override:
|
||||
Handle 'gchar**' (GStrv) arguments in a uniform way.
|
||||
Fixes #385841
|
||||
|
||||
2007-06-27 Edward Hervey <edward@fluendo.com>
|
||||
|
||||
* gst/gstbuffer.override:
|
||||
|
|
2
common
2
common
|
@ -1 +1 @@
|
|||
Subproject commit e6a9941c662289c0743e5d8f4150458a664226f2
|
||||
Subproject commit 5167bced491ffe62251c62d6c5e7b9a7541e97e5
|
|
@ -316,7 +316,25 @@ class ConstStringReturn(ReturnType):
|
|||
failure_expression="!PyString_Check(py_retval)",
|
||||
failure_cleanup='PyErr_SetString(PyExc_TypeError, "retval should be a string");')
|
||||
self.wrapper.write_code("retval = g_strdup(PyString_AsString(py_retval));")
|
||||
|
||||
|
||||
class StringArrayArg(ArgType):
|
||||
"""Arg type for NULL-terminated string pointer arrays (GStrv, aka gchar**)."""
|
||||
def write_return(self, ptype, ownsreturn, info):
|
||||
if ownsreturn:
|
||||
raise NotImplementedError ()
|
||||
else:
|
||||
info.varlist.add("gchar", "**ret")
|
||||
info.codeafter.append(" if (ret) {\n"
|
||||
" guint size = g_strv_length(ret);\n"
|
||||
" PyObject *py_ret = PyTuple_New(size);\n"
|
||||
" gint i;\n"
|
||||
" for (i = 0; i < size; i++)\n"
|
||||
" PyTuple_SetItem(py_ret, i,\n"
|
||||
" PyString_FromString(ret[i]));\n"
|
||||
" return py_ret;\n"
|
||||
" }\n"
|
||||
" return PyTuple_New (0);\n")
|
||||
|
||||
matcher.register('GstClockTime', UInt64Arg())
|
||||
matcher.register('GstClockTimeDiff', Int64Arg())
|
||||
matcher.register('xmlNodePtr', XmlNodeArg())
|
||||
|
@ -353,4 +371,6 @@ matcher.register_reverse_ret("GType", IntReturn)
|
|||
matcher.register_reverse("gulong", ULongParam)
|
||||
matcher.register_reverse_ret("gulong", ULongReturn)
|
||||
|
||||
matcher.register("GStrv", StringArrayArg())
|
||||
|
||||
del arg
|
||||
|
|
|
@ -1535,7 +1535,7 @@
|
|||
(define-method get_uri_protocols
|
||||
(of-object "GstElementFactory")
|
||||
(c-name "gst_element_factory_get_uri_protocols")
|
||||
(return-type "gchar**")
|
||||
(return-type "GStrv")
|
||||
)
|
||||
|
||||
(define-method create
|
||||
|
@ -6421,7 +6421,7 @@
|
|||
(define-method get_extensions
|
||||
(of-object "GstTypeFindFactory")
|
||||
(c-name "gst_type_find_factory_get_extensions")
|
||||
(return-type "gchar**")
|
||||
(return-type "GStrv")
|
||||
)
|
||||
|
||||
(define-method get_caps
|
||||
|
@ -6525,7 +6525,7 @@
|
|||
(define-method get_protocols
|
||||
(of-object "GstURIHandler")
|
||||
(c-name "gst_uri_handler_get_protocols")
|
||||
(return-type "gchar**")
|
||||
(return-type "GStrv")
|
||||
)
|
||||
|
||||
(define-method get_uri
|
||||
|
|
|
@ -706,29 +706,6 @@ _wrap_gst_g_error_tp_str(PyGObject *self)
|
|||
error->code));
|
||||
}
|
||||
%%
|
||||
override gst_uri_handler_get_protocols noargs
|
||||
static PyObject *
|
||||
_wrap_gst_uri_handler_get_protocols (PyGObject *self)
|
||||
{
|
||||
gchar **tab;
|
||||
int i, len;
|
||||
PyObject *ret;
|
||||
|
||||
tab = gst_uri_handler_get_protocols (GST_URI_HANDLER (self->obj));
|
||||
if (!tab) {
|
||||
Py_INCREF (Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
len = g_strv_length (tab);
|
||||
ret = PyList_New(len);
|
||||
for (i = 0; i < len; i++) {
|
||||
PyList_SetItem(ret, i, PyString_FromString(tab[i]));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
%%
|
||||
override gst_flow_get_name kwargs
|
||||
static PyObject *
|
||||
_wrap_gst_flow_get_name(PyObject *self, PyObject *args, PyObject *kwargs)
|
||||
|
|
Loading…
Reference in a new issue