summaryrefslogtreecommitdiffstats
path: root/swig
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-03-12 00:11:17 +0000
committerDavid Robillard <d@drobilla.net>2008-03-12 00:11:17 +0000
commit49ddf1af831493cb34a44c35781f3323916314af (patch)
tree957277e4b3928cae3c715b01ac102e24a2ee7ea4 /swig
parentb18d8d7790072058940ddbab21afb9c0e3da7f95 (diff)
downloadlilv-49ddf1af831493cb34a44c35781f3323916314af.tar.gz
lilv-49ddf1af831493cb34a44c35781f3323916314af.tar.bz2
lilv-49ddf1af831493cb34a44c35781f3323916314af.zip
Sorta workingish chicken scheme bindings.
git-svn-id: http://svn.drobilla.net/lad/slv2@1164 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'swig')
-rw-r--r--swig/Makefile.am4
-rw-r--r--swig/lv2_list.scm13
-rw-r--r--swig/slv2.i5
-rw-r--r--swig/slv2.setup2
4 files changed, 19 insertions, 5 deletions
diff --git a/swig/Makefile.am b/swig/Makefile.am
index 9ac6d84..f98f84e 100644
--- a/swig/Makefile.am
+++ b/swig/Makefile.am
@@ -19,16 +19,16 @@ if WITH_MZSCHEME
mzscheme:
swig -DMZSCHEME -Wall -mzscheme -I.. -o slv2_mzscheme.c -oh slv2_mzscheme.h slv2.i
gcc -fPIC -shared -Iplt \
- -I/usr/include/plt slv2_mzscheme.c ../src/.libs/libslv2.so -o libslv2_mzscheme.so
+ -I/usr/include/plt slv2_mzscheme.c -o libslv2_mzscheme.so
endif # WITH_MZSCHEME
if WITH_CHICKEN
chicken:
+ rm -f slv2.scm slv2_wrap.c
rm -rf eggs
mkdir -p eggs
swig -DCHICKEN -Wall -chicken -proxy -nounit -I.. -o slv2_wrap.c -oh slv2_wrap.h slv2.i
tar -czf eggs/slv2.egg slv2.setup slv2.scm slv2_wrap.c
- rm -f slv2.scm slv2_wrap.c
endif # WITH_CHICKEN
endif # WITH_SWIG
diff --git a/swig/lv2_list.scm b/swig/lv2_list.scm
new file mode 100644
index 0000000..cc23e0d
--- /dev/null
+++ b/swig/lv2_list.scm
@@ -0,0 +1,13 @@
+; Least idiomatic scheme bindings ever. Work in progress...
+
+(require-extension slv2)
+
+(define world (slv2-world-new))
+(slv2-world-load-all world)
+
+(define plugins (slv2-world-get-all-plugins world))
+
+(let ((p (slv2-plugins-get-at plugins 0)))
+ (display (slv2-value-as-string (slv2-plugin-get-uri p)))
+ (newline))
+
diff --git a/swig/slv2.i b/swig/slv2.i
index 210da6e..5bc9a5d 100644
--- a/swig/slv2.i
+++ b/swig/slv2.i
@@ -67,8 +67,8 @@ typedef struct { SLV2World world; SLV2Plugins me; } Plugins;
}
inline unsigned size() const { return slv2_plugins_size($self->me); }
- inline unsigned __len__() const { return slv2_plugins_size($self->me); }
+#ifdef PYTHON
Plugin* __getitem__(unsigned i) {
if (i < slv2_plugins_size($self->me))
return new_Plugin(slv2_plugins_get_at($self->me, i));
@@ -76,7 +76,8 @@ typedef struct { SLV2World world; SLV2Plugins me; } Plugins;
return NULL;
}
-#ifdef PYTHON
+ inline unsigned __len__() const { return slv2_plugins_size($self->me); }
+
%pythoncode %{
def __iter__(self):
class Iterator(object):
diff --git a/swig/slv2.setup b/swig/slv2.setup
index 4a8fbb4..ef15f6d 100644
--- a/swig/slv2.setup
+++ b/swig/slv2.setup
@@ -1,2 +1,2 @@
-(run (csc -s -o slv2.so slv2.scm slv2_wrap.c))
+(run (csc -s -o slv2.so slv2.scm slv2_wrap.c -lslv2))
(install-extension 'slv2 '("slv2.so"))