}
}
+/* Output argument typemap for value output (always appends) */
+%typemap(in, numinputs=0) struct bt_value **BTOUTVALUE (struct bt_value *temp_value = NULL) {
+ $1 = &temp_value;
+}
+
+%typemap(argout) struct bt_value **BTOUTVALUE {
+ if (*$1) {
+ /* SWIG_Python_AppendOutput() steals the created object */
+ $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(SWIG_as_voidptr(*$1), SWIGTYPE_p_bt_value, 0));
+ } else {
+ /* SWIG_Python_AppendOutput() steals Py_None */
+ Py_INCREF(Py_None);
+ $result = SWIG_Python_AppendOutput($result, Py_None);
+ }
+}
+
/* Output argument typemap for initialized uint64_t output parameter (always appends) */
%typemap(in, numinputs=0) uint64_t *OUTPUTINIT (uint64_t temp = -1ULL) {
$1 = &temp;
$result = $1;
}
+%{
+static enum bt_notification_type *bt_py3_notif_types_from_py_list(
+ PyObject *py_notif_types)
+{
+ enum bt_notification_type *notification_types = NULL;
+ size_t i;
+
+ assert(!PyErr_Occurred());
+
+ if (py_notif_types == Py_None) {
+ goto end;
+ }
+
+ assert(PyList_Check(py_notif_types));
+ notification_types = g_new0(enum bt_notification_type,
+ PyList_Size(py_notif_types) + 1);
+ assert(notification_types);
+ notification_types[PyList_Size(py_notif_types)] =
+ BT_NOTIFICATION_TYPE_SENTINEL;
+
+ for (i = 0; i < PyList_Size(py_notif_types); i++) {
+ PyObject *item = PyList_GetItem(py_notif_types, i);
+ long value;
+ int overflow;
+
+ assert(item);
+ assert(PyLong_Check(item));
+ value = PyLong_AsLongAndOverflow(item, &overflow);
+ assert(overflow == 0);
+ notification_types[i] = value;
+ }
+
+end:
+ return notification_types;
+}
+%}
+
/* Per-module interface files */
%include "native_btccpriomap.i"
%include "native_btclockclass.i"
%include "native_btpacket.i"
%include "native_btplugin.i"
%include "native_btport.i"
+%include "native_btqueryexec.i"
%include "native_btref.i"
%include "native_btstream.i"
%include "native_btstreamclass.i"