static PyObject * _wrap_gst_tag_list_to_xmp_buffer(PyObject *self, PyObject *args, PyObject *kwargs) { static char *kwlist[] = { "taglist", "readonly", NULL }; GstTagList *taglist = NULL; PyObject *py_taglist; int readonly; GstBuffer *ret; if (!PyArg_ParseTupleAndKeywords(args, kwargs,"Oi:tag_list_to_xmp_buffer", kwlist, &py_taglist, &readonly)) return NULL; if (pyg_boxed_check(py_taglist, GST_TYPE_TAG_LIST)) taglist = pyg_boxed_get(py_taglist, GstTagList); else { PyErr_SetString(PyExc_TypeError, "taglist should be a GstTagList"); return NULL; } pyg_begin_allow_threads; ret = gst_tag_list_to_xmp_buffer(taglist, readonly); pyg_end_allow_threads; /* pygobject_new handles NULL checking */ return pygstminiobject_new((GstMiniObject *)ret); }
static PyObject * _wrap_gst_tag_to_vorbis_comments(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *py_taglist; const GstTagList *taglist; const gchar *tag; const GList *list; const GList *l; PyObject *py_list; if (!PyArg_ParseTuple(args, "Os", &py_taglist, &tag)) return NULL; if (pyg_boxed_check(py_taglist, GST_TYPE_TAG_LIST)) taglist = pyg_boxed_get(py_taglist, GstTagList); else { PyErr_SetString(PyExc_TypeError, "list should be a GstTagList"); return NULL; } pyg_begin_allow_threads; list = gst_tag_to_vorbis_comments (taglist, tag); pyg_end_allow_threads; py_list = PyList_New(0); for (l = list; l; l = l->next) { gchar *pair = (gchar *)l->data; PyObject *py_pair = PyString_FromString(pair); PyList_Append(py_list, py_pair); Py_DECREF(py_pair); } return py_list; }
static int pygtk_style_helper_setitem(PyGtkStyleHelper_Object *self, Py_ssize_t pos, PyObject *value) { extern PyTypeObject PyGdkGC_Type; extern PyTypeObject PyGdkPixmap_Type; if (pos < 0) pos += NUM_STATES; if (pos < 0 || pos >= NUM_STATES) { PyErr_SetString(PyExc_IndexError, "index out of range"); return -1; } switch (self->type) { case STYLE_COLOUR_ARRAY: { GdkColor *array = (GdkColor *)self->array; if (!pyg_boxed_check(value, GDK_TYPE_COLOR)) { PyErr_SetString(PyExc_TypeError, "can only assign a GdkColor"); return -1; } array[pos] = *pyg_boxed_get(value, GdkColor); return 0; } case STYLE_GC_ARRAY: { GdkGC **array = (GdkGC **)self->array; if (!pygobject_check(value, &PyGdkGC_Type)) { PyErr_SetString(PyExc_TypeError, "can only assign a GdkGC"); return -1; } if (array[pos]) { g_object_unref(array[pos]); } array[pos] = GDK_GC(g_object_ref(pygobject_get(value))); return 0; } case STYLE_PIXMAP_ARRAY: { GdkPixmap **array = (GdkPixmap **)self->array; GdkPixmap *cvalue = NULL; if (pygobject_check(value, &PyGdkPixmap_Type)) cvalue = GDK_PIXMAP(g_object_ref(pygobject_get(value))); else if (PyLong_Check(value)) { if (PyLong_AsLong(value) != GDK_PARENT_RELATIVE) { PyErr_SetString(PyExc_TypeError, "can only assign a GdkPixmap, None or " "GDK_PARENT_RELATIVE"); return -1; } cvalue = (GdkPixmap*)GDK_PARENT_RELATIVE; } else if (value != Py_None) { PyErr_SetString(PyExc_TypeError, "can only assign a GdkPixmap, None or " "GDK_PARENT_RELATIVE"); return -1; } if (array[pos] && (long)array[pos] != GDK_PARENT_RELATIVE) { g_object_unref(array[pos]); } array[pos] = cvalue; return 0; } } g_assert_not_reached(); return -1; }