summaryrefslogtreecommitdiffstats
path: root/swig/lilv.i
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-04-28 21:56:29 +0000
committerDavid Robillard <d@drobilla.net>2011-04-28 21:56:29 +0000
commit809f5ae5999901be62f9d0cc1eb8a2d0f4806780 (patch)
tree4a2c1a7b344ec0f0a75d6a64ed1177a61822af89 /swig/lilv.i
parent372ad8bcac948087bbc261933e38868f533c6708 (diff)
downloadlilv-809f5ae5999901be62f9d0cc1eb8a2d0f4806780.tar.gz
lilv-809f5ae5999901be62f9d0cc1eb8a2d0f4806780.tar.bz2
lilv-809f5ae5999901be62f9d0cc1eb8a2d0f4806780.zip
Rename slv2 to lilv.
API breakage was proving too much of a hassle, and would be even further of a mess after release and packaging. Best to make a clean break now, and fix installation to support parallel installs and prevent this kind of problem in the future. git-svn-id: http://svn.drobilla.net/lad/trunk/lilv@3217 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'swig/lilv.i')
-rw-r--r--swig/lilv.i48
1 files changed, 48 insertions, 0 deletions
diff --git a/swig/lilv.i b/swig/lilv.i
new file mode 100644
index 0000000..c3943dd
--- /dev/null
+++ b/swig/lilv.i
@@ -0,0 +1,48 @@
+%module lilv
+%{
+#include "lilv/lilv.h"
+#include "lilv/lilvmm.hpp"
+%}
+
+%include "lilv/lilv.h"
+%include "lilv/lilvmm.hpp"
+
+namespace Lilv {
+
+%extend Plugins {
+%pythoncode %{
+ def __iter__(self):
+ class Iterator(object):
+ def __init__(self, plugins):
+ self.plugins = plugins
+ self.index = 0
+
+ def __iter__(self):
+ return self
+
+ def next(self):
+ self.index += 1
+ if self.index < lilv_plugins_size(self.plugins.me):
+ return Plugin(lilv_plugins_get_at(self.plugins.me, self.index))
+ else:
+ raise StopIteration
+
+ return Iterator(self)
+%}
+};
+
+%extend Value {
+%pythoncode %{
+ def __str__(self):
+ return lilv_value_get_turtle_token(self.me)
+%}
+};
+
+%extend World {
+%pythoncode %{
+ def get_plugin(self, uri_str):
+ return Plugin(lilv_world_get_plugin_by_uri_string(self.me, uri_str))
+%}
+};
+
+} /* namespace Lilv */