gstbus.override: Allow using set_sync_handler with None as a parameter
This commit is contained in:
parent
51ac26b86c
commit
4fadf0700e
@ -164,21 +164,27 @@ _wrap_gst_bus_set_sync_handler (PyGObject *self, PyObject *args)
|
|||||||
PyErr_SetString(PyExc_TypeError, "Bus requires at least 1 arg");
|
PyErr_SetString(PyExc_TypeError, "Bus requires at least 1 arg");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
callback = PySequence_GetItem(args, 0);
|
callback = PySequence_GetItem(args, 0);
|
||||||
|
if (callback != Py_None) {
|
||||||
if (!PyCallable_Check(callback)) {
|
if (!PyCallable_Check(callback)) {
|
||||||
PyErr_SetString(PyExc_TypeError, "callback is not callable");
|
PyErr_SetString(PyExc_TypeError, "callback is not callable");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
cbargs = PySequence_GetSlice(args, 1, len);
|
cbargs = PySequence_GetSlice(args, 1, len);
|
||||||
if (cbargs == NULL)
|
if (cbargs == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
data = Py_BuildValue("(ON)", callback, cbargs);
|
data = Py_BuildValue("(ON)", callback, cbargs);
|
||||||
if (data == NULL)
|
if (data == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
gst_bus_set_sync_handler (GST_BUS (self->obj),
|
gst_bus_set_sync_handler (GST_BUS (self->obj),
|
||||||
(GstBusSyncHandler) bus_sync_handler,
|
(GstBusSyncHandler) bus_sync_handler,
|
||||||
data);
|
data);
|
||||||
|
} else
|
||||||
|
gst_bus_set_sync_handler (GST_BUS (self->obj), NULL, NULL);
|
||||||
Py_INCREF(Py_None);
|
Py_INCREF(Py_None);
|
||||||
return Py_None;
|
return Py_None;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user