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
@ -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>
|
2007-06-27 Edward Hervey <edward@fluendo.com>
|
||||||
|
|
||||||
* gst/gstbuffer.override:
|
* 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_expression="!PyString_Check(py_retval)",
|
||||||
failure_cleanup='PyErr_SetString(PyExc_TypeError, "retval should be a string");')
|
failure_cleanup='PyErr_SetString(PyExc_TypeError, "retval should be a string");')
|
||||||
self.wrapper.write_code("retval = g_strdup(PyString_AsString(py_retval));")
|
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('GstClockTime', UInt64Arg())
|
||||||
matcher.register('GstClockTimeDiff', Int64Arg())
|
matcher.register('GstClockTimeDiff', Int64Arg())
|
||||||
matcher.register('xmlNodePtr', XmlNodeArg())
|
matcher.register('xmlNodePtr', XmlNodeArg())
|
||||||
@ -353,4 +371,6 @@ matcher.register_reverse_ret("GType", IntReturn)
|
|||||||
matcher.register_reverse("gulong", ULongParam)
|
matcher.register_reverse("gulong", ULongParam)
|
||||||
matcher.register_reverse_ret("gulong", ULongReturn)
|
matcher.register_reverse_ret("gulong", ULongReturn)
|
||||||
|
|
||||||
|
matcher.register("GStrv", StringArrayArg())
|
||||||
|
|
||||||
del arg
|
del arg
|
||||||
|
@ -1535,7 +1535,7 @@
|
|||||||
(define-method get_uri_protocols
|
(define-method get_uri_protocols
|
||||||
(of-object "GstElementFactory")
|
(of-object "GstElementFactory")
|
||||||
(c-name "gst_element_factory_get_uri_protocols")
|
(c-name "gst_element_factory_get_uri_protocols")
|
||||||
(return-type "gchar**")
|
(return-type "GStrv")
|
||||||
)
|
)
|
||||||
|
|
||||||
(define-method create
|
(define-method create
|
||||||
@ -6421,7 +6421,7 @@
|
|||||||
(define-method get_extensions
|
(define-method get_extensions
|
||||||
(of-object "GstTypeFindFactory")
|
(of-object "GstTypeFindFactory")
|
||||||
(c-name "gst_type_find_factory_get_extensions")
|
(c-name "gst_type_find_factory_get_extensions")
|
||||||
(return-type "gchar**")
|
(return-type "GStrv")
|
||||||
)
|
)
|
||||||
|
|
||||||
(define-method get_caps
|
(define-method get_caps
|
||||||
@ -6525,7 +6525,7 @@
|
|||||||
(define-method get_protocols
|
(define-method get_protocols
|
||||||
(of-object "GstURIHandler")
|
(of-object "GstURIHandler")
|
||||||
(c-name "gst_uri_handler_get_protocols")
|
(c-name "gst_uri_handler_get_protocols")
|
||||||
(return-type "gchar**")
|
(return-type "GStrv")
|
||||||
)
|
)
|
||||||
|
|
||||||
(define-method get_uri
|
(define-method get_uri
|
||||||
|
@ -706,29 +706,6 @@ _wrap_gst_g_error_tp_str(PyGObject *self)
|
|||||||
error->code));
|
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
|
override gst_flow_get_name kwargs
|
||||||
static PyObject *
|
static PyObject *
|
||||||
_wrap_gst_flow_get_name(PyObject *self, PyObject *args, PyObject *kwargs)
|
_wrap_gst_flow_get_name(PyObject *self, PyObject *args, PyObject *kwargs)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user