File lilv-0.16.0-python_bindings.patch of Package lilv

Index: lilv/lilvmm.hpp
===================================================================
--- lilv/lilvmm.hpp	(revision 5091)
+++ lilv/lilvmm.hpp	(revision 5092)
@@ -49,6 +49,11 @@
 		return lilv_ ## prefix ## _ ## name(me, a1, a2); \
 	}
 
+#define LILV_WRAP3(RT, prefix, name, T1, a1, T2, a2, T3, a3) \
+	inline RT name(T1 a1, T2 a2, T3 a3) { \
+		return lilv_ ## prefix ## _ ## name(me, a1, a2, a3); \
+	}
+
 #define LILV_WRAP2_VOID(prefix, name, T1, a1, T2, a2) \
 	inline void name(T1 a1, T2 a2) { lilv_ ## prefix ## _ ## name(me, a1, a2); }
 
@@ -139,6 +144,27 @@
 	LILV_WRAP0(Node, nodes, get_first);
 };
 
+struct UI {
+	inline UI(const LilvUI* c_obj) : me(c_obj) {}
+	LILV_WRAP_CONVERSION(const LilvUI);
+
+	LILV_WRAP0(const LilvNode*, ui, get_uri);
+	LILV_WRAP0(const LilvNode*, ui, get_bundle_uri);
+	LILV_WRAP0(const LilvNode*, ui, get_binary_uri);
+	LILV_WRAP0(const LilvNodes*, ui, get_classes);
+	/*LILV_WRAP3(bool, ui, is_supported,
+	           LilvUISupportedFunc, supported_func,
+	           const LilvNode*,     container_type,
+	           const LilvNode**,    ui_type);*/
+	LILV_WRAP1(bool, ui, is_a, const LilvNode*, class_uri);
+
+	const LilvUI* me;
+};
+
+struct UIs {
+	LILV_WRAP_COLL(UIs, UI, uis);
+};
+
 struct Port {
 	inline Port(const LilvPlugin* p, const LilvPort* c_obj)
 		: parent(p), me(c_obj)
openSUSE Build Service is sponsored by