From e0c959ea40eb1e644b021117de7902b22948fca9 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 4 May 2011 17:36:46 +0000 Subject: Fix python bindings. git-svn-id: http://svn.drobilla.net/lad/trunk/lilv@3249 a436a847-0d15-0410-975c-d299462d15a1 --- lilv/lilvmm.hpp | 86 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 42 insertions(+), 44 deletions(-) (limited to 'lilv') diff --git a/lilv/lilvmm.hpp b/lilv/lilvmm.hpp index e021a02..be6f000 100644 --- a/lilv/lilvmm.hpp +++ b/lilv/lilvmm.hpp @@ -107,12 +107,15 @@ struct PluginClass { const LilvPluginClass* me; }; -#define LILV_WRAP_COLL(CT, ET, prefix) \ +#define LILV_WRAP_COLL(CT, ET, prefix) \ struct CT { \ inline CT(const Lilv ## CT* c_obj) : me(c_obj) {} \ LILV_WRAP_CONVERSION(const Lilv ## CT); \ LILV_WRAP0(unsigned, prefix, size); \ LILV_WRAP1(const ET, prefix, get, LilvIter*, i); \ + LILV_WRAP0(LilvIter*, prefix, begin); \ + LILV_WRAP1(LilvIter*, prefix, next, LilvIter*, i); \ + LILV_WRAP1(bool, prefix, is_end, LilvIter*, i); \ const Lilv ## CT* me; \ }; \ @@ -120,49 +123,6 @@ LILV_WRAP_COLL(PluginClasses, PluginClass, plugin_classes); LILV_WRAP_COLL(ScalePoints, ScalePoint, scale_points); LILV_WRAP_COLL(Nodes, Node, nodes); -struct Plugins { - inline Plugins(const LilvPlugins* c_obj) : me(c_obj) {} - LILV_WRAP_CONVERSION(const LilvPlugins); - - const LilvPlugins* me; -}; - -struct World { - inline World() : me(lilv_world_new()) {} - inline ~World() { /*lilv_world_free(me);*/ } - - inline LilvNode* new_uri(const char* uri) { - return lilv_new_uri(me, uri); - } - inline LilvNode* new_string(const char* str) { - return lilv_new_string(me, str); - } - inline LilvNode* new_int(int val) { - return lilv_new_int(me, val); - } - inline LilvNode* new_float(float val) { - return lilv_new_float(me, val); - } - inline LilvNode* new_bool(bool val) { - return lilv_new_bool(me, val); - } - inline Nodes find_nodes(const LilvNode* subject, - const LilvNode* predicate, - const LilvNode* object) { - return lilv_world_find_nodes(me, subject, predicate, object); - } - - LILV_WRAP2_VOID(world, set_option, const char*, uri, LilvNode*, value); - LILV_WRAP0_VOID(world, free); - LILV_WRAP0_VOID(world, load_all); - LILV_WRAP1_VOID(world, load_bundle, LilvNode*, bundle_uri); - LILV_WRAP0(const LilvPluginClass*, world, get_plugin_class); - LILV_WRAP0(const LilvPluginClasses*, world, get_plugin_classes); - LILV_WRAP0(Plugins, world, get_all_plugins); - - LilvWorld* me; -}; - struct Port { inline Port(const LilvPlugin* p, const LilvPort* c_obj) : parent(p), me(c_obj) @@ -239,6 +199,8 @@ struct Plugin { const LilvPlugin* me; }; +LILV_WRAP_COLL(Plugins, Plugin, plugins); + struct Instance { inline Instance(Plugin plugin, double sample_rate) { // TODO: features @@ -264,6 +226,42 @@ struct Instance { LilvInstance* me; }; +struct World { + inline World() : me(lilv_world_new()) {} + inline ~World() { /*lilv_world_free(me);*/ } + + inline LilvNode* new_uri(const char* uri) { + return lilv_new_uri(me, uri); + } + inline LilvNode* new_string(const char* str) { + return lilv_new_string(me, str); + } + inline LilvNode* new_int(int val) { + return lilv_new_int(me, val); + } + inline LilvNode* new_float(float val) { + return lilv_new_float(me, val); + } + inline LilvNode* new_bool(bool val) { + return lilv_new_bool(me, val); + } + inline Nodes find_nodes(const LilvNode* subject, + const LilvNode* predicate, + const LilvNode* object) { + return lilv_world_find_nodes(me, subject, predicate, object); + } + + LILV_WRAP2_VOID(world, set_option, const char*, uri, LilvNode*, value); + LILV_WRAP0_VOID(world, free); + LILV_WRAP0_VOID(world, load_all); + LILV_WRAP1_VOID(world, load_bundle, LilvNode*, bundle_uri); + LILV_WRAP0(const LilvPluginClass*, world, get_plugin_class); + LILV_WRAP0(const LilvPluginClasses*, world, get_plugin_classes); + LILV_WRAP0(Plugins, world, get_all_plugins); + + LilvWorld* me; +}; + } /* namespace Lilv */ #endif /* LILV_LILVMM_HPP */ -- cgit v1.2.1