return self.props.get('c_type', 'GstMiniObject *') def convert_c2py(self): self.wrapper.add_declaration("PyObject *py_%s = NULL;" % self.name) self.wrapper.write_code(code=("if (%s) {\n" " py_%s = pygstminiobject_new((GstMiniObject *) %s);\n" " gst_mini_object_unref ((GstMiniObject *) %s);\n" "} else {\n" " Py_INCREF(Py_None);\n" " py_%s = Py_None;\n" "}" % (self.name, self.name, self.name, self.name, self.name)), cleanup=("gst_mini_object_ref ((GstMiniObject *) %s); Py_DECREF(py_%s);" % (self.name, self.name))) self.wrapper.add_pyargv_item("py_%s" % self.name) matcher.register_reverse('GstMiniObject*', GstMiniObjectParam) class GstMiniObjectReturn(ReturnType): def get_c_type(self): return self.props.get('c_type', 'GstMiniObject *') def write_decl(self): self.wrapper.add_declaration("%s retval;" % self.get_c_type()) def write_error_return(self): self.wrapper.write_code("return NULL;") def write_conversion(self): self.wrapper.write_code("retval = (%s) pygstminiobject_get(py_retval);" % self.get_c_type())
matcher.register('cairo_matrix_t*', CairoMatrixArg()) class CairoParam(reversewrapper.Parameter): def get_c_type(self): return self.props.get('c_type').replace('const-', 'const ') def convert_c2py(self): self.wrapper.add_declaration("PyObject *py_%s;" % self.name) self.wrapper.write_code( code=('py_%s = PycairoContext_FromContext(cairo_reference(%s), NULL, NULL);' % (self.name, self.name)), cleanup=("Py_DECREF(py_%s);" % self.name)) self.wrapper.add_pyargv_item("py_%s" % self.name) matcher.register_reverse("cairo_t*", CairoParam) class BoundsPtrArg(ArgType): def write_param(self, ptype, pname, pdflt, pnull, info): if pdflt: info.varlist.add('PyObject', '*py_' + pname + " = " + pdflt) else: info.varlist.add('PyObject', '*py_' + pname) if pnull: info.add_parselist('O', ['&py_'+pname], [pname]) info.codebefore.append( ' if (!(py_%(name)s == NULL || py_%(name)s == Py_None || \n' ' PyObject_IsInstance(py_%(name)s, (PyObject *) &PyGooCanvasBounds_Type))) {\n' ' PyErr_SetString(PyExc_TypeError, "parameter %(name)s must be goocanvas.Bounds or None");\n' ' return NULL;\n'
self.wrapper.write_code( code=("if (%s) {\n" " py_%s = pygstminiobject_new((GstMiniObject *) %s);\n" " gst_mini_object_unref ((GstMiniObject *) %s);\n" "} else {\n" " Py_INCREF(Py_None);\n" " py_%s = Py_None;\n" "}" % (self.name, self.name, self.name, self.name, self.name)), cleanup=( "gst_mini_object_ref ((GstMiniObject *) %s);\nPy_DECREF(py_%s);" % (self.name, self.name))) self.wrapper.add_pyargv_item("py_%s" % self.name) matcher.register_reverse('GstMiniObject*', GstMiniObjectParam) class GstMiniObjectReturn(ReturnType): def get_c_type(self): return self.props.get('c_type', 'GstMiniObject *') def write_decl(self): self.wrapper.add_declaration("%s retval;" % self.get_c_type()) def write_error_return(self): self.wrapper.write_code("return NULL;") def write_conversion(self): self.wrapper.write_code( "retval = (%s) pygstminiobject_get(py_retval);" %