summaryrefslogtreecommitdiffstats
path: root/lilv
diff options
context:
space:
mode:
Diffstat (limited to 'lilv')
-rw-r--r--lilv/lilvmm.hpp86
1 files changed, 42 insertions, 44 deletions
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 */