info.codeafter.append(' return pygoo_canvas_bounds_new(ret);\n'); matcher.register('GooCanvasBounds*', BoundsPtrArg()) class GooCanvasBoundPtrReturn(reversewrapper.ReturnType): def get_c_type(self): return self.props.get('c_type') def write_decl(self): self.wrapper.add_declaration("%s retval;" % self.get_c_type()) self.wrapper.add_declaration("PyObject *py_bounds;") def write_error_return(self): self.wrapper.write_code("return NULL;") def write_conversion(self): self.wrapper.add_pyret_parse_item("O!", "&PyGooCanvasBounds_Type, &py_bounds", prepend=True) self.wrapper.write_code(( " /* FIXME: this leaks memory */\n" "retval = g_new(GooCanvasBounds, 1);\n" "*retval = ((PyGooCanvasBounds*) py_bounds)->bounds;"), code_sink=self.wrapper.post_return_code) matcher.register_reverse_ret("GooCanvasBounds*", GooCanvasBoundPtrReturn) class GObjectReturn(reversewrapper.GObjectReturn): def write_conversion(self): self.wrapper.write_code( code=None, failure_expression="py_retval == Py_None") reversewrapper.GObjectReturn.write_conversion(self) matcher.register_reverse_ret('GObject*', GObjectReturn)
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()) self.wrapper.write_code("gst_mini_object_ref((GstMiniObject *) retval);") matcher.register_reverse_ret('GstMiniObject*', GstMiniObjectReturn) class GstCapsParam(Parameter): def get_c_type(self): return self.props.get('c_type', 'GstCaps *') def convert_c2py(self): self.wrapper.add_declaration("PyObject *py_%s = NULL;" % self.name) self.wrapper.write_code(code=("if (%s)\n" " py_%s = pyg_boxed_new (GST_TYPE_CAPS, %s, FALSE, TRUE);\n" "else {\n" " Py_INCREF(Py_None);\n" " py_%s = Py_None;\n" "}" % (self.name, self.name, self.name, self.name)),
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()) self.wrapper.write_code( "gst_mini_object_ref((GstMiniObject *) retval);") matcher.register_reverse_ret('GstMiniObject*', GstMiniObjectReturn) class GstCapsParam(Parameter): def get_c_type(self): return self.props.get('c_type', 'GstCaps *') def convert_c2py(self): self.wrapper.add_declaration("PyObject *py_%s = NULL;" % self.name) self.wrapper.write_code( code=( "if (%s)\n" " py_%s = pyg_boxed_new (GST_TYPE_CAPS, %s, FALSE, TRUE);\n" "else {\n" " Py_INCREF(Py_None);\n" " py_%s = Py_None;\n"